aboutsummaryrefslogtreecommitdiff
path: root/gdb/main.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1991-10-28 02:20:47 +0000
committerStu Grossman <grossman@cygnus>1991-10-28 02:20:47 +0000
commit8b3c897ae978c4460d8df779ebedc94b5e0d32b2 (patch)
tree6705534604e7ccd7c4afc19b9e833a6d7fdb0041 /gdb/main.c
parentda6745fd6897fbeab013a8e5d693c248921a50b7 (diff)
downloadgdb-8b3c897ae978c4460d8df779ebedc94b5e0d32b2.zip
gdb-8b3c897ae978c4460d8df779ebedc94b5e0d32b2.tar.gz
gdb-8b3c897ae978c4460d8df779ebedc94b5e0d32b2.tar.bz2
* main.c (initialize_history): Read history after reading all
init files.
Diffstat (limited to 'gdb/main.c')
-rw-r--r--gdb/main.c50
1 files changed, 32 insertions, 18 deletions
diff --git a/gdb/main.c b/gdb/main.c
index 795e94a..936879c 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -170,6 +170,7 @@ extern void init_malloc ();
void free_command_lines ();
char *gdb_readline ();
char *command_line_input ();
+static void initialize_history ();
static void initialize_main ();
static void initialize_cmd_lists ();
static void init_signals ();
@@ -211,7 +212,7 @@ char *baud_rate;
#define HAVE_SIGSETMASK !defined (USG)
#endif
-#if !HAVE_SIGSETMASK
+#if 0 == (HAVE_SIGSETMASK)
#define sigsetmask(n)
#endif
@@ -677,6 +678,9 @@ GDB manual (available as on-line info or a printed manual).\n", stderr);
}
free (cmdarg);
+ /* Read in the old history after all the command files have been read. */
+ initialize_history();
+
if (batch)
{
/* We have hit the end of the batch file. */
@@ -1993,41 +1997,51 @@ initialize_cmd_lists ()
unsethistlist = (struct cmd_list_element *) 0;
}
+/* Init the history buffer. Note that we are called after the init file(s)
+ * have been read so that the user can change the history file via his
+ * .gdbinit file (for instance). The GDBHISTFILE environment variable
+ * overrides all of this.
+ */
+
static void
-initialize_main ()
+initialize_history()
{
- struct cmd_list_element *c;
-
char *tmpenv;
-
-#ifdef DEFAULT_PROMPT
- prompt = savestring (DEFAULT_PROMPT, strlen(DEFAULT_PROMPT));
-#else
- prompt = savestring ("(gdb) ", 6);
-#endif
- /* Set the important stuff up for command editing. */
- command_editing_p = 1;
- history_expansion_p = 0;
- write_history_p = 0;
-
if (tmpenv = getenv ("HISTSIZE"))
history_size = atoi (tmpenv);
- else
+ else if (!history_size)
history_size = 256;
stifle_history (history_size);
if (tmpenv = getenv ("GDBHISTFILE"))
history_filename = savestring (tmpenv, strlen(tmpenv));
- else
+ else if (!history_filename) {
/* We include the current directory so that if the user changes
directories the file written will be the same as the one
that was read. */
history_filename = concat (current_directory, "/.gdb_history", "");
-
+ }
read_history (history_filename);
+}
+static void
+initialize_main ()
+{
+ struct cmd_list_element *c;
+
+#ifdef DEFAULT_PROMPT
+ prompt = savestring (DEFAULT_PROMPT, strlen(DEFAULT_PROMPT));
+#else
+ prompt = savestring ("(gdb) ", 6);
+#endif
+
+ /* Set the important stuff up for command editing. */
+ command_editing_p = 1;
+ history_expansion_p = 0;
+ write_history_p = 0;
+
/* Setup important stuff for command line editing. */
rl_completion_entry_function = (int (*)()) symbol_completion_function;
rl_completer_word_break_characters = gdb_completer_word_break_characters;