Browse Source

Merge commit 'origin/50_history_sections.metux'

Enrico Weigelt, metux IT service 16 years ago
parent
commit
7cef5b112e
10 changed files with 111 additions and 52 deletions
  1. 16 12
      edit/editcmd.c
  2. 24 18
      src/cmd.c
  3. 2 2
      src/ext.c
  4. 36 0
      src/history.h
  5. 2 1
      src/hotlist.c
  6. 2 0
      src/panelize.c
  7. 3 2
      src/tree.c
  8. 2 1
      src/user.c
  9. 4 4
      src/view.c
  10. 20 12
      src/wtools.c

+ 16 - 12
edit/editcmd.c

@@ -40,6 +40,7 @@
 #include <stdlib.h>
 
 #include "../src/global.h"
+#include "../src/history.h"
 
 #include "edit.h"
 #include "editlock.h"
@@ -58,9 +59,6 @@
 #include "../src/charsets.h"
 #include "../src/selcodepage.h"
 
-#define edit_get_load_file(f,h) input_expand_dialog (h, _(" Enter file name: "), f)
-#define edit_get_save_file(f,h) input_expand_dialog (h, _(" Enter file name: "), f)
-
 struct selection {
    unsigned char * text;
    int len;
@@ -525,7 +523,8 @@ edit_save_as_cmd (WEdit *edit)
     int save_lock = 0;
     int different_filename = 0;
 
-    exp = edit_get_save_file (edit->filename, _(" Save As "));
+    exp = input_expand_dialog (
+	_(" Save As "), _(" Enter file name: "),MC_HISTORY_EDIT_SAVE_AS, edit->filename);
     edit_push_action (edit, KEY_PRESS + edit->start_display);
 
     if (exp) {
@@ -907,7 +906,8 @@ edit_load_cmd (WEdit *edit)
 	}
     }
 
