| 275 | } |
| 276 | |
| 277 | void WarnIfStreamChunkContainsVariationSelector(const char* input, |
| 278 | size_t length) { |
| 279 | if (variationSelectorWarningShown) { |
| 280 | return; |
| 281 | } |
| 282 | |
| 283 | std::string scan = variationSelectorScanTail; |
| 284 | scan.append(input, length); |
| 285 | if (UTF8Util::ContainsVariationSelector(scan.data(), scan.size())) { |
| 286 | PrintVariationSelectorWarningOnce(); |
| 287 | variationSelectorScanTail.clear(); |
| 288 | return; |
| 289 | } |
| 290 | |
| 291 | const size_t maxVariationSelectorUtf8Bytes = 4; |
| 292 | const size_t keepBytes = scan.size() < maxVariationSelectorUtf8Bytes |
| 293 | ? scan.size() |
| 294 | : maxVariationSelectorUtf8Bytes; |
| 295 | variationSelectorScanTail.assign(scan.data() + scan.size() - keepBytes, |
| 296 | keepBytes); |
| 297 | } |
| 298 | |
| 299 | // Serializes the segmentation-only view of an inspection result as a JSON |
| 300 | // object with "input" and "segments" fields. Used with --segmentation mode. |
no test coverage detected