Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BASE_STRINGS_UTF_OFFSET_STRING_CONVERSIONS_H_ | 5 #ifndef BASE_STRINGS_UTF_OFFSET_STRING_CONVERSIONS_H_ |
| 6 #define BASE_STRINGS_UTF_OFFSET_STRING_CONVERSIONS_H_ | 6 #define BASE_STRINGS_UTF_OFFSET_STRING_CONVERSIONS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 42 // adjusted (e.g., because it points into the middle of a multibyte sequence), | 42 // adjusted (e.g., because it points into the middle of a multibyte sequence), |
| 43 // it will be set to string16::npos. | 43 // it will be set to string16::npos. |
| 44 static void AdjustOffsets(const Adjustments& adjustments, | 44 static void AdjustOffsets(const Adjustments& adjustments, |
| 45 std::vector<size_t>* offsets_for_adjustment); | 45 std::vector<size_t>* offsets_for_adjustment); |
| 46 | 46 |
| 47 // Adjusts the single |offset| to reflect the adjustments recorded in | 47 // Adjusts the single |offset| to reflect the adjustments recorded in |
| 48 // |adjustments|. | 48 // |adjustments|. |
| 49 static void AdjustOffset(const Adjustments& adjustments, | 49 static void AdjustOffset(const Adjustments& adjustments, |
| 50 size_t* offset); | 50 size_t* offset); |
| 51 | 51 |
| 52 // Adjusts all offsets in |offsets_for_unadjustment| to reflect the reverse | |
| 53 // of the adjustments recorded in |adjustments|. In other words, the offsets | |
| 54 // provided represent offsets into an adjusted string and the caller wants | |
| 55 // to know the offsets they correspond to in the original string. If an | |
| 56 // offset cannot be successfully unadjusted (e.g., because it points into | |
| 57 // the middle of a multibyte sequence), it will be set to string16::npos. | |
| 58 static void UnadjustOffsets(const Adjustments& adjustments, | |
| 59 std::vector<size_t>* offsets_for_unadjustment); | |
| 60 | |
| 61 // Adjusts the single |offset_for_unadjustment| to reflect the adjustments | |
| 62 // recorded in |adjustments|. | |
| 63 static void UnadjustOffset(const Adjustments& adjustments, | |
| 64 size_t* offset_for_unadjustment); | |
|
Peter Kasting
2014/04/23 23:18:01
Nit: Either name this |offset|, or name the arg to
Mark P
2014/04/24 14:05:02
Did the former.
| |
| 65 | |
| 52 // Combines two sequential sets of adjustments, storing the combined revised | 66 // Combines two sequential sets of adjustments, storing the combined revised |
| 53 // adjustments in |adjustments_on_adjusted_string|. That is, suppose a | 67 // adjustments in |adjustments_on_adjusted_string|. That is, suppose a |
| 54 // string was altered in some way, with the alterations recorded as | 68 // string was altered in some way, with the alterations recorded as |
| 55 // adjustments in |first_adjustments|. Then suppose the resulting string is | 69 // adjustments in |first_adjustments|. Then suppose the resulting string is |
| 56 // further altered, with the alterations recorded as adjustments scored in | 70 // further altered, with the alterations recorded as adjustments scored in |
| 57 // |adjustments_on_adjusted_string|, with the offsets recorded in these | 71 // |adjustments_on_adjusted_string|, with the offsets recorded in these |
| 58 // adjustments being with respect to the intermediate string. This function | 72 // adjustments being with respect to the intermediate string. This function |
| 59 // combines the two sets of adjustments into one, storing the result in | 73 // combines the two sets of adjustments into one, storing the result in |
| 60 // |adjustments_on_adjusted_string|, whose offsets are correct with respect | 74 // |adjustments_on_adjusted_string|, whose offsets are correct with respect |
| 61 // to the original string. | 75 // to the original string. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 103 if (offset > limit_) | 117 if (offset > limit_) |
| 104 offset = T::npos; | 118 offset = T::npos; |
| 105 } | 119 } |
| 106 | 120 |
| 107 size_t limit_; | 121 size_t limit_; |
| 108 }; | 122 }; |
| 109 | 123 |
| 110 } // namespace base | 124 } // namespace base |
| 111 | 125 |
| 112 #endif // BASE_STRINGS_UTF_OFFSET_STRING_CONVERSIONS_H_ | 126 #endif // BASE_STRINGS_UTF_OFFSET_STRING_CONVERSIONS_H_ |
| OLD | NEW |