*/
void os_warn (const char *s, ...)
{
+ va_list m;
+ char errorstring[81];
+ int style;
+
+ va_start(m, s);
+ vsnprintf(errorstring, sizeof(char) * 80, s, m);
+ va_end(m);
+
if (u_setup.curses_active) {
- /* Solaris 2.6's cc complains if the below cast is missing */
- print_c_string("\n\n");
os_beep(BEEP_HIGH);
+ style = u_setup.current_text_style;
os_set_text_style(BOLDFACE_STYLE);
print_c_string("Warning: ");
- os_set_text_style(0);
- print_c_string(s);
- print_c_string("\n");
+ print_c_string(errorstring);
+ os_set_text_style(NORMAL_STYLE);
new_line();
- }
+ os_set_text_style(style);
+ } else
+ printf("Warning: %s\n", errorstring);
+
+ return;
} /* os_warn */
zchar answer[4];
char path_separator[2];
char file_name[FILENAME_MAX + 1];
+ char *ext;
path_separator[0] = PATH_SEPARATOR;
path_separator[1] = 0;
strncat(file_name, tempname, strlen(file_name) - strlen(tempname) - 1);
}
+ if (flag == FILE_NO_PROMPT) {
+ ext = strrchr(file_name, '.');
+ if (strncmp(ext, EXT_AUX, 4)) {
+ os_warn("Blocked unprompted access of %s. Should only be %s files.", file_name, EXT_AUX);
+ return NULL;
+ }
+ }
+
/* Warn if overwriting a file. */
if ((flag == FILE_SAVE || flag == FILE_SAVE_AUX ||
flag == FILE_RECORD || flag == FILE_SCRIPT)