Changeset e06b23eaa47ce975bd25ec9124c72ab282f7ae97
- Timestamp:
- 02/22/08 02:41:07
(5 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
| rb7ec807 |
re06b23e |
|
| 281 | 281 | ncct->hist = history_init(); |
|---|
| 282 | 282 | 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); |
|---|
| 284 | 285 | el_set(ncct->el, EL_USERDATA, ncct); |
|---|
| 285 | 286 | el_set(ncct->el, EL_EDITOR, "emacs"); |
|---|
| r2c4eb5b |
re06b23e |
|
| 84 | 84 | */ |
|---|
| 85 | 85 | public EditLine * |
|---|
| 86 | | el_init(const char *prog, int infd, int outfd, int errfd) |
|---|
| | 86 | el_init(const char *prog, int infd, eventer_t in_e, |
|---|
| | 87 | int outfd, eventer_t out_e, int errfd, eventer_t err_e) |
|---|
| 87 | 88 | { |
|---|
| 88 | 89 | |
|---|
| … | … | |
| 98 | 99 | |
|---|
| 99 | 100 | el->el_infd = infd; |
|---|
| | 101 | el->el_in_e = in_e; |
|---|
| 100 | 102 | el->el_outfd = outfd; |
|---|
| | 103 | el->el_out_e = out_e; |
|---|
| 101 | 104 | el->el_errfd = errfd; |
|---|
| | 105 | el->el_err_e = err_e; |
|---|
| 102 | 106 | el->el_err_printf = el_err_printf; |
|---|
| 103 | 107 | el->el_std_printf = el_std_printf; |
|---|
| … | … | |
| 577 | 581 | el_err_vprintf(EditLine *el, const char *fmt, va_list arg) |
|---|
| 578 | 582 | { |
|---|
| 579 | | int len; |
|---|
| | 583 | int len, mask; |
|---|
| 580 | 584 | char buffer[1024]; |
|---|
| 581 | 585 | len = vsnprintf(buffer, sizeof(buffer), fmt, arg); |
|---|
| 582 | 586 | 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); |
|---|
| 585 | 594 | } |
|---|
| 586 | 595 | |
|---|
| … | … | |
| 599 | 608 | el_std_vprintf(EditLine *el, const char *fmt, va_list arg) |
|---|
| 600 | 609 | { |
|---|
| 601 | | int len; |
|---|
| | 610 | int len, mask; |
|---|
| 602 | 611 | char buffer[1024]; |
|---|
| 603 | 612 | len = vsnprintf(buffer, sizeof(buffer), fmt, arg); |
|---|
| 604 | 613 | 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); |
|---|
| 607 | 621 | } |
|---|
| 608 | 622 | |
|---|
| … | … | |
| 621 | 635 | el_std_putc(int i, EditLine *el) |
|---|
| 622 | 636 | { |
|---|
| | 637 | int mask; |
|---|
| 623 | 638 | 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); |
|---|
| 624 | 645 | return write(el->el_outfd, &c, 1); |
|---|
| 625 | 646 | } |
|---|
| r2c4eb5b |
re06b23e |
|
| 52 | 52 | |
|---|
| 53 | 53 | #include "noit_defines.h" |
|---|
| | 54 | #include "eventer/eventer.h" |
|---|
| 54 | 55 | #include <stdio.h> |
|---|
| 55 | 56 | #ifdef HAVE_SYS_TYPES_H |
|---|
| … | … | |
| 126 | 127 | char *el_prog; /* the program name */ |
|---|
| 127 | 128 | int el_outfd; /* Output file descriptor */ |
|---|
| | 129 | eventer_t el_out_e; |
|---|
| 128 | 130 | int el_errfd; /* Error file descriptor */ |
|---|
| | 131 | eventer_t el_err_e; |
|---|
| 129 | 132 | int el_infd; /* Input file descriptor */ |
|---|
| | 133 | eventer_t el_in_e; |
|---|
| 130 | 134 | int el_flags; /* Various flags. */ |
|---|
| 131 | 135 | coord_t el_cursor; /* Cursor location */ |
|---|
| r11d2dcb |
re06b23e |
|
| 45 | 45 | #define _HISTEDIT_H_ |
|---|
| 46 | 46 | |
|---|
| | 47 | #include "noit_defines.h" |
|---|
| | 48 | #include "eventer/eventer.h" |
|---|
| 47 | 49 | #include <sys/types.h> |
|---|
| 48 | 50 | #include <stdio.h> |
|---|
| … | … | |
| 88 | 90 | * Initialization, cleanup, and resetting |
|---|
| 89 | 91 | */ |
|---|
| 90 | | EditLine *el_init(const char *, int, int, int); |
|---|
| | 92 | EditLine *el_init(const char *, int, eventer_t, |
|---|
| | 93 | int, eventer_t, int, eventer_t); |
|---|
| 91 | 94 | void el_reset(EditLine *); |
|---|
| 92 | 95 | void el_end(EditLine *); |
|---|
| r2c4eb5b |
re06b23e |
|
| 172 | 172 | if (chrs > 0) { |
|---|
| 173 | 173 | 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)); |
|---|
| 177 | 186 | if (chrs > 0) { |
|---|
| 178 | 187 | buf[chrs] = '\0'; |
|---|
| … | … | |
| 281 | 290 | |
|---|
| 282 | 291 | 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); |
|---|
| 288 | 301 | |
|---|
| 289 | 302 | if (num_read) |
|---|
| r2c4eb5b |
re06b23e |
|
| 208 | 208 | |
|---|
| 209 | 209 | 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); |
|---|
| 211 | 213 | |
|---|
| 212 | 214 | if (!editmode) |
|---|