--- a/find.c Sun Sep 02 00:02:48 2007 +0200
+++ b/find.c Sun Sep 02 14:24:10 2007 +0200
@@ -74,13 +74,17 @@
int i,j;
for(i=0; i < len; ++i)
{
+ /* prepare ltrimming when finding the first newline character */
if (def[i] == '\n')
{
+ /* Remove spaces after the first newline */
+ for(i+=1; def[i] == ' '; ++i);
+
/* Break */
- memmove(def, def + i + 1 /* \n */,
+ memmove(def, def + i,
len - i - 1);
def[len-i-1] = 0;
- return len-i-2/*\n*/+1/*\0*/;
+ return len-i-1+1/*\0*/;
}
}
return len;
@@ -169,8 +173,10 @@
static const char * search_next(struct Dict *d, const char *word, const char *from)
{
const char *ret;
- ret = skip_until_newline(d, from);
- if (compare(from, word) == 0)
+ ret = skip_until_newline(d, from) + 1;
+ if (ret == (char *) 1) /* pointer at end */
+ return 0;
+ if (compare(word, ret) == 0)
return ret;
return 0;
}