- don't free user-supplied string (via -e)
[oweals/busybox.git] / console-tools / loadfont.c
index b046d40e38642ab7454c9f4809aace7ef06b8e67..48b298002d5bdf44483f526615737c783cbb2283 100644 (file)
@@ -49,13 +49,11 @@ static void do_loadfont(int fd, unsigned char *inbuf, int unit, int fontsize)
                cfd.charheight = unit;
                cfd.chardata = buf;
 
-               if (ioctl(fd, PIO_FONTX, &cfd) == 0)
+               if (!ioctl_or_perror(fd, PIO_FONTX, &cfd, "PIO_FONTX ioctl failed (will try PIO_FONT)"))
                        goto ret;                       /* success */
-               bb_perror_msg("PIO_FONTX ioctl (will try PIO_FONT)");
        }
 #endif
-       if (ioctl(fd, PIO_FONT, buf))
-               bb_perror_msg_and_die("PIO_FONT ioctl");
+       xioctl(fd, PIO_FONT, buf);
  ret:
        free(buf);
 }
@@ -92,20 +90,10 @@ do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
        advice.advised_hashsize = 0;
        advice.advised_hashstep = 0;
        advice.advised_hashlevel = 0;
-       if (ioctl(fd, PIO_UNIMAPCLR, &advice)) {
-#ifdef ENOIOCTLCMD
-               if (errno == ENOIOCTLCMD) {
-                       bb_error_msg("it seems this kernel is older than 1.1.92");
-                       bb_error_msg_and_die("no Unicode mapping table loaded");
-               } else
-#endif
-                       bb_perror_msg_and_die("PIO_UNIMAPCLR");
-       }
+       xioctl(fd, PIO_UNIMAPCLR, &advice);
        ud.entry_ct = ct;
        ud.entries = up;
-       if (ioctl(fd, PIO_UNIMAP, &ud)) {
-               bb_perror_msg_and_die("PIO_UNIMAP");
-       }
+       xioctl(fd, PIO_UNIMAP, &ud);
 }
 
 static void loadnewfont(int fd)
@@ -178,8 +166,8 @@ static void loadnewfont(int fd)
        do_loadfont(fd, inbuf + offset, unit, 256);
 }
 
-int loadfont_main(int argc, char **argv);
-int loadfont_main(int argc, char **argv)
+int loadfont_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int loadfont_main(int argc, char **argv UNUSED_PARAM)
 {
        int fd;