Changeset c55a8e66237e1bd8d22b4497b6f0421472187764

Show
Ignore:
Timestamp:
02/07/08 04:06:57 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1202357217 +0000
git-parent:

[60bc39d361de925846388b078c59c28b59587e3e]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1202357217 +0000
Message:

replace FILE * with fd for errors

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/noitedit/el.c

    r5b6ccbe rc55a8e6  
    8484 */ 
    8585public EditLine * 
    86 el_init(const char *prog, FILE *fin, FILE *fout, FILE *ferr
     86el_init(const char *prog, int infd, FILE *fout, int errfd
    8787{ 
    8888 
     
    9797        memset(el, 0, sizeof(EditLine)); 
    9898 
    99         el->el_infd = fileno(fin)
     99        el->el_infd = infd
    100100        el->el_outfile = fout; 
    101         el->el_errfile = ferr; 
     101        el->el_errfd = errfd; 
     102        el->el_err_printf = el_err_printf; 
    102103        el->el_prog = strdup(prog); 
    103104 
     
    511512                el->el_flags |= EDIT_DISABLED; 
    512513        else { 
    513                 (void) fprintf(el->el_errfile, "edit: Bad value `%s'.\n", how); 
     514                (void) el->el_err_printf(el, "edit: Bad value `%s'.\n", how); 
    514515                return (-1); 
    515516        } 
    516517        return (0); 
    517518} 
     519 
     520protected int 
     521el_err_vprintf(EditLine *el, char *fmt, va_list arg) 
     522{ 
     523        int len; 
     524        char buffer[1024]; 
     525        len = vsnprintf(buffer, sizeof(buffer), fmt, arg); 
     526        if(len > sizeof(buffer)) len = sizeof(buffer); 
     527        len = write(el->el_errfd, buffer, len); 
     528        return len; 
     529} 
     530 
     531protected int 
     532el_err_printf(EditLine *el, char *fmt, ...) 
     533{ 
     534        int len; 
     535        va_list arg; 
     536        va_start(arg, fmt); 
     537        len = el_err_vprintf(el, fmt, arg); 
     538        va_end(arg); 
     539        return len; 
     540} 
  • src/noitedit/el.h

    r5b6ccbe rc55a8e6  
    126126        char             *el_prog;      /* the program name             */ 
    127127        FILE             *el_outfile;   /* Stdio stuff                  */ 
    128         FILE            *el_errfile;   /* Stdio stuff                  */ 
     128        int               el_errfd;     /* Error file descriptor        */ 
    129129        int               el_infd;      /* Input file descriptor        */ 
    130130        int               el_flags;     /* Various flags.               */ 
     
    146146        el_signal_t       el_signal;    /* Signal handling stuff        */ 
    147147        int               el_nb_state;  /* Did we eagain?               */ 
     148        int             (*el_err_printf)(struct editline *, const char *, ...); 
    148149}; 
    149150 
    150151protected int   el_editmode(EditLine *, int, char **); 
     152protected int   el_err_printf(EditLine *el, char *fmt, ...); 
     153protected int   el_err_vprintf(EditLine *el, char *fmt, va_list arg); 
    151154 
    152155#ifdef DEBUG 
    153 #define EL_ABORT(a)     (void) (fprintf(el->el_errfile, "%s, %d: ", \ 
     156#define EL_ABORT(a)     (void) (el->el_err_printf(el, "%s, %d: ", \ 
    154157                                __FILE__, __LINE__), fprintf a, abort()) 
    155158#else 
  • src/noitedit/histedit.h

    r5b6ccbe rc55a8e6  
    8888 * Initialization, cleanup, and resetting 
    8989 */ 
    90 EditLine        *el_init(const char *, FILE *, FILE *, FILE *); 
     90EditLine        *el_init(const char *, int, FILE *, int); 
    9191void             el_reset(EditLine *); 
    9292void             el_end(EditLine *); 
  • src/noitedit/key.c

    rbafab25 rc55a8e6  
    196196 
    197197        if (key[0] == '\0') { 
    198                 (void) fprintf(el->el_errfile
     198                (void) el->el_err_printf(el
    199199                    "key_add: Null extended-key not allowed.\n"); 
    200200                return; 
    201201        } 
    202202        if (ntype == XK_CMD && val->cmd == ED_SEQUENCE_LEAD_IN) { 
    203                 (void) fprintf(el->el_errfile
     203                (void) el->el_err_printf(el
    204204                    "key_add: sequence-lead-in command not allowed\n"); 
    205205                return; 
     
    241241 
    242242        if (key[0] == '\0') { 
    243                 (void) fprintf(el->el_errfile
     243                (void) el->el_err_printf(el
    244244                    "key_delete: Null extended-key not allowed.\n"); 
    245245                return (-1); 
     
    268268        if (node_lookup(el, key, el->el_key.map, 1) <= -1) 
    269269                /* key is not bound */ 
    270                 (void) fprintf(el->el_errfile, "Unbound extended key \"%s\"\n", 
     270                (void) el->el_err_printf(el, "Unbound extended key \"%s\"\n", 
    271271                    key); 
    272272        return; 
     
    346346                        break; 
    347347                default: 
    348                         EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", 
     348                        EL_ABORT((el, "Bad XK_ type %d\n", 
    349349                            ptr->type)); 
    350350                        break; 
     
    360360                        break; 
    361361                default: 
    362                         EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); 
     362                        EL_ABORT((el, "Bad XK_ type %d\n", ntype)); 
    363363                        break; 
    364364                } 
     
    446446                break; 
    447447        default: 
    448                 EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ptr->type)); 
     448                EL_ABORT((el, "Bad XK_ type %d\n", ptr->type)); 
    449449                break; 
    450450        } 
     
    535535                el->el_key.buf[++cnt] = '"'; 
    536536                el->el_key.buf[++cnt] = '\0'; 
    537                 (void) fprintf(el->el_errfile
     537                (void) el->el_err_printf(el
    538538                    "Some extended keys too long for internal print buffer"); 
    539                 (void) fprintf(el->el_errfile, " \"%s...\"\n", el->el_key.buf); 
     539                (void) el->el_err_printf(el, " \"%s...\"\n", el->el_key.buf); 
    540540                return (0); 
    541541        } 
    542542        if (ptr == NULL) { 
    543543#ifdef DEBUG_EDIT 
    544                 (void) fprintf(el->el_errfile
     544                (void) el->el_err_printf(el
    545545                    "node_enum: BUG!! Null ptr passed\n!"); 
    546546#endif 
     
    598598                        break; 
    599599                default: 
    600                         EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); 
     600                        EL_ABORT((el, "Bad XK_ type %d\n", ntype)); 
    601601                        break; 
    602602                } 
  • src/noitedit/map.c

    rbafab25 rc55a8e6  
    11981198        } 
    11991199#endif 
    1200         EL_ABORT((el->el_errfile, "Error printing keys\n")); 
     1200        EL_ABORT((el, "Error printing keys\n")); 
    12011201} 
    12021202 
     
    12991299                                return (0); 
    13001300                        default: 
    1301                                 (void) fprintf(el->el_errfile
     1301                                (void) el->el_err_printf(el
    13021302                                    "%s: Invalid switch `%c'.\n", 
    13031303                                    argv[0], p[1]); 
     
    13131313                in = argv[argc++]; 
    13141314        else if ((in = parse__string(inbuf, argv[argc++])) == NULL) { 
    1315                 (void) fprintf(el->el_errfile
     1315                (void) el->el_err_printf(el
    13161316                    "%s: Invalid \\ or ^ in instring.\n", 
    13171317                    argv[0]); 
     
    13491349        case XK_EXE: 
    13501350                if ((out = parse__string(outbuf, argv[argc])) == NULL) { 
    1351                         (void) fprintf(el->el_errfile
     1351                        (void) el->el_err_printf(el
    13521352                            "%s: Invalid \\ or ^ in outstring.\n", argv[0]); 
    13531353                        return (-1); 
     
    13621362        case XK_CMD: 
    13631363                if ((cmd = parse_cmd(el, argv[argc])) == -1) { 
    1364                         (void) fprintf(el->el_errfile
     1364                        (void) el->el_err_printf(el
    13651365                            "%s: Invalid command `%s'.\n", argv[0], argv[argc]); 
    13661366                        return (-1); 
     
    13801380 
    13811381        default: 
    1382                 EL_ABORT((el->el_errfile, "Bad XK_ type\n", ntype)); 
     1382                EL_ABORT((el, "Bad XK_ type\n", ntype)); 
    13831383                break; 
    13841384        } 
  • src/noitedit/readline.c

    rbafab25 rc55a8e6  
    207207                editmode = 0; 
    208208 
    209         e = el_init(rl_readline_name, rl_instream, rl_outstream, stderr); 
     209        e = el_init(rl_readline_name, 
     210                    fileno(rl_instream), rl_outstream, fileno(stderr)); 
    210211 
    211212        if (!editmode) 
  • src/noitedit/term.c

    r5b6ccbe rc55a8e6  
    312312#ifdef DEBUG_SCREEN 
    313313        if (!EL_CAN_UP) { 
    314                 (void) fprintf(el->el_errfile
     314                (void) el->el_err_printf(el
    315315                    "WARNING: Your terminal cannot move up.\n"); 
    316                 (void) fprintf(el->el_errfile
     316                (void) el->el_err_printf(el
    317317                    "Editing may be odd for long lines.\n"); 
    318318        } 
    319319        if (!EL_CAN_CEOL) 
    320                 (void) fprintf(el->el_errfile, "no clear EOL capability.\n"); 
     320                (void) el->el_err_printf(el, "no clear EOL capability.\n"); 
    321321        if (!EL_CAN_DELETE) 
    322                 (void) fprintf(el->el_errfile, "no delete char capability.\n"); 
     322                (void) el->el_err_printf(el, "no delete char capability.\n"); 
    323323        if (!EL_CAN_INSERT) 
    324                 (void) fprintf(el->el_errfile, "no insert char capability.\n"); 
     324                (void) el->el_err_printf(el, "no insert char capability.\n"); 
    325325#endif /* DEBUG_SCREEN */ 
    326326} 
     
    430430        el->el_term.t_loc = tlen; 
    431431        if (el->el_term.t_loc + 3 >= TC_BUFSIZE) { 
    432                 (void) fprintf(el->el_errfile
     432                (void) el->el_err_printf(el
    433433                    "Out of termcap string space.\n"); 
    434434                return; 
     
    537537        if (where > el->el_term.t_size.v) { 
    538538#ifdef DEBUG_SCREEN 
    539                 (void) fprintf(el->el_errfile
     539                (void) el->el_err_printf(el
    540540                    "term_move_to_line: where is ridiculous: %d\r\n", where); 
    541541#endif /* DEBUG_SCREEN */ 
     
    595595        if (where > el->el_term.t_size.h) { 
    596596#ifdef DEBUG_SCREEN 
    597                 (void) fprintf(el->el_errfile
     597                (void) el->el_err_printf(el
    598598                    "term_move_to_char: where is riduculous: %d\r\n", where); 
    599599#endif /* DEBUG_SCREEN */ 
     
    681681        if (n > el->el_term.t_size.h) { 
    682682#ifdef DEBUG_SCREEN 
    683                 (void) fprintf(el->el_errfile
     683                (void) el->el_err_printf(el
    684684                    "term_overwrite: n is riduculous: %d\r\n", n); 
    685685#endif /* DEBUG_SCREEN */ 
     
    724724        if (!EL_CAN_DELETE) { 
    725725#ifdef DEBUG_EDIT 
    726                 (void) fprintf(el->el_errfile, "   ERROR: cannot delete   \n"); 
     726                (void) el->el_err_printf(el, "   ERROR: cannot delete   \n"); 
    727727#endif /* DEBUG_EDIT */ 
    728728                return; 
     
    730730        if (num > el->el_term.t_size.h) { 
    731731#ifdef DEBUG_SCREEN 
    732                 (void) fprintf(el->el_errfile
     732                (void) el->el_err_printf(el
    733733                    "term_deletechars: num is riduculous: %d\r\n", num); 
    734734#endif /* DEBUG_SCREEN */ 
     
    766766        if (!EL_CAN_INSERT) { 
    767767#ifdef DEBUG_EDIT 
    768                 (void) fprintf(el->el_errfile, "   ERROR: cannot insert   \n"); 
     768                (void) el->el_err_printf(el, "   ERROR: cannot insert   \n"); 
    769769#endif /* DEBUG_EDIT */ 
    770770                return; 
     
    772772        if (num > el->el_term.t_size.h) { 
    773773#ifdef DEBUG_SCREEN 
    774                 (void) fprintf(el->el_errfile
     774                (void) el->el_err_printf(el
    775775                    "StartInsert: num is riduculous: %d\r\n", num); 
    776776#endif /* DEBUG_SCREEN */ 
     
    925925        if (i <= 0) { 
    926926                if (i == -1) 
    927                         (void) fprintf(el->el_errfile
     927                        (void) el->el_err_printf(el
    928928                            "Cannot read termcap database;\n"); 
    929929                else if (i == 0) 
    930                         (void) fprintf(el->el_errfile
     930                        (void) el->el_err_printf(el
    931931                            "No entry for terminal type \"%s\";\n", term); 
    932                 (void) fprintf(el->el_errfile
     932                (void) el->el_err_printf(el
    933933                    "using dumb terminal settings.\n"); 
    934934                Val(T_co) = 80; /* do a dumb terminal */ 
     
    13531353                                el->el_term.t_val[tv - tval] = 0; 
    13541354                        else { 
    1355                                 (void) fprintf(el->el_errfile
     1355                                (void) el->el_err_printf(el
    13561356                                    "settc: Bad value `%s'.\n", how); 
    13571357                                return (-1); 
     
    13671367                        i = strtol(how, &ep, 10); 
    13681368                        if (*ep != '\0') { 
    1369                                 (void) fprintf(el->el_errfile
     1369                                (void) el->el_err_printf(el
    13701370                                    "settc: Bad value `%s'.\n", how); 
    13711371                                return (-1); 
     
    14731473        if (!scap || scap[0] == '\0') { 
    14741474                if (!silent) 
    1475                         (void) fprintf(el->el_errfile
     1475                        (void) el->el_err_printf(el
    14761476                            "echotc: Termcap parameter `%s' not found.\n", 
    14771477                            *argv); 
     
    15041504                                 */ 
    15051505                                if (verbose) 
    1506                                         (void) fprintf(el->el_errfile
     1506                                        (void) el->el_err_printf(el
    15071507                                "echotc: Warning: unknown termcap %% `%c'.\n", 
    15081508                                            *cap); 
     
    15161516                if (*argv && *argv[0]) { 
    15171517                        if (!silent) 
    1518                                 (void) fprintf(el->el_errfile
     1518                                (void) el->el_err_printf(el
    15191519                                    "echotc: Warning: Extra argument `%s'.\n", 
    15201520                                    *argv); 
     
    15271527                if (!*argv || *argv[0] == '\0') { 
    15281528                        if (!silent) 
    1529                                 (void) fprintf(el->el_errfile
     1529                                (void) el->el_err_printf(el
    15301530                                    "echotc: Warning: Missing argument.\n"); 
    15311531                        return (-1); 
     
    15351535                if (*ep != '\0' || i < 0) { 
    15361536                        if (!silent) 
    1537                                 (void) fprintf(el->el_errfile
     1537                                (void) el->el_err_printf(el
    15381538                                    "echotc: Bad value `%s' for rows.\n", 
    15391539                                    *argv); 
     
    15441544                if (*argv && *argv[0]) { 
    15451545                        if (!silent) 
    1546                                 (void) fprintf(el->el_errfile
     1546                                (void) el->el_err_printf(el
    15471547                                    "echotc: Warning: Extra argument `%s'.\n", 
    15481548                                    *argv); 
     
    15541554                /* This is wrong, but I will ignore it... */ 
    15551555                if (verbose) 
    1556                         (void) fprintf(el->el_errfile
     1556                        (void) el->el_err_printf(el
    15571557                         "echotc: Warning: Too many required arguments (%d).\n", 
    15581558                            arg_need); 
     
    15621562                if (!*argv || *argv[0] == '\0') { 
    15631563                        if (!silent) 
    1564                                 (void) fprintf(el->el_errfile
     1564                                (void) el->el_err_printf(el
    15651565                                    "echotc: Warning: Missing argument.\n"); 
    15661566                        return (-1); 
     
    15691569                if (*ep != '\0' || i < 0) { 
    15701570                        if (!silent) 
    1571                                 (void) fprintf(el->el_errfile
     1571                                (void) el->el_err_printf(el
    15721572                                    "echotc: Bad value `%s' for cols.\n", 
    15731573                                    *argv); 
     
    15781578                if (!*argv || *argv[0] == '\0') { 
    15791579                        if (!silent) 
    1580                                 (void) fprintf(el->el_errfile
     1580                                (void) el->el_err_printf(el
    15811581                                    "echotc: Warning: Missing argument.\n"); 
    15821582                        return (-1); 
     
    15851585                if (*ep != '\0' || i < 0) { 
    15861586                        if (!silent) 
    1587                                 (void) fprintf(el->el_errfile
     1587                                (void) el->el_err_printf(el
    15881588                                    "echotc: Bad value `%s' for rows.\n", 
    15891589                                    *argv); 
     
    15931593                if (*ep != '\0') { 
    15941594                        if (!silent) 
    1595                                 (void) fprintf(el->el_errfile
     1595                                (void) el->el_err_printf(el
    15961596                                    "echotc: Bad value `%s'.\n", *argv); 
    15971597                        return (-1); 
     
    16001600                if (*argv && *argv[0]) { 
    16011601                        if (!silent) 
    1602                                 (void) fprintf(el->el_errfile
     1602                                (void) el->el_err_printf(el
    16031603                                    "echotc: Warning: Extra argument `%s'.\n", 
    16041604                                    *argv); 
  • src/noitedit/tty.c

    r5b6ccbe rc55a8e6  
    478478        if (tty_getty(el, &el->el_tty.t_ed) == -1) { 
    479479#ifdef DEBUG_TTY 
    480                 (void) fprintf(el->el_errfile
     480                (void) el->el_err_printf(el
    481481                    "tty_setup: tty_getty: %s\n", strerror(errno)); 
    482482#endif /* DEBUG_TTY */ 
     
    527527                if (tty_setty(el, &el->el_tty.t_ex) == -1) { 
    528528#ifdef DEBUG_TTY 
    529                         (void) fprintf(el->el_errfile
     529                        (void) el->el_err_printf(el
    530530                            "tty_setup: tty_setty: %s\n", 
    531531                            strerror(errno)); 
     
    815815        if (tty_getty(el, &el->el_tty.t_ts) == -1) { 
    816816#ifdef DEBUG_TTY 
    817                 (void) fprintf(el->el_errfile, "tty_rawmode: tty_getty: %s\n", 
     817                (void) el->el_err_printf(el, "tty_rawmode: tty_getty: %s\n", 
    818818                    strerror(errno)); 
    819819#endif /* DEBUG_TTY */ 
     
    945945        if (tty_setty(el, &el->el_tty.t_ed) == -1) { 
    946946#ifdef DEBUG_TTY 
    947                 (void) fprintf(el->el_errfile, "tty_rawmode: tty_setty: %s\n", 
     947                (void) el->el_err_printf(el, "tty_rawmode: tty_setty: %s\n", 
    948948                    strerror(errno)); 
    949949#endif /* DEBUG_TTY */ 
     
    970970        if (tty_setty(el, &el->el_tty.t_ex) == -1) { 
    971971#ifdef DEBUG_TTY 
    972                 (void) fprintf(el->el_errfile
     972                (void) el->el_err_printf(el
    973973                    "tty_cookedmode: tty_setty: %s\n", 
    974974                    strerror(errno)); 
     
    10061006        if (tty_setty(el, &el->el_tty.t_qu) == -1) { 
    10071007#ifdef DEBUG_TTY 
    1008                 (void) fprintf(el->el_errfile, "QuoteModeOn: tty_setty: %s\n", 
     1008                (void) el_err_printf(el, "QuoteModeOn: tty_setty: %s\n", 
    10091009                    strerror(errno)); 
    10101010#endif /* DEBUG_TTY */ 
     
    10271027        if (tty_setty(el, &el->el_tty.t_ed) == -1) { 
    10281028#ifdef DEBUG_TTY 
    1029                 (void) fprintf(el->el_errfile, "QuoteModeOff: tty_setty: %s\n", 
     1029                (void) el->el_err_printf(el, "QuoteModeOff: tty_setty: %s\n", 
    10301030                    strerror(errno)); 
    10311031#endif /* DEBUG_TTY */ 
     
    10741074                        break; 
    10751075                default: 
    1076                         (void) fprintf(el->el_errfile
     1076                        (void) el->el_err_printf(el
    10771077                            "%s: Unknown switch `%c'.\n", 
    10781078                            name, argv[0][1]); 
     
    11351135 
    11361136                if (!m->m_name) { 
    1137                         (void) fprintf(el->el_errfile
     1137                        (void) el->el_err_printf(el
    11381138                            "%s: Invalid argument `%s'.\n", name, d); 
    11391139                        return (-1); 
     
    11731173                                break; 
    11741174                if (m->m_name) 
    1175                         (void) fprintf(el->el_errfile, "%s ^%c ", 
     1175                        (void) el->el_err_printf(el, "%s ^%c ", 
    11761176                            m->m_name, s[i] + 'A' - 1); 
    11771177                if (i % 5 == 0) 
    1178                         (void) fprintf(el->el_errfile, "\n"); 
    1179         } 
    1180         (void) fprintf(el->el_errfile, "\n"); 
     1178                        (void) el->el_err_printf(el, "\n"); 
     1179        } 
     1180        (void) el->el_err_printf(el, "\n"); 
    11811181} 
    11821182#endif /* notyet */