diff --git a/ChangeLog b/ChangeLog index 0438058d..45739ad1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-03-01 Mike Frysinger + * src/color.c (color_update) - Do not write to stderr on magic + errors. If the magic db has errors such that magic_load() fails, + the current code dumps to stderr which messes up the terminal. + The error message is also vague to the point where it's confusing + -- I thought nano had problems writing to the file I was editing. + Instead, use statusbar() and clarify the messages. + (Patch tweaked by Benno.) + 2014-02-28 Benno Schulenberg * src/text.c (execute_command) - Equalize pipe error messages. * src/global.c (thanks_for_all_the_fish) - Remove a redundant diff --git a/src/color.c b/src/color.c index e5d3348f..40281808 100644 --- a/src/color.c +++ b/src/color.c @@ -160,24 +160,23 @@ void color_update(void) } #ifdef HAVE_LIBMAGIC - - if (strcmp(openfile->filename,"") && stat(openfile->filename, &fileinfo) == 0) { + if (stat(openfile->filename, &fileinfo) == 0) { m = magic_open(MAGIC_SYMLINK | #ifdef DEBUG MAGIC_DEBUG | MAGIC_CHECK | -#endif /* DEBUG */ +#endif MAGIC_ERROR); if (m == NULL || magic_load(m, NULL) < 0) - fprintf(stderr, "something went wrong: %s [%s]\n", strerror(errno), openfile->filename); + statusbar(_("magic_load() failed: %s"), strerror(errno)); else { magicstring = magic_file(m,openfile->filename); if (magicstring == NULL) { magicerr = magic_error(m); - fprintf(stderr, "something went wrong: %s [%s]\n", magicerr, openfile->filename); + statusbar(_("magic_file(%s) failed: %s"), openfile->filename, magicerr); } #ifdef DEBUG - fprintf(stderr, "magic string returned: %s\n", magicstring); -#endif /* DEBUG */ + fprintf(stderr, "magic string returned: %s\n", magicstring); +#endif } } #endif /* HAVE_LIBMAGIC */