| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * | 10 * |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 | 90 |
| 91 static PassRefPtr<InspectorObject> buildObjectForSearchMatch(int lineNumber, Str
ing lineContent) | 91 static PassRefPtr<InspectorObject> buildObjectForSearchMatch(int lineNumber, Str
ing lineContent) |
| 92 { | 92 { |
| 93 RefPtr<InspectorObject> result = InspectorObject::create(); | 93 RefPtr<InspectorObject> result = InspectorObject::create(); |
| 94 result->setNumber("lineNumber", lineNumber); | 94 result->setNumber("lineNumber", lineNumber); |
| 95 result->setString("lineContent", lineContent); | 95 result->setString("lineContent", lineContent); |
| 96 | 96 |
| 97 return result; | 97 return result; |
| 98 } | 98 } |
| 99 | 99 |
| 100 RegularExpression createSearchRegex(const String& text, bool caseSensitive, bool
isRegex) | 100 RegularExpression createSearchRegex(const String& query, bool caseSensitive, boo
l isRegex) |
| 101 { | 101 { |
| 102 String regexSource = isRegex ? text : createSearchRegexSource(text); | 102 String regexSource = isRegex ? query : createSearchRegexSource(query); |
| 103 return RegularExpression(regexSource, caseSensitive ? TextCaseSensitive : Te
xtCaseInsensitive); | 103 return RegularExpression(regexSource, caseSensitive ? TextCaseSensitive : Te
xtCaseInsensitive); |
| 104 } | 104 } |
| 105 | 105 |
| 106 int countRegularExpressionMatches(const RegularExpression& regex, const String&
content) | 106 int countRegularExpressionMatches(const RegularExpression& regex, const String&
content) |
| 107 { | 107 { |
| 108 int result = 0; | 108 int result = 0; |
| 109 int position; | 109 int position; |
| 110 unsigned start = 0; | 110 unsigned start = 0; |
| 111 int matchLength; | 111 int matchLength; |
| 112 while ((position = regex.match(content, start, &matchLength)) != -1) { | 112 while ((position = regex.match(content, start, &matchLength)) != -1) { |
| 113 if (start >= content.length()) | 113 if (start >= content.length()) |
| 114 break; | 114 break; |
| 115 if (matchLength > 0) | 115 if (matchLength > 0) |
| 116 ++result; | 116 ++result; |
| 117 start = position + 1; | 117 start = position + 1; |
| 118 } | 118 } |
| 119 return result; | 119 return result; |
| 120 } | 120 } |
| 121 | 121 |
| 122 PassRefPtr<InspectorArray> searchInTextByLines(const String& query, const String
& text) | 122 PassRefPtr<InspectorArray> searchInTextByLines(const String& text, const String&
query, const bool caseSensitive, const bool isRegex) |
| 123 { | 123 { |
| 124 RefPtr<InspectorArray> result = InspectorArray::create(); | 124 RefPtr<InspectorArray> result = InspectorArray::create(); |
| 125 | 125 |
| 126 RegularExpression regex = ContentSearchUtils::createSearchRegex(query, false
, false); | 126 RegularExpression regex = ContentSearchUtils::createSearchRegex(query, caseS
ensitive, isRegex); |
| 127 Vector<pair<int, String> > matches = getRegularExpressionMatchesByLines(rege
x, text); | 127 Vector<pair<int, String> > matches = getRegularExpressionMatchesByLines(rege
x, text); |
| 128 | 128 |
| 129 for (Vector<pair<int, String> >::const_iterator it = matches.begin(); it !=
matches.end(); ++it) | 129 for (Vector<pair<int, String> >::const_iterator it = matches.begin(); it !=
matches.end(); ++it) |
| 130 result->pushValue(buildObjectForSearchMatch(it->first, it->second)); | 130 result->pushValue(buildObjectForSearchMatch(it->first, it->second)); |
| 131 | 131 |
| 132 return result; | 132 return result; |
| 133 } | 133 } |
| 134 | 134 |
| 135 } // namespace ContentSearchUtils | 135 } // namespace ContentSearchUtils |
| 136 } // namespace WebCore | 136 } // namespace WebCore |
| 137 | 137 |
| 138 #endif // ENABLE(INSPECTOR) | 138 #endif // ENABLE(INSPECTOR) |
| OLD | NEW |