4 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
10 * $Id: sympathy.h.head.in,v 1.4 2010/07/16 11:06:39 james Exp $
14 * $Log: sympathy.h.head.in,v $
15 * Revision 1.4 2010/07/16 11:06:39 james
18 * Revision 1.3 2008/03/07 14:13:40 james
19 * *** empty log message ***
21 * Revision 1.2 2008/02/13 18:05:06 james
22 * *** empty log message ***
24 * Revision 1.1 2008/02/13 16:57:29 james
25 * *** empty log message ***
27 * Revision 1.1 2008/02/03 16:20:24 james
28 * *** empty log message ***
33 /* MAKE ABSOLUTELY SURE THAT YOU ARE EDITING THE sympathy.h.in */
34 /* FILE FROM WHICH THIS IS GENERATED - OTHERWISE YOUR EDITS */
37 #ifndef __SYMPATHY_H__
38 #define __SYMPATHY_H__
47 /* the integer constants here are set by configure */
49 /* get uint32_t and friends defined */
53 #include <sys/int_types.h>
59 /* If the following is <> then configure failed to find where */
60 /* struct tm was defined - report it as a bug */
62 /* get struct tm defined */
89 #include <sys/int_types.h>
99 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
100 * All rights reserved.
105 * $Id: crt.h,v 1.18 2008/03/10 11:49:33 james Exp $
110 * Revision 1.18 2008/03/10 11:49:33 james
111 * *** empty log message ***
113 * Revision 1.17 2008/03/07 12:37:04 james
114 * *** empty log message ***
116 * Revision 1.16 2008/03/03 06:04:42 james
117 * *** empty log message ***
119 * Revision 1.15 2008/03/02 10:37:56 james
120 * *** empty log message ***
122 * Revision 1.14 2008/02/28 16:57:51 james
123 * *** empty log message ***
125 * Revision 1.13 2008/02/27 09:42:22 james
126 * *** empty log message ***
128 * Revision 1.12 2008/02/26 23:23:17 james
129 * *** empty log message ***
131 * Revision 1.11 2008/02/26 19:08:27 james
132 * *** empty log message ***
134 * Revision 1.10 2008/02/24 00:42:53 james
135 * *** empty log message ***
137 * Revision 1.9 2008/02/20 19:25:09 james
138 * *** empty log message ***
140 * Revision 1.8 2008/02/13 09:12:21 james
141 * *** empty log message ***
143 * Revision 1.7 2008/02/13 01:08:18 james
144 * *** empty log message ***
146 * Revision 1.6 2008/02/07 13:22:51 james
147 * *** empty log message ***
149 * Revision 1.5 2008/02/07 12:41:06 james
150 * *** empty log message ***
152 * Revision 1.4 2008/02/07 12:16:04 james
153 * *** empty log message ***
155 * Revision 1.3 2008/02/06 11:30:37 james
156 * *** empty log message ***
158 * Revision 1.2 2008/02/04 20:23:55 james
159 * *** empty log message ***
161 * Revision 1.1 2008/02/03 23:31:25 james
162 * *** empty log message ***
172 #define CRT_CELS (CRT_ROWS*CRT_COLS)
173 #define CRT_ADDR(r,c) (((r)*CRT_COLS)+(c))
174 #define CRT_ADDR_POS(p) ((((p)->y)*CRT_COLS)+((p)->x))
176 #define CRT_ATTR_NORMAL 0x0
177 #define CRT_ATTR_UNDERLINE 0x1
178 #define CRT_ATTR_REVERSE 0x2
179 #define CRT_ATTR_BLINK 0x4
180 #define CRT_ATTR_BOLD 0x8
183 #define CRT_COLOR_BLACK 0x0
184 #define CRT_COLOR_RED 0x1
185 #define CRT_COLOR_GREEN 0x2
186 #define CRT_COLOR_YELLOW 0x3
187 #define CRT_COLOR_BLUE 0x4
188 #define CRT_COLOR_MAGENTA 0x5
189 #define CRT_COLOR_CYAN 0x6
190 #define CRT_COLOR_WHITE 0x7
191 #define CRT_COLOR_INTENSITY 0x8
193 #define CRT_COLOR_FG_MASK 0xf0
194 #define CRT_COLOR_FG_SHIFT 4
196 #define CRT_COLOR_BG_MASK 0xf
197 #define CRT_COLOR_BG_SHIFT 0
199 #define CRT_COLOR_BG(a) (((a) & CRT_COLOR_BG_MASK) >> CRT_COLOR_BG_SHIFT)
200 #define CRT_COLOR_FG(a) (((a) & CRT_COLOR_FG_MASK) >> CRT_COLOR_FG_SHIFT)
202 #define CRT_MAKE_COLOR(f,b) (((f) << CRT_COLOR_FG_SHIFT)|(b))
204 #define CRT_BGCOLOR_NORMAL CRT_COLOR_BLACK
205 #define CRT_FGCOLOR_NORMAL CRT_COLOR_WHITE
207 #define CRT_COLOR_NORMAL CRT_MAKE_COLOR(CRT_FGCOLOR_NORMAL,CRT_BGCOLOR_NORMAL)
209 typedef struct __attribute__ ((packed)) {
227 typedef struct CRT_struct {
228 CRT_CA screen[CRT_CELS];
236 crt_ca_cmp (CRT_CA a, CRT_CA b)
238 return memcmp (&a, &b, sizeof (a));
242 crt_pos_cmp (CRT_Pos a, CRT_Pos b)
244 return memcmp (&a, &b, sizeof (a));
247 #endif /* __CRT_H__ */
251 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
252 * All rights reserved.
257 * $Id: utf8.h,v 1.8 2008/03/10 11:49:33 james Exp $
262 * Revision 1.8 2008/03/10 11:49:33 james
263 * *** empty log message ***
265 * Revision 1.7 2008/03/07 12:37:04 james
266 * *** empty log message ***
268 * Revision 1.6 2008/03/03 06:04:42 james
269 * *** empty log message ***
271 * Revision 1.5 2008/03/02 10:37:56 james
272 * *** empty log message ***
274 * Revision 1.4 2008/02/24 00:42:53 james
275 * *** empty log message ***
277 * Revision 1.3 2008/02/23 11:48:37 james
278 * *** empty log message ***
280 * Revision 1.2 2008/02/22 23:39:27 james
281 * *** empty log message ***
283 * Revision 1.1 2008/02/22 19:12:05 james
284 * *** empty log message ***
303 #endif /* __UTF8_H__ */
307 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
308 * All rights reserved.
313 * $Id: tty.h,v 1.16 2008/03/10 11:49:33 james Exp $
318 * Revision 1.16 2008/03/10 11:49:33 james
319 * *** empty log message ***
321 * Revision 1.15 2008/03/07 12:37:04 james
322 * *** empty log message ***
324 * Revision 1.14 2008/03/03 06:04:42 james
325 * *** empty log message ***
327 * Revision 1.13 2008/03/02 10:37:56 james
328 * *** empty log message ***
330 * Revision 1.12 2008/02/28 16:57:52 james
331 * *** empty log message ***
333 * Revision 1.11 2008/02/23 11:48:37 james
334 * *** empty log message ***
336 * Revision 1.10 2008/02/22 23:39:27 james
337 * *** empty log message ***
339 * Revision 1.9 2008/02/22 19:12:05 james
340 * *** empty log message ***
342 * Revision 1.8 2008/02/15 23:52:12 james
343 * *** empty log message ***
345 * Revision 1.7 2008/02/14 10:36:18 james
346 * *** empty log message ***
348 * Revision 1.6 2008/02/14 10:34:30 james
349 * *** empty log message ***
351 * Revision 1.5 2008/02/13 09:12:21 james
352 * *** empty log message ***
354 * Revision 1.4 2008/02/13 01:08:18 james
355 * *** empty log message ***
357 * Revision 1.3 2008/02/09 15:47:28 james
358 * *** empty log message ***
360 * Revision 1.2 2008/02/07 00:43:27 james
361 * *** empty log message ***
363 * Revision 1.1 2008/02/06 20:26:58 james
364 * *** empty log message ***
372 #define SYM_CHAR_RESET (-1)
374 #define TTY_SIGNATURE \
378 void (*close)(struct TTY_struct *); \
379 int (*recv)(struct TTY_struct *,void *buf,int len); \
380 int (*xmit)(struct TTY_struct *,void *buf,int len); \
384 struct timeval hangup_clock; \
385 int displayed_length;
388 #define TTY_BITFREQ_LEN 10
394 int bitfreq[TTY_BITFREQ_LEN];
397 struct timeval lasterr;
402 typedef struct TTY_struct {
409 struct termios termios;
413 #endif /* __TTY_H__ */
417 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
418 * All rights reserved.
423 * $Id: ansi.h,v 1.20 2008/03/10 11:49:32 james Exp $
428 * Revision 1.20 2008/03/10 11:49:32 james
429 * *** empty log message ***
431 * Revision 1.19 2008/03/07 12:37:04 james
432 * *** empty log message ***
434 * Revision 1.18 2008/03/06 21:34:09 james
435 * *** empty log message ***
437 * Revision 1.17 2008/03/06 21:33:02 james
438 * *** empty log message ***
440 * Revision 1.16 2008/03/06 16:49:05 james
441 * *** empty log message ***
443 * Revision 1.15 2008/03/03 06:04:42 james
444 * *** empty log message ***
446 * Revision 1.14 2008/03/02 10:37:56 james
447 * *** empty log message ***
449 * Revision 1.13 2008/02/24 00:42:53 james
450 * *** empty log message ***
452 * Revision 1.12 2008/02/23 11:48:37 james
453 * *** empty log message ***
455 * Revision 1.11 2008/02/20 20:16:07 james
456 * *** empty log message ***
458 * Revision 1.10 2008/02/20 19:44:37 james
461 * Revision 1.9 2008/02/20 19:36:06 james
464 * Revision 1.8 2008/02/20 19:25:09 james
465 * *** empty log message ***
467 * Revision 1.7 2008/02/13 16:57:29 james
468 * *** empty log message ***
470 * Revision 1.6 2008/02/13 01:08:18 james
471 * *** empty log message ***
473 * Revision 1.5 2008/02/07 12:16:04 james
474 * *** empty log message ***
476 * Revision 1.4 2008/02/07 00:43:27 james
477 * *** empty log message ***
479 * Revision 1.3 2008/02/07 00:39:13 james
480 * *** empty log message ***
482 * Revision 1.2 2008/02/06 11:30:37 james
483 * *** empty log message ***
485 * Revision 1.1 2008/02/03 23:31:25 james
486 * *** empty log message ***
493 #define ANSI_INVAL -1
495 #define ANSI_ESCAPE_BUF_LEN 10
496 #define ANSI_ESCAPE_TIMEOUT 100000 /* in ms */
500 struct timeval last_escape;
501 char escape_buf[ANSI_ESCAPE_BUF_LEN];
506 struct Context_struct;
508 typedef struct ANSI_struct {
527 int (*dispatch) (struct ANSI_struct *, struct Context_struct *);
528 int (*update) (struct ANSI_struct *, struct Context_struct *);
529 int (*one_shot) (struct ANSI_struct *, struct CRT_struct *);
530 int (*reset) (struct ANSI_struct *, struct CRT_struct *);
531 int (*set_title) (struct ANSI_struct *, char *);
532 void (*terminal_reset) (struct ANSI_struct *);
533 void (*close) (struct ANSI_struct *);
537 #endif /* __ANSI_H__ */
541 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
542 * All rights reserved.
547 * $Id: vt102.h,v 1.25 2008/03/10 11:49:33 james Exp $
552 * Revision 1.25 2008/03/10 11:49:33 james
553 * *** empty log message ***
555 * Revision 1.24 2008/03/07 12:37:04 james
556 * *** empty log message ***
558 * Revision 1.23 2008/03/03 06:04:42 james
559 * *** empty log message ***
561 * Revision 1.22 2008/03/02 10:37:56 james
562 * *** empty log message ***
564 * Revision 1.21 2008/02/28 16:57:52 james
565 * *** empty log message ***
567 * Revision 1.20 2008/02/27 09:42:22 james
568 * *** empty log message ***
570 * Revision 1.19 2008/02/26 23:23:17 james
571 * *** empty log message ***
573 * Revision 1.18 2008/02/26 19:08:27 james
574 * *** empty log message ***
576 * Revision 1.17 2008/02/26 16:53:24 james
577 * *** empty log message ***
579 * Revision 1.16 2008/02/24 12:22:42 james
580 * *** empty log message ***
582 * Revision 1.15 2008/02/24 00:42:53 james
583 * *** empty log message ***
585 * Revision 1.14 2008/02/23 11:48:37 james
586 * *** empty log message ***
588 * Revision 1.13 2008/02/22 17:07:00 james
589 * *** empty log message ***
591 * Revision 1.12 2008/02/22 14:51:54 james
592 * *** empty log message ***
594 * Revision 1.11 2008/02/08 15:06:42 james
595 * *** empty log message ***
597 * Revision 1.10 2008/02/07 12:16:04 james
598 * *** empty log message ***
600 * Revision 1.9 2008/02/07 01:57:46 james
601 * *** empty log message ***
603 * Revision 1.8 2008/02/07 00:39:13 james
604 * *** empty log message ***
606 * Revision 1.7 2008/02/06 20:26:58 james
607 * *** empty log message ***
609 * Revision 1.6 2008/02/06 17:53:28 james
610 * *** empty log message ***
612 * Revision 1.5 2008/02/06 15:53:22 james
613 * *** empty log message ***
615 * Revision 1.4 2008/02/06 11:30:37 james
616 * *** empty log message ***
618 * Revision 1.3 2008/02/04 20:23:55 james
619 * *** empty log message ***
621 * Revision 1.2 2008/02/04 02:05:06 james
622 * *** empty log message ***
624 * Revision 1.1 2008/02/03 23:36:41 james
625 * *** empty log message ***
632 #define VT102_CMD_LEN 128
634 #define VT102_MAX_ROWS ((CRT_ROWS) - 1)
635 #define VT102_ROWS_24 24
636 #define VT102_COLS_132 132
637 #define VT102_COLS_80 80
638 #define VT102_MAX_COLS VT102_COLS_132
639 #define VT102_STATUS_ROW 24
641 #define VT102_NMODES 32
651 char cmd_buf[VT102_CMD_LEN];
663 CRT_Pos top_margin, bottom_margin;
664 CRT_Pos screen_start, screen_end;
671 CRT_Pos pos, current_line;
675 uint8_t modes[VT102_NMODES];
676 uint8_t private_modes[VT102_NMODES];
678 uint8_t tabs[VT102_COLS_132];
680 int application_keypad_mode;
685 CRT_Pos current_size;
686 CRT_Pos original_size;
693 #define VT102_PRIVATE_MODE_CURSOR_MODE 1
694 #define VT102_PRIVATE_MODE_VT52 2
695 #define VT102_PRIVATE_MODE_132COLS 3
696 #define VT102_PRIVATE_MODE_SMOOTH_SCROLL 4
697 #define VT102_PRIVATE_MODE_REVERSE_SCREEN 5
698 #define VT102_PRIVATE_MODE_ORIGIN_MODE 6
699 #define VT102_PRIVATE_MODE_AUTO_WRAP 7
700 #define VT102_PRIVATE_MODE_AUTO_REPEAT 8
701 #define VT102_PRIVATE_MODE_SHOW_CURSOR 25
703 #define VT102_MODE_KEYBOARD_DISABLE 2
704 #define VT102_MODE_INSERT 4
705 #define VT102_MODE_LOCAL_ECHO_OFF 12
706 #define VT102_MODE_NEWLINE_MODE 20
708 #endif /* __VT102_H__ */
712 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
713 * All rights reserved.
718 * $Id: keys.h,v 1.10 2008/03/07 14:16:44 james Exp $
723 * Revision 1.10 2008/03/07 14:16:44 james
724 * *** empty log message ***
726 * Revision 1.9 2008/03/07 14:13:40 james
727 * *** empty log message ***
729 * Revision 1.8 2008/03/07 12:37:04 james
730 * *** empty log message ***
732 * Revision 1.7 2008/03/06 16:49:39 james
733 * *** empty log message ***
735 * Revision 1.6 2008/03/06 01:49:19 james
736 * *** empty log message ***
738 * Revision 1.5 2008 /03 /06 01:41:48 james
739 * *** empty log message ***
741 * Revision 1.4 2008 /02 /07 00:44:07 james
742 * *** empty log message ***
749 #define KEY_UP 128 /* A */
750 #define KEY_DOWN 129 /* B */
751 #define KEY_RIGHT 130 /* C */
752 #define KEY_LEFT 131 /* D */
753 #define KEY_MIDDLE 132 /* E */
754 #define KEY_END 133 /* F */
755 #define KEY_134 134 /* G */
756 #define KEY_HOME 135 /* H */
757 #define KEY_136 136 /* I */
758 #define KEY_137 137 /* J */
759 #define KEY_138 138 /* K */
760 #define KEY_139 139 /* L */
761 #define KEY_ENTER 140 /* M */
762 #define KEY_141 141 /* N */
763 #define KEY_142 142 /* O */
764 #define KEY_PF1 143 /* P */ /* Also F1 */
765 #define KEY_PF2 144 /* Q */ /* Also F2 */
766 #define KEY_PF3 145 /* R */ /* Also F3 */
767 #define KEY_PF4 146 /* S */ /* Also F4 */
768 #define KEY_147 147 /* T */
769 #define KEY_148 148 /* U */
770 #define KEY_149 149 /* V */
771 #define KEY_150 150 /* W */
772 #define KEY_151 151 /* X */
773 #define KEY_152 152 /* Y */
774 #define KEY_153 153 /* Z */
775 #define KEY_154 154 /* a */
776 #define KEY_155 155 /* b */
777 #define KEY_156 156 /* c */
778 #define KEY_157 157 /* d */
779 #define KEY_158 158 /* e */
780 #define KEY_159 159 /* f */
781 #define KEY_160 160 /* g */
782 #define KEY_161 161 /* h */
783 #define KEY_162 162 /* i */
784 #define KEY_STAR 163 /* j */
785 #define KEY_PLUS 164 /* k */
786 #define KEY_COMMA 165 /* l */
787 #define KEY_MINUS 166 /* m */
788 #define KEY_PERIOD 167 /* n */
789 #define KEY_DIVIDE 168 /* o */
790 #define KEY_0 169 /* p */
791 #define KEY_1 170 /* q */
792 #define KEY_2 171 /* r */
793 #define KEY_3 172 /* s */
794 #define KEY_4 173 /* t */
795 #define KEY_5 174 /* u */
796 #define KEY_6 175 /* v */
797 #define KEY_7 176 /* w */
798 #define KEY_8 177 /* x */
799 #define KEY_9 178 /* y */
800 #define KEY_179 179 /* z */
801 #define KEY_180 180 /* 0 */
802 #define KEY_VT220_HOME 181 /* 1 */
803 #define KEY_INSERT 182 /* 2 */
804 #define KEY_DELETE 183 /* 3 */
805 #define KEY_VT220_END 184 /* 4 */
806 #define KEY_PGUP 185 /* 5 */
807 #define KEY_PGDN 186 /* 6 */
808 #define KEY_187 187 /* 7 */
809 #define KEY_188 188 /* 8 */
810 #define KEY_189 189 /* 9 */
811 #define KEY_190 190 /* 10 */
812 #define KEY_F1 191 /* 11 */
813 #define KEY_F2 192 /* 12 */
814 #define KEY_F3 193 /* 13 */
815 #define KEY_F4 194 /* 14 */
816 #define KEY_F5 195 /* 15 */
817 #define KEY_196 196 /* 16 */
818 #define KEY_F6 197 /* 17 */
819 #define KEY_F7 198 /* 18 */
820 #define KEY_F8 199 /* 19 */
821 #define KEY_F9 200 /* 20 */
822 #define KEY_F10 201 /* 21 */
823 #define KEY_202 202 /* 22 */
824 #define KEY_F11 203 /* 23 */
825 #define KEY_F12 204 /* 24 */
826 #define KEY_F13 205 /* 25 */
827 #define KEY_F14 206 /* 26 */
828 #define KEY_207 207 /* 27 */
829 #define KEY_F15 208 /* 28 */
830 #define KEY_F16 209 /* 29 */
831 #define KEY_210 210 /* 30 */
832 #define KEY_F17 211 /* 31 */
833 #define KEY_F18 212 /* 32 */
834 #define KEY_F19 213 /* 33 */
835 #define KEY_F20 214 /* 34 */
837 #endif /* __KEYS_H__ */
841 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
842 * All rights reserved.
847 * $Id: history.h,v 1.7 2008/03/10 11:49:33 james Exp $
851 * $Log: history.h,v $
852 * Revision 1.7 2008/03/10 11:49:33 james
853 * *** empty log message ***
855 * Revision 1.6 2008/03/07 12:37:04 james
856 * *** empty log message ***
858 * Revision 1.5 2008/03/03 06:04:42 james
859 * *** empty log message ***
861 * Revision 1.4 2008/03/02 10:37:56 james
862 * *** empty log message ***
864 * Revision 1.3 2008/02/13 16:57:29 james
865 * *** empty log message ***
867 * Revision 1.2 2008/02/12 22:36:46 james
868 * *** empty log message ***
870 * Revision 1.1 2008/02/08 15:06:42 james
871 * *** empty log message ***
875 #ifndef __HISTORY_H__
876 #define __HISTORY_H__
881 CRT_CA line[CRT_COLS];
890 #define HISTORY_INC(h,a) do { (a)++; if ((a)==((h)->nlines)) { (a)=0; }; } while (0)
892 #endif /* __HISTORY_H__ */
896 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
897 * All rights reserved.
902 * $Id: ring.h,v 1.6 2008/03/10 11:49:33 james Exp $
907 * Revision 1.6 2008/03/10 11:49:33 james
908 * *** empty log message ***
910 * Revision 1.5 2008/03/07 12:37:04 james
911 * *** empty log message ***
913 * Revision 1.4 2008/03/03 06:04:42 james
914 * *** empty log message ***
916 * Revision 1.3 2008/03/02 10:37:56 james
917 * *** empty log message ***
919 * Revision 1.2 2008/02/12 22:36:46 james
920 * *** empty log message ***
922 * Revision 1.1 2008/02/08 15:06:42 james
923 * *** empty log message ***
937 #define RING_NEXT(r,a) (((a)+1) % ((r)->size))
938 #define RING_NEXT_R(r) RING_NEXT(r,r->rptr)
939 #define RING_NEXT_W(r) RING_NEXT(r,r->wptr)
941 #define RING_EMPTY(r) (((r)->wptr) == ((r)->rptr))
942 #define RING_FULL(r) (RING_NEXT_W(r) == ((r)->rptr))
945 ring_write_one (Ring * r, uint8_t * c)
950 r->ring[r->wptr++] = *c;
952 if (r->wptr == r->size)
959 ring_read_one (Ring * r, uint8_t * c)
964 *c = r->ring[r->rptr++];
966 if (r->rptr == r->size)
974 #endif /* __RING_H__ */
978 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
979 * All rights reserved.
984 * $Id: slide.h,v 1.5 2008/03/10 11:49:33 james Exp $
989 * Revision 1.5 2008/03/10 11:49:33 james
990 * *** empty log message ***
992 * Revision 1.4 2008/03/07 12:37:04 james
993 * *** empty log message ***
995 * Revision 1.3 2008/03/03 06:04:42 james
996 * *** empty log message ***
998 * Revision 1.2 2008/03/02 10:37:56 james
999 * *** empty log message ***
1001 * Revision 1.1 2008/02/13 16:57:29 james
1002 * *** empty log message ***
1004 * Revision 1.2 2008/02/12 22:36:46 james
1005 * *** empty log message ***
1007 * Revision 1.1 2008/02/08 15:06:42 james
1008 * *** empty log message ***
1022 #define SLIDE_FULL(s) ((s)->nbytes==(s)->size)
1023 #define SLIDE_EMPTY(s) (!((s)->nbytes))
1024 #define SLIDE_SPACE(s) (((s)->size)-((s)->nbytes))
1025 #define SLIDE_BYTES(s) ((s)->nbytes)
1026 #define SLIDE_RPTR(s) ((s)->slide)
1027 #define SLIDE_WPTR(s) (((s)->slide)+((s)->nbytes))
1029 #endif /* __SLIDE_H__ */
1033 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1034 * All rights reserved.
1039 * $Id: log.h,v 1.7 2010/07/27 14:49:35 james Exp $
1044 * Revision 1.7 2010/07/27 14:49:35 james
1045 * add support for byte logging
1047 * Revision 1.6 2008/03/10 11:49:33 james
1048 * *** empty log message ***
1050 * Revision 1.5 2008/03/07 12:37:04 james
1051 * *** empty log message ***
1053 * Revision 1.4 2008/03/03 06:04:42 james
1054 * *** empty log message ***
1056 * Revision 1.3 2008/03/02 10:37:56 james
1057 * *** empty log message ***
1059 * Revision 1.2 2008/02/23 11:48:37 james
1060 * *** empty log message ***
1062 * Revision 1.1 2008/02/14 12:14:50 james
1063 * *** empty log message ***
1070 #define LOG_SIGNATURE \
1071 struct Log_struct *next; \
1072 void (*log)(struct Log_struct *,char *); \
1073 void (*log_bytes)(struct Log_struct *,void *,int); \
1074 void (*sighup)(struct Log_struct *); \
1075 void (*close)(struct Log_struct *)
1077 typedef struct Log_struct {
1082 #endif /* __LOG_H__ */
1086 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1087 * All rights reserved.
1092 * $Id: ipc.h,v 1.12 2008/03/10 11:49:33 james Exp $
1097 * Revision 1.12 2008/03/10 11:49:33 james
1098 * *** empty log message ***
1100 * Revision 1.11 2008/03/07 14:13:40 james
1101 * *** empty log message ***
1103 * Revision 1.10 2008/03/07 13:16:02 james
1104 * *** empty log message ***
1106 * Revision 1.9 2008/03/07 12:37:04 james
1107 * *** empty log message ***
1109 * Revision 1.8 2008/03/03 06:04:42 james
1110 * *** empty log message ***
1112 * Revision 1.7 2008/03/02 10:37:56 james
1113 * *** empty log message ***
1115 * Revision 1.6 2008/02/28 11:27:48 james
1116 * *** empty log message ***
1118 * Revision 1.5 2008/02/23 11:48:37 james
1119 * *** empty log message ***
1121 * Revision 1.4 2008/02/22 17:07:00 james
1122 * *** empty log message ***
1124 * Revision 1.3 2008/02/15 23:52:12 james
1125 * *** empty log message ***
1127 * Revision 1.2 2008/02/15 03:32:07 james
1128 * *** empty log message ***
1130 * Revision 1.1 2008/02/14 12:17:42 james
1131 * *** empty log message ***
1138 #define IPC_MAX_BUF 1024
1140 #define IPC_MSG_TYPE_NOOP 0
1141 #define IPC_MSG_TYPE_DEBUG 1
1142 #define IPC_MSG_TYPE_INITIALIZE 2
1143 #define IPC_MSG_TYPE_VT102 3
1144 #define IPC_MSG_TYPE_HISTORY 4
1145 #define IPC_MSG_TYPE_KEY 5
1146 #define IPC_MSG_TYPE_TERM 6
1147 #define IPC_MSG_TYPE_STATUS 7
1148 #define IPC_MSG_TYPE_SETBAUD 8
1149 #define IPC_MSG_TYPE_SENDBREAK 9
1150 #define IPC_MSG_TYPE_SETFLOW 10
1151 #define IPC_MSG_TYPE_SETANSI 11
1152 #define IPC_MSG_TYPE_HANGUP 12
1153 #define IPC_MSG_TYPE_SETSIZE 13
1154 #define IPC_MSG_TYPE_RESET 14
1155 #define IPC_MSG_TYPE_KILLME 15
1180 } IPC_Msg_initialize;
1185 History_ent history;
1226 } IPC_Msg_sendbreak;
1272 IPC_Msg_debug debug;
1273 IPC_Msg_initialize initialize;
1274 IPC_Msg_history history;
1275 IPC_Msg_VT102 vt102;
1278 IPC_Msg_status status;
1279 IPC_Msg_setbaud setbaud;
1280 IPC_Msg_sendbreak sendbreak;
1281 IPC_Msg_setflow setflow;
1282 IPC_Msg_setansi setansi;
1283 IPC_Msg_hangup hangup;
1284 IPC_Msg_setsize setsize;
1285 IPC_Msg_reset reset;
1286 IPC_Msg_killme killme;
1291 #endif /* __IPC_H__ */
1295 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1296 * All rights reserved.
1301 * $Id: symsocket.h,v 1.6 2008/03/10 11:49:33 james Exp $
1305 * $Log: symsocket.h,v $
1306 * Revision 1.6 2008/03/10 11:49:33 james
1307 * *** empty log message ***
1309 * Revision 1.5 2008/03/07 12:37:04 james
1310 * *** empty log message ***
1312 * Revision 1.4 2008/03/03 06:04:42 james
1313 * *** empty log message ***
1315 * Revision 1.3 2008/03/02 10:37:56 james
1316 * *** empty log message ***
1318 * Revision 1.2 2008/02/20 18:31:53 james
1319 * *** empty log message ***
1321 * Revision 1.1 2008/02/13 18:05:06 james
1322 * *** empty log message ***
1326 #ifndef __SYMSOCKET_H__
1327 #define __SYMSOCKET_H__
1337 char *path_to_unlink;
1341 #define SOCKET_IS_LISTENER(s) (!((s)->read_buf))
1343 #endif /* __SYMSOCKET_H__ */
1347 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1348 * All rights reserved.
1353 * $Id: keydis.h,v 1.10 2008/03/10 11:49:33 james Exp $
1357 * $Log: keydis.h,v $
1358 * Revision 1.10 2008/03/10 11:49:33 james
1359 * *** empty log message ***
1361 * Revision 1.9 2008/03/07 12:37:04 james
1362 * *** empty log message ***
1364 * Revision 1.8 2008/03/03 06:04:42 james
1365 * *** empty log message ***
1367 * Revision 1.7 2008/03/02 10:37:56 james
1368 * *** empty log message ***
1370 * Revision 1.6 2008/02/28 11:27:48 james
1371 * *** empty log message ***
1373 * Revision 1.5 2008/02/23 11:48:37 james
1374 * *** empty log message ***
1376 * Revision 1.4 2008/02/22 17:07:00 james
1377 * *** empty log message ***
1379 * Revision 1.3 2008/02/15 23:52:12 james
1380 * *** empty log message ***
1382 * Revision 1.2 2008/02/15 03:32:07 james
1383 * *** empty log message ***
1385 * Revision 1.1 2008/02/14 02:46:44 james
1386 * *** empty log message ***
1388 * Revision 1.1 2008/02/14 01:55:57 james
1389 * *** empty log message ***
1393 #ifndef __KEYDIS_H__
1394 #define __KEYDIS_H__
1397 struct Context_struct;
1399 #define KEYDIS_SIGNATURE \
1400 void (*close)(struct KeyDis_struct *); \
1401 int (*key)(struct KeyDis_struct *,struct Context_struct *,int key); \
1402 int (*set_baud)(struct KeyDis_struct *,struct Context_struct *,int rate); \
1403 int (*send_break)(struct KeyDis_struct *,struct Context_struct *); \
1404 int (*set_flow)(struct KeyDis_struct *,struct Context_struct *,int flow); \
1405 int (*set_ansi)(struct KeyDis_struct *,struct Context_struct *,int ansi); \
1406 int (*hangup)(struct KeyDis_struct *,struct Context_struct *); \
1407 int (*reset)(struct KeyDis_struct *,struct Context_struct *); \
1408 int (*set_size)(struct KeyDis_struct *,struct Context_struct *,int width, int height)
1412 typedef struct KeyDis_struct {
1417 #endif /* __KEYDIS_H__ */
1421 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1422 * All rights reserved.
1427 * $Id: cmd.h,v 1.8 2008/03/10 11:49:32 james Exp $
1432 * Revision 1.8 2008/03/10 11:49:32 james
1433 * *** empty log message ***
1435 * Revision 1.7 2008/03/07 12:37:04 james
1436 * *** empty log message ***
1438 * Revision 1.6 2008/03/03 06:04:42 james
1439 * *** empty log message ***
1441 * Revision 1.5 2008/03/02 12:30:54 staffcvs
1442 * *** empty log message ***
1444 * Revision 1.4 2008/03/02 10:37:56 james
1445 * *** empty log message ***
1447 * Revision 1.3 2008/02/28 11:27:48 james
1448 * *** empty log message ***
1450 * Revision 1.2 2008/02/23 11:48:37 james
1451 * *** empty log message ***
1453 * Revision 1.1 2008/02/15 15:14:19 james
1454 * *** empty log message ***
1461 #define CMD_KEY 2 /* CTRL B */
1462 #define CMD_CANCEL_KEY 3 /* CTRL C */
1473 #endif /* __CMD_H__ */
1477 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1478 * All rights reserved.
1483 * $Id: lockfile.h,v 1.11 2008/03/10 11:49:33 james Exp $
1487 * $Log: lockfile.h,v $
1488 * Revision 1.11 2008/03/10 11:49:33 james
1489 * *** empty log message ***
1491 * Revision 1.10 2008/03/07 12:37:04 james
1492 * *** empty log message ***
1494 * Revision 1.9 2008/03/03 06:04:42 james
1495 * *** empty log message ***
1497 * Revision 1.8 2008/03/02 10:37:56 james
1498 * *** empty log message ***
1500 * Revision 1.7 2008/02/23 11:48:37 james
1501 * *** empty log message ***
1503 * Revision 1.6 2008/02/15 23:52:12 james
1504 * *** empty log message ***
1506 * Revision 1.5 2008/02/15 20:52:36 james
1507 * *** empty log message ***
1509 * Revision 1.4 2008/02/15 19:51:30 james
1510 * *** empty log message ***
1512 * Revision 1.3 2008/02/15 18:16:36 james
1513 * *** empty log message ***
1515 * Revision 1.2 2008/02/15 16:48:56 james
1516 * *** empty log message ***
1518 * Revision 1.1 2008/02/15 15:09:17 james
1519 * *** empty log message ***
1523 #ifndef __LOCKFILE_H__
1524 #define __LOCKFILE_H__
1526 #define SERIAL_LOCK_PASSIVE 0
1527 #define SERIAL_LOCK_ACTIVE 1
1529 #define FILE_LIST_MAX_LEN 1024
1531 typedef struct Filelist_ent {
1532 char name[FILE_LIST_MAX_LEN];
1533 struct Filelist_ent *next;
1544 struct timeval last_stale_purge;
1545 Filelist *locks_to_check;
1546 Filelist *locks_held;
1551 #endif /* __LOCKFILE_H__ */
1555 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1556 * All rights reserved.
1561 * $Id: rx.h,v 1.5 2008/03/10 11:49:33 james Exp $
1566 * Revision 1.5 2008/03/10 11:49:33 james
1567 * *** empty log message ***
1569 * Revision 1.4 2008/03/07 12:37:04 james
1570 * *** empty log message ***
1572 * Revision 1.3 2008/03/06 16:49:39 james
1573 * *** empty log message ***
1575 * Revision 1.2 2008/03/06 16:49:05 james
1576 * *** empty log message ***
1578 * Revision 1.1 2008/03/06 15:17:26 james
1579 * *** empty log message ***
1586 #define RX_SIGNATURE \
1587 int (*rx)(struct RX_struct *,int); \
1588 void (*close)(struct RX_struct *);
1591 typedef struct RX_struct {
1596 #endif /* __RX_H__ */
1600 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1601 * All rights reserved.
1606 * $Id: context.h,v 1.14 2010/07/27 14:49:35 james Exp $
1610 * $Log: context.h,v $
1611 * Revision 1.14 2010/07/27 14:49:35 james
1612 * add support for byte logging
1614 * Revision 1.13 2008/03/10 11:49:32 james
1615 * *** empty log message ***
1617 * Revision 1.12 2008/03/07 12:37:04 james
1618 * *** empty log message ***
1620 * Revision 1.11 2008/03/06 16:49:05 james
1621 * *** empty log message ***
1623 * Revision 1.10 2008/03/03 06:04:42 james
1624 * *** empty log message ***
1626 * Revision 1.9 2008/03/02 10:37:56 james
1627 * *** empty log message ***
1629 * Revision 1.8 2008/02/23 11:48:37 james
1630 * *** empty log message ***
1632 * Revision 1.7 2008/02/22 23:39:27 james
1633 * *** empty log message ***
1635 * Revision 1.6 2008/02/15 03:32:07 james
1636 * *** empty log message ***
1638 * Revision 1.5 2008/02/14 02:46:44 james
1639 * *** empty log message ***
1641 * Revision 1.4 2008/02/14 01:55:57 james
1642 * *** empty log message ***
1644 * Revision 1.3 2008/02/13 09:12:21 james
1645 * *** empty log message ***
1647 * Revision 1.2 2008/02/12 22:36:46 james
1648 * *** empty log message ***
1650 * Revision 1.1 2008/02/09 15:47:28 james
1651 * *** empty log message ***
1655 #ifndef __CONTEXT_H__
1656 #define __CONTEXT_H__
1658 typedef struct Context_struct {
1671 #endif /* __CONTEXT_H__ */
1675 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
1676 * All rights reserved.
1681 * $Id: vt102_charset.h,v 1.2 2008/03/07 12:37:04 james Exp $
1685 * $Log: vt102_charset.h,v $
1686 * Revision 1.2 2008/03/07 12:37:04 james
1687 * *** empty log message ***
1689 * Revision 1.1 2008/02/27 01:32:41 james
1690 * *** empty log message ***
1694 #ifndef __VT102_CHARSET_H__
1695 #define __VT102_CHARSET_H__
1697 #define VT102_CHARSET_SIZE 128
1699 #define VT102_CSID_US 0
1700 #define VT102_CSID_UK 1
1701 #define VT102_CSID_GL 2
1702 #define VT102_CSID_VT52 3
1704 #endif /* __VT102_CHARSET_H__ */
1706 extern ANSI *ansi_new_from_terminal (TTY * t, int utf8);
1708 extern void crt_erase (CRT * c, CRT_Pos s, CRT_Pos e, int ea, int color);
1709 extern void crt_cls (CRT * c);
1710 extern void crt_scroll_up (CRT * c, CRT_Pos s, CRT_Pos e, int ea, int color);
1711 extern void crt_scroll_down (CRT * c, CRT_Pos s, CRT_Pos e, int ea,
1713 extern void crt_reset (CRT * c);
1714 extern void crt_insert (CRT * c, CRT_CA ca);
1716 extern ANSI *ansi_new_html (FILE * f);
1720 extern char *libsympathy_version (void);
1722 extern int vt102_cmd_length[128];
1723 extern int vt102_cmd_termination[128];
1724 extern void vt102_crt_update (Context * c);
1725 extern void vt102_do_resize (Context * c);
1726 extern void vt102_log_line (Context * c, int line);
1727 extern void vt102_history (Context * c, CRT_Pos t, CRT_Pos b);
1728 extern void vt102_clip_cursor (VT102 * v, CRT_Pos tl, CRT_Pos br);
1729 extern void vt102_cursor_normalize (VT102 * v);
1730 extern void vt102_cursor_carriage_return (VT102 * v);
1731 extern void vt102_cursor_advance_line (Context * c);
1732 extern void vt102_cursor_retreat_line (Context * c);
1733 extern void vt102_do_pending_wrap (Context * c);
1734 extern void vt102_cursor_advance (Context * c);
1735 extern void vt102_cursor_retreat (VT102 * v);
1736 extern void vt102_reset_tabs (VT102 * v);
1737 extern void vt102_cursor_advance_tab (VT102 * v);
1738 extern void vt102_cursor_retreat_tab (VT102 * v);
1739 extern int vt102_cursor_home (VT102 * v);
1740 extern int vt102_cursor_absolute (VT102 * v, int x, int y);
1741 extern int vt102_cursor_relative (VT102 * v, int x, int y);
1742 extern void vt102_delete_from_line (VT102 * v, CRT_Pos p);
1743 extern void vt102_insert_into_line (VT102 * v, CRT_Pos p);
1744 extern void vt102_change_mode (Context * c, int private, char *ns, int set);
1745 extern void vt102_parse_mode_string (Context * c, char *buf, int len);
1746 extern void vt102_change_attr (VT102 * v, char *na);
1747 extern void vt102_parse_attr_string (VT102 * v, char *buf, int len);
1748 extern void vt102_save_state (VT102 * v);
1749 extern void vt102_restore_state (VT102 * v);
1750 extern void vt102_regular_char (Context * c, VT102 * v, uint32_t ch);
1751 extern int vt102_send_id (Context * c, char *buf);
1752 extern void vt102_scs (Context * c, int g, int s);
1753 extern void vt102_status_line (VT102 * v, char *str);
1754 extern void vt102_parser_reset (VT102_parser * p);
1755 extern void vt102_reset_state (Context * c);
1756 extern int vt102_rx_hook (Context * c, int ch);
1757 extern int vt102_parse_char (Context * c, int ch);
1758 extern void vt102_send (Context * c, uint8_t key);
1759 extern void vt102_reset (Context * c);
1760 extern VT102 *vt102_new (CRT_Pos * size);
1761 extern void vt102_set_ansi (VT102 * v, int ansi);
1762 extern void vt102_resize (Context * c, CRT_Pos size);
1763 extern void vt102_free (VT102 * v);
1765 extern void tty_pre_select (TTY * t, fd_set * rfds, fd_set * wfds);
1766 extern int tty_get_status (TTY * t, TTY_Status * s);
1767 extern int tty_get_baud (TTY * t);
1768 extern void tty_set_baud (TTY * t, int rate);
1769 extern void tty_send_break (TTY * t);
1770 extern void tty_set_flow (TTY * t, int flow);
1771 extern void tty_hangup (TTY * t);
1772 extern void tty_length (TTY * t, int l);
1773 extern void tty_winch (TTY * t, CRT_Pos size);
1774 extern void tty_parse_reset (Context * c);
1775 extern void tty_analyse (Context * c);
1776 extern TTY_Parser *tty_parser_new (void);
1777 extern int tty_parse (Context * c, uint8_t * buf, int len);
1779 extern KeyDis *keydis_vt102_new (void);
1780 extern KeyDis *keydis_ipc_new (Socket * s);
1782 extern History *history_new (int n);
1783 extern void history_free (History * h);
1784 extern void history_add (History * h, CRT_CA * c);
1786 extern int ring_read (Ring * r, void *b, int n);
1787 extern int ring_write (Ring * r, void *b, int n);
1788 extern int ring_space (Ring * r);
1789 extern int ring_bytes (Ring * r);
1790 extern Ring *ring_new (int n);
1792 extern TTY *ptty_open (char *path, char *argv[], CRT_Pos * size);
1794 extern int terminal_winches;
1795 extern void terminal_atexit (void);
1796 extern void terminal_getsize (TTY * _t);
1797 extern void terminal_dispatch (void);
1798 extern void terminal_register_handlers (void);
1799 extern TTY *terminal_open (int rfd, int wfd);
1801 extern int wrap_read (int fd, void *buf, int len);
1802 extern int wrap_write (int fd, void *buf, int len);
1803 extern void set_nonblocking (int fd);
1804 extern void set_blocking (int fd);
1805 extern void default_termios (struct termios *termios);
1806 extern void client_termios (struct termios *termios);
1807 extern int fput_cp (FILE * f, uint32_t ch);
1808 extern void crash_out (char *why);
1809 extern void *xmalloc (size_t s);
1810 extern void *xrealloc (void *p, size_t s);
1811 extern char *xstrdup (const char *s);
1813 extern Log *file_log_new (char *fn, int rotate);
1814 extern void log_f (Log * log, char *fmt, ...);
1816 extern IPC_Msg *ipc_check_for_message_in_slide (Slide * s);
1817 extern void ipc_consume_message_in_slide (Slide * s);
1818 extern int ipc_msg_send (Socket * s, IPC_Msg * m);
1819 extern int ipc_msg_send_debug (Socket * s, char *msg);
1820 extern int ipc_msg_send_initialize (Socket * s);
1821 extern int ipc_msg_send_history (Socket * s, History_ent * l);
1822 extern int ipc_msg_send_vt102 (Socket * s, VT102 * v);
1823 extern int ipc_msg_send_key (Socket * s, int key);
1824 extern int ipc_msg_send_term (Socket * s, void *buf, int len);
1825 extern int ipc_msg_send_status (Socket * s, char *buf);
1826 extern int ipc_msg_send_setbaud (Socket * s, int baud);
1827 extern int ipc_msg_send_sendbreak (Socket * s);
1828 extern int ipc_msg_send_setflow (Socket * s, int flow);
1829 extern int ipc_msg_send_setansi (Socket * s, int ansi);
1830 extern int ipc_msg_send_hangup (Socket * s);
1831 extern int ipc_msg_send_setsize (Socket * s, CRT_Pos size);
1832 extern int ipc_msg_send_reset (Socket * s);
1834 extern void slide_free (Slide * s);
1835 extern void slide_consume (Slide * s, int n);
1836 extern void slide_added (Slide * s, int n);
1837 extern Slide *slide_new (int n);
1838 extern void slide_expand (Slide * s, int n);
1840 extern int wrap_recv (int fd, void *buf, int len);
1841 extern int wrap_send (int fd, void *buf, int len);
1842 extern void socket_free (Socket * s);
1843 extern void socket_free_parent (Socket * s);
1844 extern Socket *socket_listen (char *path);
1845 extern Socket *socket_accept (Socket * l);
1846 extern Socket *socket_connect (char *path);
1847 extern void socket_consume_msg (Socket * s);
1848 extern void socket_pre_select (Socket * s, fd_set * rfds, fd_set * wfds);
1849 extern int socket_post_select (Socket * s, fd_set * rfds, fd_set * wfds);
1850 extern int socket_write (Socket * s, void *buf, int len);
1852 extern TTY *serial_open (char *path, int lock_mode);
1854 extern int cmd_parse (Cmd * c, Context * ctx, ANSI * a, char *buf);
1855 extern void cmd_show_status (Cmd * c, Context * ctx);
1856 extern int cmd_key (Cmd * c, Context * ctx, ANSI * a, int key);
1857 extern int cmd_deactivate (Cmd * c, Context * ctx);
1858 extern int cmd_activate (Cmd * c, Context * ctx);
1859 extern void cmd_new_status (Cmd * c, Context * ctx, char *msg);
1860 extern Cmd *cmd_new (void);
1862 extern Filelist *filelist_new (void);
1863 extern void filelist_remove (Filelist * fl, Filelist_ent * fle);
1864 extern void filelist_add (Filelist * fl, char *fn);
1865 extern void filelist_free (Filelist * fl);
1866 extern void filelist_print (Filelist * fl, FILE * f);
1867 extern int lockfile_make (char *name);
1868 extern void lockfile_add_places (Filelist * fl, char *leaf);
1869 extern void lockfile_regularize_and_add (Filelist * fl, char *leaf);
1870 extern void lockfile_add_name_from_path (Filelist * fl, char *file);
1871 extern void lockfile_add_name_from_dev (Filelist * fl, dev_t dev);
1872 extern void lockfile_check_dir_for_dev (Filelist * fl, char *dir, dev_t dev);
1873 extern Filelist *lockfile_make_list (char *device);
1874 extern void lockfile_remove_stale (Filelist * fl);
1875 extern Filelist *lockfile_lock (Filelist * fl);
1876 extern void lockfile_unlock (Filelist * fl);
1877 extern int serial_lock_check (Serial_lock * l);
1878 extern void serial_lock_free (Serial_lock * l);
1879 extern Serial_lock *serial_lock_new (char *dev, int mode);
1881 extern int utf8_flush (Context * c);
1882 extern int utf8_parse (Context * c, uint32_t ch);
1883 extern UTF8 *utf8_new (void);
1884 extern int utf8_encode (char *ptr, int ch);
1885 extern int utf8_emit (TTY * t, int ch);
1886 /* vt102_charset.c */
1887 extern uint32_t vt102_charset_c0[128];
1888 extern uint32_t vt102_charset_us[128];
1889 extern uint32_t vt102_charset_uk[128];
1890 extern uint32_t vt102_charset_vt52[128];
1891 extern uint32_t vt102_charset_gl[128];
1892 extern uint32_t *charset_from_csid[];
1894 extern void rotate_gzip (char *file);
1895 extern void rotate (char *file);
1896 extern int rotate_check (char *file);
1898 extern RX *rx_new_raw (int rfd, int wfd);
1899 extern TTY *terminal_new_raw (int rfd, int wfd);
1900 extern ANSI *ansi_new_raw (int rfd, int wfd);
1905 #endif /* __SYMPATHY_H__ */