OSDN Git Service

ヘルプの検索や強調で空の文字列を入力した場合にフリーズするバグが残っ
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 15 Aug 2004 07:51:20 +0000 (07:51 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 15 Aug 2004 07:51:20 +0000 (07:51 +0000)
ていたので修正.

src/files.c

index c609714..954f8d6 100644 (file)
@@ -5157,7 +5157,7 @@ static void show_file_aux_line(cptr str, int cy, cptr shower)
                /* Search for a shower string in the line */
                if (shower)
                {
-                       ptr = my_strstr(&lcstr[i], shower);
+                       ptr = my_strstr(&lcstr[i], shower);
                        if (ptr) showercol = ptr - &lcstr[i];
                }
 
@@ -5653,11 +5653,15 @@ prt("[
                        strcpy(back_str, shower_str);
                        if (askfor(shower_str, 80))
                        {
-                               /* Make it lowercase */
-                               str_tolower(shower_str);
+                               if (shower_str[0])
+                               {
+                                       /* Make it lowercase */
+                                       str_tolower(shower_str);
 
-                               /* Show it */
-                               shower = shower_str;
+                                       /* Show it */
+                                       shower = shower_str;
+                               }
+                               else shower = NULL; /* Stop showing */
                        }
                        else strcpy(shower_str, back_str);
                        break;
@@ -5675,16 +5679,20 @@ prt("[
                        strcpy(back_str, finder_str);
                        if (askfor(finder_str, 80))
                        {
-                               /* Find it */
-                               find = finder_str;
-                               back = line;
-                               line = line + 1;
+                               if (finder_str[0])
+                               {
+                                       /* Find it */
+                                       find = finder_str;
+                                       back = line;
+                                       line = line + 1;
 
-                               /* Make finder lowercase */
-                               str_tolower(finder_str);
+                                       /* Make finder lowercase */
+                                       str_tolower(finder_str);
 
-                               /* Show it */
-                               shower = finder_str;
+                                       /* Show it */
+                                       shower = finder_str;
+                               }
+                               else shower = NULL; /* Stop showing */
                        }
                        else strcpy(finder_str, back_str);
                        break;