Changeset e06b23eaa47ce975bd25ec9124c72ab282f7ae97

Show
Ignore:
Timestamp:
02/22/08 02:41:07 (7 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1203648067 +0000
git-parent:

[76832e460b4b7e306f119ff47901dbd5e5433aa4]

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

Get ssl working. libedit was writing directly instead of using the opset. Change API and fixup libedit to support events.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/noit_console.c

    rb7ec807 re06b23e  
    281281      ncct->hist = history_init(); 
    282282      history(ncct->hist, &ev, H_SETSIZE, 500); 
    283       ncct->el = el_init("noitd", ncct->pty_master, e->fd, e->fd); 
     283      ncct->el = el_init("noitd", ncct->pty_master, NULL, 
     284                         e->fd, e, e->fd, e); 
    284285      el_set(ncct->el, EL_USERDATA, ncct); 
    285286      el_set(ncct->el, EL_EDITOR, "emacs"); 
  • src/noitedit/el.c

    r2c4eb5b re06b23e  
    8484 */ 
    8585public EditLine * 
    86 el_init(const char *prog, int infd, int outfd, int errfd) 
     86el_init(const char *prog, int infd, eventer_t in_e, 
     87        int outfd, eventer_t out_e, int errfd, eventer_t err_e) 
    8788{ 
    8889 
     
    9899 
    99100        el->el_infd = infd; 
     101        el->el_in_e = in_e; 
    100102        el->el_outfd = outfd; 
     103        el->el_out_e = out_e; 
    101104        el->el_errfd = errfd; 
     105        el->el_err_e = err_e; 
    102106        el->el_err_printf = el_err_printf; 
    103107        el->el_std_printf = el_std_printf; 
     
    577581el_err_vprintf(EditLine *el, const char *fmt, va_list arg) 
    578582{ 
    579         int len
     583        int len, mask
    580584        char buffer[1024]; 
    581585        len = vsnprintf(buffer, sizeof(buffer), fmt, arg); 
    582586        if(len > sizeof(buffer)) len = sizeof(buffer); 
    583         len = write(el->el_errfd, buffer, len); 
    584         return len; 
     587        if(el->el_err_e) 
     588                return el-> 
     589                        el_err_e-> 
     590                        opset-> 
     591                        write(el->el_err_e->fd, buffer, len, 
     592                                &mask, el->el_err_e); 
     593        return write(el->el_errfd, buffer, len); 
    585594} 
    586595 
     
    599608el_std_vprintf(EditLine *el, const char *fmt, va_list arg) 
    600609{ 
    601         int len
     610        int len, mask
    602611        char buffer[1024]; 
    603612        len = vsnprintf(buffer, sizeof(buffer), fmt, arg); 
    604613        if(len > sizeof(buffer)) len = sizeof(buffer); 
    605         len = write(el->el_outfd, buffer, len); 
    606         return len; 
     614        if(el->el_out_e) 
     615                return el-> 
     616                        el_out_e-> 
     617                        opset-> 
     618                        write(el->el_out_e->fd, buffer, 
     619                                len, &mask, el->el_out_e); 
     620        return write(el->el_outfd, buffer, len); 
    607621} 
    608622 
     
    621635el_std_putc(int i, EditLine *el) 
    622636{ 
     637        int mask; 
    623638        unsigned char c = i & 0xff; 
     639        if(el->el_out_e) 
     640                return el-> 
     641                        el_out_e-> 
     642                        opset-> 
     643                        write(el->el_out_e->fd, &c, 
     644                                1, &mask, el->el_out_e); 
    624645        return write(el->el_outfd, &c, 1); 
    625646} 
  • src/noitedit/el.h

    r2c4eb5b re06b23e  
    5252 
    5353#include "noit_defines.h" 
     54#include "eventer/eventer.h" 
    5455#include <stdio.h> 
    5556#ifdef HAVE_SYS_TYPES_H 
     
    126127        char             *el_prog;      /* the program name             */ 
    127128        int               el_outfd;     /* Output file descriptor       */ 
     129        eventer_t         el_out_e; 
    128130        int               el_errfd;     /* Error file descriptor        */ 
     131        eventer_t         el_err_e; 
    129132        int               el_infd;      /* Input file descriptor        */ 
     133        eventer_t         el_in_e; 
    130134        int               el_flags;     /* Various flags.               */ 
    131135        coord_t           el_cursor;    /* Cursor location              */ 
  • src/noitedit/histedit.h

    r11d2dcb re06b23e  
    4545#define _HISTEDIT_H_ 
    4646 
     47#include "noit_defines.h" 
     48#include "eventer/eventer.h" 
    4749#include <sys/types.h> 
    4850#include <stdio.h> 
     
    8890 * Initialization, cleanup, and resetting 
    8991 */ 
    90 EditLine        *el_init(const char *, int, int, int); 
     92EditLine        *el_init(const char *, int, eventer_t, 
     93                         int, eventer_t, int, eventer_t); 
    9194void             el_reset(EditLine *); 
    9295void             el_end(EditLine *); 
  • src/noitedit/read.c

    r2c4eb5b re06b23e  
    172172        if (chrs > 0) { 
    173173                char buf[EL_BUFSIZ]; 
    174  
    175                 chrs = read(el->el_infd, buf, 
    176                     (size_t) MIN(chrs, EL_BUFSIZ - 1)); 
     174                int mask; 
     175 
     176                if(el->el_in_e) 
     177                        chrs = el-> 
     178                                el_in_e-> 
     179                                opset-> 
     180                                read(el->el_in_e, buf, 
     181                                    (size_t) MIN(chrs, EL_BUFSIZ - 1), 
     182                                    &mask, el->el_in_e); 
     183                else 
     184                        chrs = read(el->el_infd, buf, 
     185                            (size_t) MIN(chrs, EL_BUFSIZ - 1)); 
    177186                if (chrs > 0) { 
    178187                        buf[chrs] = '\0'; 
     
    281290 
    282291        do { 
    283 #if _WIN32 
    284                 num_read = win32_read_console_char(cp); 
    285 #else 
    286                 num_read = read(el->el_infd, cp, 1); 
    287 #endif 
     292                int mask; 
     293                if(el->el_in_e) 
     294                        num_read = el-> 
     295                                el_in_e-> 
     296                                opset-> 
     297                                read(el->el_in_e->fd, cp, 1, 
     298                                    &mask, el->el_in_e); 
     299                else 
     300                        num_read = read(el->el_infd, cp, 1); 
    288301 
    289302                if (num_read) 
  • src/noitedit/readline.c

    r2c4eb5b re06b23e  
    208208 
    209209        e = el_init(rl_readline_name, 
    210                     fileno(rl_instream), fileno(rl_outstream), fileno(stderr)); 
     210                    fileno(rl_instream), NULL, 
     211                    fileno(rl_outstream), NULL, 
     212                    fileno(stderr), NULL); 
    211213 
    212214        if (!editmode)