Mercurial > hg > orthanc
comparison OrthancServer/Sources/Search/ISqlLookupFormatter.cpp @ 4819:70d2a97ca8cb openssl-3.x
integration mainline->openssl-3.x
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 25 Nov 2021 13:12:32 +0100 |
parents | f0038043fb97 b8fcd331b4b3 |
children | 2e71a08eea15 |
comparison
equal
deleted
inserted
replaced
4785:61da49321754 | 4819:70d2a97ca8cb |
---|---|
65 | 65 |
66 | 66 |
67 static bool FormatComparison(std::string& target, | 67 static bool FormatComparison(std::string& target, |
68 ISqlLookupFormatter& formatter, | 68 ISqlLookupFormatter& formatter, |
69 const DatabaseConstraint& constraint, | 69 const DatabaseConstraint& constraint, |
70 size_t index) | 70 size_t index, |
71 bool escapeBrackets) | |
71 { | 72 { |
72 std::string tag = "t" + boost::lexical_cast<std::string>(index); | 73 std::string tag = "t" + boost::lexical_cast<std::string>(index); |
73 | 74 |
74 std::string comparison; | 75 std::string comparison; |
75 | 76 |
182 } | 183 } |
183 else if (value[i] == '\\') | 184 else if (value[i] == '\\') |
184 { | 185 { |
185 escaped += "\\\\"; | 186 escaped += "\\\\"; |
186 } | 187 } |
188 else if (escapeBrackets && value[i] == '[') | |
189 { | |
190 escaped += "\\["; | |
191 } | |
192 else if (escapeBrackets && value[i] == ']') | |
193 { | |
194 escaped += "\\]"; | |
195 } | |
187 else | 196 else |
188 { | 197 { |
189 escaped += value[i]; | 198 escaped += value[i]; |
190 } | 199 } |
191 } | 200 } |
289 } | 298 } |
290 | 299 |
291 assert(upperLevel <= queryLevel && | 300 assert(upperLevel <= queryLevel && |
292 queryLevel <= lowerLevel); | 301 queryLevel <= lowerLevel); |
293 | 302 |
303 const bool escapeBrackets = formatter.IsEscapeBrackets(); | |
304 | |
294 std::string joins, comparisons; | 305 std::string joins, comparisons; |
295 | 306 |
296 size_t count = 0; | 307 size_t count = 0; |
297 | 308 |
298 for (size_t i = 0; i < lookup.size(); i++) | 309 for (size_t i = 0; i < lookup.size(); i++) |
299 { | 310 { |
300 std::string comparison; | 311 std::string comparison; |
301 | 312 |
302 if (FormatComparison(comparison, formatter, lookup[i], count)) | 313 if (FormatComparison(comparison, formatter, lookup[i], count, escapeBrackets)) |
303 { | 314 { |
304 std::string join; | 315 std::string join; |
305 FormatJoin(join, lookup[i], count); | 316 FormatJoin(join, lookup[i], count); |
306 joins += join; | 317 joins += join; |
307 | 318 |