--- cam-1.05.orig/sounds.c
+++ cam-1.05/sounds.c
@@ -144,6 +144,27 @@
return 99;
}
+/* determine default save file name. caller must free the space allocated. */
+
+#define DEFAULT_RCFILE "/.camrc"
+#define NO_HOME_FILE "/dev/null"
+
+char *
+get_default_filename (void)
+{
+ char *q, *SAVE_FILE;
+ q = getenv ("HOME");
+ if (q) {
+ SAVE_FILE = malloc (strlen (q) + strlen(DEFAULT_RCFILE) + 1);
+ strcpy (SAVE_FILE, q);
+ strcat (SAVE_FILE, DEFAULT_RCFILE);
+ } else {
+ SAVE_FILE = malloc (strlen (NO_HOME_FILE) + 1);
+ strcpy (SAVE_FILE, NO_HOME_FILE);
+ }
+ return SAVE_FILE;
+}
+
/* sets sound given from command line */
void
set_sound (int argc, char *argv[])
@@ -151,14 +172,11 @@
int ii, vol_left, vol_right, dummy, pos;
int argc_count = 1, arg_code;
FILE *save_file;
- char *SAVE_FILE, *q;
+ char *SAVE_FILE;
int device;
int left, right;
- q = getenv ("HOME");
- SAVE_FILE = malloc (strlen (q) + 8);
- strcpy (SAVE_FILE, q);
- strcat (SAVE_FILE, "/.camrc");
+ SAVE_FILE = get_default_filename();
init_sound ();
do
@@ -483,7 +501,7 @@
int locked = FALSE;
FILE *save_file;
int dev_nr = 0;
- char *SAVE_FILE, *q;
+ char *SAVE_FILE;
int *volume;
int X_rest = LPOS;
int dev_nrs;
@@ -491,10 +509,7 @@
int vol_left, vol_right;
int dev_nr_tmp;
- q = getenv ("HOME");
- SAVE_FILE = malloc (strlen (q) + 8);
- strcpy (SAVE_FILE, q);
- strcat (SAVE_FILE, "/.camrc");
+ SAVE_FILE = get_default_filename();
init_sound ();
init_sliders ();
@@ -913,6 +928,11 @@
endwin ();
dev_count = 0;
longjmp (env, 2);
+ break;
+ case 12:
+ endwin ();
+ refresh ();
+ break;
}
if ((ch != 27) && (ch != 'Q') && (ch != 'q'))
{