-    exp = edit_get_load_file (edit->filename, _(" Load "));
+    exp = input_expand_dialog (_(" Load "), _(" Enter file name: "),
+				MC_HISTORY_EDIT_LOAD, edit->filename);
 
     if (exp) {
 	if (*exp)
@@ -2338,7 +2338,8 @@ edit_goto_cmd (WEdit *edit)
     char s[32];
 
     g_snprintf (s, sizeof (s), "%ld", line);
-    f = input_dialog (_(" Goto line "), _(" Enter line: "), line ? s : "");
+    f = input_dialog (_(" Goto line "), _(" Enter line: "), MC_HISTORY_EDIT_GOTO_LINE,
+		      line ? s : "");
     if (!f)
 	return;
 
@@ -2372,8 +2373,9 @@ edit_save_block_cmd (WEdit *edit)
     if (eval_marks (edit, &start_mark, &end_mark))
 	return 1;
     exp =
-	edit_get_save_file (catstrs (home_dir, PATH_SEP_STR CLIP_FILE, (char *) NULL),
-			    _(" Save Block "));
+	input_expand_dialog (_(" Save Block "), _(" Enter file name: "),
+			     MC_HISTORY_EDIT_SAVE_BLOCK, 
+			    catstrs (home_dir, PATH_SEP_STR CLIP_FILE, (char *) NULL));
     edit_push_action (edit, KEY_PRESS + edit->start_display);
     if (exp) {
 	if (!*exp) {
@@ -2401,8 +2403,9 @@ edit_save_block_cmd (WEdit *edit)
 int
 edit_insert_file_cmd (WEdit *edit)
 {
-    char *exp = edit_get_load_file (catstrs (home_dir, PATH_SEP_STR CLIP_FILE, (char *) NULL),
-				    _(" Insert File "));
+    char *exp = input_expand_dialog (_(" Insert File "), _(" Enter file name: "),
+				     MC_HISTORY_EDIT_INSERT_FILE,
+				     catstrs (home_dir, PATH_SEP_STR CLIP_FILE, (char *) NULL));
     edit_push_action (edit, KEY_PRESS + edit->start_display);
     if (exp) {
 	if (!*exp) {
@@ -2441,7 +2444,7 @@ int edit_sort_cmd (WEdit * edit)
 
     exp = input_dialog (_(" Run Sort "),
 	_(" Enter sort options (see manpage) separated by whitespace: "),
-	(old != NULL) ? old : "");
+	MC_HISTORY_EDIT_SORT, (old != NULL) ? old : "");
 
     if (!exp)
 	return 1;
@@ -2482,7 +2485,8 @@ edit_ext_cmd (WEdit *edit)
 
     exp =
 	input_dialog (_("Paste output of external command"),
-		      _("Enter shell command(s):"), NULL);
+		      _("Enter shell command(s):"),
+		      MC_HISTORY_EDIT_PASTE_EXTCMD, NULL);
 
     if (!exp)
 	return 1;

+ 24 - 18
src/cmd.c

@@ -61,6 +61,7 @@
 #include "setup.h"		/* save_setup() */
 #include "profile.h"		/* PROFILE_NAME */
 #include "execute.h"		/* toggle_panels() */
+#include "history.h"
 
 #ifndef MAP_FILE
 #   define MAP_FILE 0
@@ -229,7 +230,7 @@ view_file_cmd (void)
 
     filename =
 	input_expand_dialog (_(" View file "), _(" Filename:"),
-			     selection (current_panel)->fname);
+			     MC_HISTORY_FM_VIEW_FILE, selection (current_panel)->fname);
     if (!filename)
 	return;
 
@@ -252,6 +253,7 @@ filtered_view_cmd (void)
     command =
 	input_dialog (_(" Filtered view "),
 		      _(" Filter command and arguments:"),
+		      MC_HISTORY_FM_FILTERED_VIEW,
 		      selection (current_panel)->fname);
     if (!command)
 	return;
@@ -350,7 +352,8 @@ mkdir_cmd (void)
 
     dir =
 	input_expand_dialog (_("Create a new Directory"),
-			     _(" Enter directory name:"), "");
+			     _(" Enter directory name:"), 
+			     MC_HISTORY_FM_MKDIR, "");
     if (!dir)
 	return;
 
@@ -422,7 +425,7 @@ set_panel_filter (WPanel *p)
 	
     reg_exp = input_dialog_help (_(" Filter "),
 				 _(" Set expression for filtering filenames"),
-				 "[Filter...]", x);
+				 "[Filter...]", MC_HISTORY_FM_PANEL_FILTER, x);
     if (!reg_exp)
 	return;
     set_panel_filter_to (p, reg_exp);
@@ -468,14 +471,14 @@ void reverse_selection_cmd (void)
 }
 
 static void
