Not writing to stderr on magic errors, patch mostly by Mike Frysinger.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4629 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Benno Schulenberg 2014-03-01 10:20:57 +00:00
parent 3aea69daae
commit bc5c7c3b74
2 changed files with 15 additions and 7 deletions

View File

@ -1,3 +1,12 @@
2014-03-01 Mike Frysinger <vapier@gentoo.org>
* 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 <bensberg@justemail.net> 2014-02-28 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (execute_command) - Equalize pipe error messages. * src/text.c (execute_command) - Equalize pipe error messages.
* src/global.c (thanks_for_all_the_fish) - Remove a redundant * src/global.c (thanks_for_all_the_fish) - Remove a redundant

View File

@ -160,24 +160,23 @@ void color_update(void)
} }
#ifdef HAVE_LIBMAGIC #ifdef HAVE_LIBMAGIC
if (stat(openfile->filename, &fileinfo) == 0) {
if (strcmp(openfile->filename,"") && stat(openfile->filename, &fileinfo) == 0) {
m = magic_open(MAGIC_SYMLINK | m = magic_open(MAGIC_SYMLINK |
#ifdef DEBUG #ifdef DEBUG
MAGIC_DEBUG | MAGIC_CHECK | MAGIC_DEBUG | MAGIC_CHECK |
#endif /* DEBUG */ #endif
MAGIC_ERROR); MAGIC_ERROR);
if (m == NULL || magic_load(m, NULL) < 0) 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 { else {
magicstring = magic_file(m,openfile->filename); magicstring = magic_file(m,openfile->filename);
if (magicstring == NULL) { if (magicstring == NULL) {
magicerr = magic_error(m); 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 #ifdef DEBUG
fprintf(stderr, "magic string returned: %s\n", magicstring); fprintf(stderr, "magic string returned: %s\n", magicstring);
#endif /* DEBUG */ #endif
} }
} }
#endif /* HAVE_LIBMAGIC */ #endif /* HAVE_LIBMAGIC */