summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorAdrian Lees <adrian@aemulor.com>2007-10-15 22:48:24 +0000
committerAdrian Lees <adrian@aemulor.com>2007-10-15 22:48:24 +0000
commit0e8a03dc36b1c0305b0db31861ab7cd2ab3b36d6 (patch)
tree6c25b950bf4cf20f5620fe552160af57e12d2c88 /riscos
parent08ea9e706bef92eb60efaf38937e8864466cf3fa (diff)
downloadnetsurf-0e8a03dc36b1c0305b0db31861ab7cd2ab3b36d6.tar.gz
netsurf-0e8a03dc36b1c0305b0db31861ab7cd2ab3b36d6.tar.bz2
Fix recursion when search string is pure wildcard
svn path=/trunk/netsurf/; revision=3633
Diffstat (limited to 'riscos')
-rw-r--r--riscos/search.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/riscos/search.c b/riscos/search.c
index 947b39a01..8226fee92 100644
--- a/riscos/search.c
+++ b/riscos/search.c
@@ -328,6 +328,7 @@ void start_search(bool forwards)
{
int string_len;
char *string;
+ int i = 0;
string = ro_gui_get_icon_string(dialog_search, ICON_SEARCH_TEXT);
assert(string);
@@ -335,7 +336,9 @@ void start_search(bool forwards)
ro_gui_search_add_recent(string);
string_len = strlen(string);
- if (string_len <= 0) {
+ for(i = 0; i < string_len; i++)
+ if (string[i] != '#' && string[i] != '*') break;
+ if (i >= string_len) {
free_matches();
show_status(true);
ro_gui_set_icon_shaded_state(dialog_search,
@@ -643,7 +646,7 @@ const char *find_pattern(const char *string, int s_len, const char *pattern,
}
/* end of pattern reached */
- *m_len = s - ss;
+ *m_len = max(s - ss, 1);
return ss;
}