]> git.wh0rd.org Git - nano.git/commitdiff
Not writing to stderr on magic errors, patch mostly by Mike Frysinger.
authorBenno Schulenberg <bensberg@justemail.net>
Sat, 1 Mar 2014 10:20:57 +0000 (10:20 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sat, 1 Mar 2014 10:20:57 +0000 (10:20 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4629 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/color.c

index 0438058dbd74693c8b2137dc7d181931e08bc2e5..45739ad119d2fd34e07babe4ff4e43be7174f7cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
        * src/text.c (execute_command) - Equalize pipe error messages.
        * src/global.c (thanks_for_all_the_fish) - Remove a redundant
index e5d3348f97396be05bca34a11faec5df53f99c4b..402818084f61423498f14123faaa960ed20d9684 100644 (file)
@@ -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 */