From Greg Morris: Add a configuration option to control search wrapping.
[obnox/wireshark/wip.git] / prefs.c
diff --git a/prefs.c b/prefs.c
index 1a6d9f27b95ff390520c07454e30bd76d56c1322..03ce55a079e2469970d7231dc9c70a33b50b2095 100644 (file)
--- a/prefs.c
+++ b/prefs.c
@@ -1012,6 +1012,7 @@ read_prefs(int *gpf_errno_return, int *gpf_read_errno_return,
     prefs.gui_recent_files_count_max = 10;
     prefs.gui_fileopen_dir           = g_strdup("");
     prefs.gui_ask_unsaved            = TRUE;
+    prefs.gui_find_wrap              = TRUE;
     prefs.gui_webbrowser             = g_strdup("mozilla %s");
     prefs.gui_layout_type            = layout_type_5;
     prefs.gui_layout_content_1       = layout_pane_content_plist;
@@ -1315,6 +1316,7 @@ prefs_set_pref(char *prefarg)
 #define PRS_GUI_FILEOPEN_DIR             "gui.fileopen.dir"
 #define PRS_GUI_FILEOPEN_REMEMBERED_DIR  "gui.fileopen.remembered_dir"
 #define PRS_GUI_ASK_UNSAVED              "gui.ask_unsaved"
+#define PRS_GUI_FIND_WRAP                "gui.find_wrap"
 #define PRS_GUI_GEOMETRY_SAVE_POSITION   "gui.geometry.save.position"
 #define PRS_GUI_GEOMETRY_SAVE_SIZE       "gui.geometry.save.size"
 #define PRS_GUI_GEOMETRY_SAVE_MAXIMIZED  "gui.geometry.save.maximized"
@@ -1649,6 +1651,13 @@ set_pref(gchar *pref_name, gchar *value)
     else {
            prefs.gui_ask_unsaved = FALSE;
     }
+  } else if (strcmp(pref_name, PRS_GUI_FIND_WRAP) == 0) {
+    if (strcasecmp(value, "true") == 0) {
+           prefs.gui_find_wrap = TRUE;
+    }
+    else {
+           prefs.gui_find_wrap = FALSE;
+    }
   } else if (strcmp(pref_name, PRS_GUI_WEBBROWSER) == 0) {
     g_free(prefs.gui_webbrowser);
     prefs.gui_webbrowser = g_strdup(value);
@@ -2216,6 +2225,11 @@ write_prefs(char **pf_path_return)
   fprintf(pf, PRS_GUI_ASK_UNSAVED ": %s\n",
                  prefs.gui_ask_unsaved == TRUE ? "TRUE" : "FALSE");                  
 
+  fprintf(pf, "\n# Wrap to beginning/end of file during search?\n");
+  fprintf(pf, "# TRUE or FALSE (case-insensitive).\n");
+  fprintf(pf, PRS_GUI_FIND_WRAP ": %s\n",
+                 prefs.gui_find_wrap == TRUE ? "TRUE" : "FALSE");                  
+
   fprintf(pf, "\n# The path to the webbrowser.\n");
   fprintf(pf, "# Ex: mozilla %%s\n");
   fprintf(pf, PRS_GUI_WEBBROWSER ": %s\n", prefs.gui_webbrowser);
@@ -2410,6 +2424,7 @@ copy_prefs(e_prefs *dest, e_prefs *src)
   dest->gui_console_open = src->gui_console_open;
   dest->gui_fileopen_style = src->gui_fileopen_style;
   dest->gui_ask_unsaved = src->gui_ask_unsaved;
+  dest->gui_find_wrap = src->gui_find_wrap;
   dest->gui_layout_type = src->gui_layout_type;
   dest->gui_layout_content_1 = src->gui_layout_content_1;
   dest->gui_layout_content_2 = src->gui_layout_content_2;