]> git.deb.at Git - pkg/abook.git/blobdiff - database.c
Fixed a possible problem in find() function
[pkg/abook.git] / database.c
index 03e20ed38857b129e9d07613ab50746a92c254fa..cf02d57c673345d5c6229d6bc1844a6f3c6e746a 100644 (file)
@@ -1,6 +1,7 @@
 
 /*
- * database.c
+ * $Id$
+ *
  * by JH <jheinonen@bigfoot.com>
  *
  * Copyright (C) Jaakko Heinonen
@@ -152,10 +153,9 @@ write_database(FILE *out)
        for( i = 0; i < items; i++ ) {
                fprintf(out, "[%d]\n", i);
                for(j=0; j<ITEM_FIELDS; j++) {
-                       if( database[i][j] != NULL )
-                               if( *database[i][j] )
-                                       fprintf(out, "%s=%s\n",
-                                               abook_fields[j].key, database[i][j]);
+                       if( database[i][j] != NULL && *database[i][j] )
+                               fprintf(out, "%s=%s\n",
+                                       abook_fields[j].key, database[i][j]);
                }
                fputc('\n', out);
        }
@@ -414,8 +414,8 @@ void
 find(int next)
 {
        int i;
-       static char findstr[81];
-       char tmp[81];
+       static char findstr[MAX_FIELD_LEN];
+       char tmp[MAX_FIELD_LEN];
 
 #ifdef DEBUG
        fprintf(stderr, "find(): findstr = |%s|\n", findstr);
@@ -427,7 +427,7 @@ find(int next)
        } else {
                clear_statusline();
                statusline_addstr("/");
-               statusline_getnstr(findstr, 67, 0);
+               statusline_getnstr(findstr, MAX_FIELD_LEN - 1, 0);
                strupper(findstr);
                clear_statusline();
        }
@@ -437,7 +437,7 @@ find(int next)
 
        for( i = (curitem < LAST_ITEM) && next ? curitem+1 : curitem;
                        i < items; i++ ) {
-               strcpy(tmp, database[i][NAME]);
+               strncpy(tmp, database[i][NAME], MAX_FIELD_LEN - 1);
                if( strstr(strupper(tmp), findstr) != NULL ) {
                        curitem = i;
                        refresh_list();
@@ -450,8 +450,7 @@ find(int next)
 void
 print_number_of_items()
 {
-       char *str =
-               mkstr("     |%3d/%3d", selected_items(), items);
+       char *str = mkstr("     " "|%3d/%3d", selected_items(), items);
 
        mvaddstr(0, COLS-strlen(str), str);