From 854ddcaf13f857e969bf24a966ea1647a011c42f Mon Sep 17 00:00:00 2001 From: rcyeske Date: Sat, 24 Feb 2001 23:37:18 +0000 Subject: added initialization file support "~/.ratpoisonrc" --- src/main.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index daa47f4..1a85969 100644 --- a/src/main.c +++ b/src/main.c @@ -176,6 +176,54 @@ print_help () exit (EXIT_SUCCESS); } +static void +load_rc_file (char *filename) +{ + FILE *rcfile; + + char *lineptr; + size_t n; + + n = 0; + lineptr = NULL; + + if ((rcfile = fopen (filename, "r")) == NULL) + { + fprintf (stderr, "ratpoison: could not open %s\n", filename); + } + else + { + size_t retval; + n = 256; + lineptr = (char*)malloc(n); + + while ((retval = getline (&lineptr, &n, rcfile)) != EOF) + { + fprintf (stderr, "read command: %s\n", lineptr); + + command (lineptr); + } + + free (lineptr); + } +} + +static void +read_initialization_files () +{ + char *homedir; + + homedir = getenv ("HOME"); + + if (!homedir) + fprintf (stderr, "$HOME not set!?\n"); + else + { + char *rcfile = (char*)malloc (strlen (homedir) + strlen ("/.ratpoisonrc") + 1); + sprintf (rcfile, "%s/.ratpoisonrc", homedir); + load_rc_file (rcfile); + } +} int main (int argc, char *argv[]) @@ -281,6 +329,8 @@ main (int argc, char *argv[]) initialize_default_keybindings (); + read_initialization_files (); + /* Set an initial window as active. */ set_active_window (find_window_other ()); @@ -376,5 +426,5 @@ find_screen (Window w) for (i=0; i