-select_unselect_cmd (const char *title, int cmd)
+select_unselect_cmd (const char *title, const char *history_name, int cmd)
 {
     char *reg_exp, *reg_exp_t;
     int i;
     int c;
     int dirflag = 0;
 
-    reg_exp = input_dialog (title, "", easy_patterns ? "*" : ".");
+    reg_exp = input_dialog (title, "", history_name, easy_patterns ? "*" : ".");
     if (!reg_exp)
 	return;
     if (!*reg_exp) {
@@ -521,12 +524,12 @@ select_unselect_cmd (const char *title, int cmd)
 
 void select_cmd (void)
 {
-    select_unselect_cmd (_(" Select "), 1);
+    select_unselect_cmd (_(" Select "), ":select_cmd: Select ", 1);
 }
 
 void unselect_cmd (void)
 {
-    select_unselect_cmd (_(" Unselect "), 0);
+    select_unselect_cmd (_(" Unselect "), ":unselect_cmd: Unselect ", 0);
 }
 
 /* Check if the file exists */
@@ -903,7 +906,7 @@ do_link (int symbolic_link, const char *fname)
 
     if (!symbolic_link) {
 	src = g_strdup_printf (_("Link %s to:"), name_trunc (fname, 46));
-	dest = input_expand_dialog (_(" Link "), src, "");
+	dest = input_expand_dialog (_(" Link "), src, MC_HISTORY_FM_LINK, "");
 	if (!dest || !*dest)
 	    goto cleanup;
 	save_cwds_stat ();
@@ -972,7 +975,7 @@ void edit_symlink_cmd (void)
 	i = readlink (p, buffer, MC_MAXPATHLEN - 1);
 	if (i > 0) {
 	    buffer [i] = 0;
-	    dest = input_expand_dialog (_(" Edit symlink "), q, buffer);
+	    dest = input_expand_dialog (_(" Edit symlink "), q, MC_HISTORY_FM_EDIT_LINK, buffer);
 	    if (dest) {
 		if (*dest && strcmp (buffer, dest)) {
 		    save_cwds_stat ();
@@ -1085,7 +1088,8 @@ get_random_hint (int force)
 
 #if defined(USE_NETCODE) || defined(USE_EXT2FSLIB)
 static void
-nice_cd (const char *text, const char *xtext, const char *help, const char *prefix, int to_home)
+nice_cd (const char *text, const char *xtext, const char *help,
+	 const char *history_name, const char *prefix, int to_home)
 {
     char *machine;
     char *cd_path;
@@ -1093,9 +1097,7 @@ nice_cd (const char *text, const char *xtext, const char *help, const char *pref
     if (!SELECTED_IS_PANEL)
 	return;
 
-    machine = input_dialog_help (text,
-				 xtext,
-				 help, "");
+    machine = input_dialog_help (text, xtext, help, history_name, "");
     if (!machine)
 	return;
 
@@ -1125,27 +1127,30 @@ static const char *machine_str = N_(" Enter machine name (F1 for details): ");
 void netlink_cmd (void)
 {
     nice_cd (_(" Link to a remote machine "), _(machine_str),
-	     "[Network File System]", "/#mc:", 1);
+	     "[Network File System]", ":netlink_cmd: Link to a remote ",
+	     "/#mc:", 1);
 }
 #endif /* WITH_MCFS */
 
 void ftplink_cmd (void)
 {
     nice_cd (_(" FTP to machine "), _(machine_str),
-	     "[FTP File System]", "/#ftp:", 1);
+	     "[FTP File System]", ":ftplink_cmd: FTP to machine ", "/#ftp:", 1);
 }
 
 void fishlink_cmd (void)
 {
     nice_cd (_(" Shell link to machine "), _(machine_str),
-	     "[FIle transfer over SHell filesystem]", "/#sh:", 1);
+	     "[FIle transfer over SHell filesystem]", ":fishlink_cmd: Shell link to machine ",
+	     "/#sh:", 1);
 }
 
 #ifdef WITH_SMBFS
 void smblink_cmd (void)
 {
     nice_cd (_(" SMB link to machine "), _(machine_str),
-	     "[SMB File System]", "/#smb:", 0);
+	     "[SMB File System]", ":smblink_cmd: SMB link to machine ",
+	     "/#smb:", 0);
 }
 #endif /* WITH_SMBFS */
 #endif /* USE_NETCODE */
@@ -1156,7 +1161,8 @@ void undelete_cmd (void)
     nice_cd (_(" Undelete files on an ext2 file system "),
 	     _(" Enter device (without /dev/) to undelete\n "
 	       "  files on: (F1 for details)"),
-	     "[Undelete File System]", "/#undel:", 0);
+	     "[Undelete File System]", ":undelete_cmd: Undel on ext2 fs ",
+	     "/#undel:", 0);
 }
 #endif /* USE_EXT2FSLIB */
 

+ 2 - 2
src/ext.c

@@ -36,7 +36,7 @@
 #include "ext.h"
 #include "view.h"
 #include "execute.h"
-
+#include "history.h"
 #include "cons.saver.h"
 #include "layout.h"
 
@@ -114,7 +114,7 @@ exec_extension (const char *filename, const char *data, int *move_dir,
 	    if (*data == '}') {
 		char *parameter;
 		parameter_found = 0;
-		parameter = input_dialog (_(" Parameter "), prompt, "");
+		parameter = input_dialog (_(" Parameter "), prompt, MC_HISTORY_EXT_PARAMETER, "");
 		if (!parameter) {
 		    /* User canceled */
 		    fclose (cmd_file);

+ 36 - 0
src/history.h

@@ -0,0 +1,36 @@
+#ifndef __MC_HISTORY_H
+#define __MC_HISTORY_H
+
+/* history section names */
+
+#define MC_HISTORY_EDIT_SAVE_AS		"mc.edit.save-as"
+#define MC_HISTORY_EDIT_LOAD		"mc.edit.load"
+#define MC_HISTORY_EDIT_SAVE_BLOCK	"mc.edit.save-block"
+#define MC_HISTORY_EDIT_INSERT_FILE	"mc.edit.insert-file"
+#define MC_HISTORY_EDIT_GOTO_LINE	"mc.edit.goto-line"
+#define MC_HISTORY_EDIT_SORT		"mc.edit.sort"
+#define MC_HISTORY_EDIT_PASTE_EXTCMD	"mc.edit.paste-extcmd"
+
+#define MC_HISTORY_FM_VIEW_FILE		"mc.fm.view-file"
+#define MC_HISTORY_FM_MKDIR		"mc.fm.mkdir"
+#define MC_HISTORY_FM_LINK		"mc.fm.link"
+#define MC_HISTORY_FM_EDIT_LINK		"mc.fm.edit-link"
+#define MC_HISTORY_FM_TREE_COPY		"mc.fm.tree-copy"
+#define MC_HISTORY_FM_TREE_MOVE		"mc.fm.tree-move"
+#define MC_HISTORY_FM_PANELIZE_ADD	"mc.fm.panelize.add"
+#define MC_HISTORY_FM_FILTERED_VIEW	"mc.fm.filtered-view"
+#define MC_HISTORY_FM_PANEL_FILTER	"mc.fm.panel-filter"
+#define MC_HISTORY_FM_MENU_EXEC_PARAM	"mc.fm.menu.exec.parameter"
+
+#define MC_HISTORY_VIEW_GOTO_LINE	"mc.view.goto-line"
+#define MC_HISTORY_VIEW_GOTO_ADDR	"mc.view.goto-addr"
+#define MC_HISTORY_VIEW_SEARCH_REGEX	"mc.view.search.regex"
+
+#define MC_HISTORY_FTPFS_ACCOUNT	"mc.vfs.ftp.account"
+#define MC_HISTORY_VFS_PASSWORD		"mc.vfs.password"
+
+#define MC_HISTORY_EXT_PARAMETER	"mc.ext.parameter"
+
+#define MC_HISTORY_HOTLIST_ADD		"mc.hotlist.add"
+
+#endif

+ 2 - 1
src/hotlist.c

@@ -51,6 +51,7 @@
 #include "key.h"		/* KEY_M_CTRL */
 #include "command.h"		/* cmdline */
 #include "glibcompat.h"		/* g_strlcpy for glib < 2.0 */
+#include "history.h"
 
 #define UX		5
 #define UY		2
@@ -1042,7 +1043,7 @@ void add2hotlist_cmd (void)
     strip_password (label_string, 1);
 
     prompt = g_strdup_printf (cp, path_trunc (current_panel->cwd, COLS-2*UX-(l+8)));
-    label = input_dialog (_(" Add to hotlist "), prompt, label_string);
+    label = input_dialog (_(" Add to hotlist "), prompt, MC_HISTORY_HOTLIST_ADD, label_string);
     g_free (prompt);
 
     if (!label || !*label) {

+ 2 - 0
src/panelize.c

@@ -43,6 +43,7 @@
 #include "panel.h"		/* current_panel */
 #include "main.h"		/* repaint_screen */
 #include "panelize.h"
+#include "history.h"
 
 #define UX		5
 #define UY		2
@@ -226,6 +227,7 @@ add2panelize_cmd (void)
     if (pname->buffer && (*pname->buffer)) {
 	label = input_dialog (_(" Add to external panelize "), 
 		_(" Enter command label: "), 
+		MC_HISTORY_FM_PANELIZE_ADD,
 			      "");
 	if (!label)
 	    return;

+ 3 - 2
src/tree.c

@@ -49,6 +49,7 @@
 #include "tree.h"
 #include "treestore.h"
 #include "cmd.h"
+#include "history.h"
 
 #define tlines(t) (t->is_panel ? t->widget.lines-2 - (show_mini_info ? 2 : 0) : t->widget.lines)
 
@@ -598,7 +599,7 @@ static void tree_copy (WTree *tree, const char *default_dest)
 	return;
     g_snprintf (cmd_buf, sizeof(cmd_buf), _("Copy \"%s\" directory to:"),
 	     name_trunc (tree->selected_ptr->name, 50));
-    dest = input_expand_dialog (_(" Copy "), cmd_buf, default_dest);
+    dest = input_expand_dialog (_(" Copy "), cmd_buf, MC_HISTORY_FM_TREE_COPY, default_dest);
 
     if (!dest)
 	return;
@@ -641,7 +642,7 @@ static void tree_move (WTree *tree, const char *default_dest)
 	return;
     g_snprintf (cmd_buf, sizeof (cmd_buf), _("Move \"%s\" directory to:"),
 	     name_trunc (tree->selected_ptr->name, 50));
-    dest = input_expand_dialog (_(" Move "), cmd_buf, default_dest);
+    dest = input_expand_dialog (_(" Move "), cmd_buf, MC_HISTORY_FM_TREE_MOVE, default_dest);
     if (!dest)
 	return;
     if (!*dest){

+ 2 - 1
src/user.c

@@ -33,6 +33,7 @@
 #include "layout.h"
 #include "execute.h"
 #include "setup.h"
+#include "history.h"
 
 #include "../edit/edit.h"		/* BLOCK_FILE */
 #include "../edit/edit-widget.h"	/* WEdit */
@@ -604,7 +605,7 @@ execute_menu_command (WEdit *edit_widget, const char *commands)
 	    if (*commands == '}'){
 		char *tmp;
 		*parameter = 0;
-		parameter = input_dialog (_(" Parameter "), prompt, "");
+		parameter = input_dialog (_(" Parameter "), prompt, MC_HISTORY_FM_MENU_EXEC_PARAM, "");
 		if (!parameter || !*parameter){
 		    /* User canceled */
 		    fclose (cmd_file);

+ 4 - 4
src/view.c

@@ -62,7 +62,7 @@
 #include "execute.h"
 #include "main.h"		/* slow_terminal */
 #include "view.h"
-
+#include "history.h"
 #include "charsets.h"
 #include "selcodepage.h"
 
@@ -2734,7 +2734,7 @@ view_moveto_line_cmd (WView *view)
     g_snprintf (prompt, sizeof (prompt),
 		_(" The current line number is %d.\n"
 		  " Enter the new line number:"), (int) (line + 1));
-    answer = input_dialog (_(" Goto line "), prompt, "");
+    answer = input_dialog (_(" Goto line "), prompt, MC_HISTORY_VIEW_GOTO_LINE, "");
     if (answer != NULL && answer[0] != '\0') {
 	errno = 0;
 	line = strtoul (answer, &answer_end, 10);
@@ -2755,7 +2755,7 @@ view_moveto_addr_cmd (WView *view)
     g_snprintf (prompt, sizeof (prompt),
 		_(" The current address is 0x%lx.\n"
 		  " Enter the new address:"), view->hex_cursor);
-    line = input_dialog (_(" Goto Address "), prompt, "");
+    line = input_dialog (_(" Goto Address "), prompt, MC_HISTORY_VIEW_GOTO_ADDR, "");
     if (line != NULL) {
 	if (*line != '\0') {
 	    addr = strtoul (line, &error, 0);
@@ -2788,7 +2788,7 @@ regexp_search (WView *view, int direction)
 
     defval = (last_regexp != NULL ? last_regexp : "");
 
-    regexp = input_dialog (_("Search"), _(" Enter regexp:"), defval);
+    regexp = input_dialog (_("Search"), _(" Enter regexp:"), MC_HISTORY_VIEW_SEARCH_REGEX, defval);
     if (regexp == NULL || regexp[0] == '\0') {
 	g_free (regexp);
 	return;

+ 20 - 12
src/wtools.c

@@ -434,11 +434,15 @@ int quick_dialog (QuickDialog *qd)
  *
  * If the arguments "header" and "text" should be translated,
  * that MUST be done by the caller of fg_input_dialog_help().
+ *
+ * The argument "history_name" holds the name of a section
+ * in the history file. Data entered in the input field of
+ * the dialog box will be stored there.
  * 
  */
 static char *
 fg_input_dialog_help (const char *header, const char *text, const char *help,
-			const char *def_text)
+		      const char *history_name, const char *def_text)
 {
     QuickDialog Quick_input;
     QuickWidget quick_widgets[] = {
@@ -458,10 +462,10 @@ fg_input_dialog_help (const char *header, const char *text, const char *help,
     char histname[64] = "inp|";
     char *p_text;
 
-    /* we need a unique name for histname because widget.c:history_tool()
-       needs a unique name for each dialog - using the header is ideal */
-    g_strlcpy (histname + 3, header, 61);
-    quick_widgets[2].histname = histname;
+    if (history_name != NULL && *history_name != '\0') {
+	g_strlcpy (histname + 3, history_name, 61);
+	quick_widgets[2].histname = histname;
+    }
 
     msglen (text, &lines, &cols);
     len = max ((int) strlen (header), cols) + 4;
@@ -525,32 +529,36 @@ fg_input_dialog_help (const char *header, const char *text, const char *help,
  * that MUST be done by the caller of these wrappers.
  */
 char *
-input_dialog_help (const char *header, const char *text, const char *help, const char *def_text)
+input_dialog_help (const char *header, const char *text, const char *help,
+		   const char *history_name, const char *def_text)
 {
 #ifdef WITH_BACKGROUND
     if (we_are_background)
-	return parent_call_string ((void *) fg_input_dialog_help, 4,
+	return parent_call_string ((void *) fg_input_dialog_help, 5,
 				   strlen (header), header, strlen (text),
 				   text, strlen (help), help,
+				   strlen (history_name), history_name,
 				   strlen (def_text), def_text);
     else
 #endif				/* WITH_BACKGROUND */
-	return fg_input_dialog_help (header, text, help, def_text);
+	return fg_input_dialog_help (header, text, help, history_name, def_text);
 }
 
 /* Show input dialog with default help, background safe */
-char *input_dialog (const char *header, const char *text, const char *def_text)
+char *input_dialog (const char *header, const char *text,
+		    const char *history_name, const char *def_text)
 {
-    return input_dialog_help (header, text, "[Input Line Keys]", def_text);
+    return input_dialog_help (header, text, "[Input Line Keys]", history_name, def_text);
 }
 
 char *
-input_expand_dialog (const char *header, const char *text, const char *def_text)
+input_expand_dialog (const char *header, const char *text, 
+		     const char *history_name, const char *def_text)
 {
     char *result;
     char *expanded;
 
-    result = input_dialog (header, text, def_text);
+    result = input_dialog (header, text, history_name, def_text);
     if (result) {
 	expanded = tilde_expand (result);
 	g_free (result);

Some files were not shown because too many files changed in this diff