/*
* $Log$
+ * Revision 1.15 2008/02/27 01:31:38 james
+ * *** empty log message ***
+ *
* Revision 1.14 2008/02/27 01:31:14 james
* *** empty log message ***
*
void
mainloop (TTY * tty, Socket * server_socket, Socket * client_socket,
- ANSI * ansi, Log * log, int nhistory,int width)
+ ANSI * ansi, Log * log, int nhistory, int width)
{
fd_set rfds, wfds;
Context c = { 0 };
/*
* $Log$
+ * Revision 1.3 2008/02/27 01:31:14 james
+ * *** empty log message ***
+ *
* Revision 1.2 2008/02/20 18:49:11 staffcvs
* *** empty log message ***
*
extern void
mainloop (TTY * tty, Socket * server_socket, Socket * client_socket, ANSI * a,
- Log * log, int nhistory);
+ Log * log, int nhistory, int width);
#endif /* __MAINLOOP_H__ */
/*
* $Log$
+ * Revision 1.16 2008/02/27 01:31:38 james
+ * *** empty log message ***
+ *
* Revision 1.15 2008/02/27 01:31:14 james
* *** empty log message ***
*
int c;
extern char *optarg;
extern int optind, opterr, optopt;
- int width=VT102_COLS_80;
+ int width = VT102_COLS_80;
int oflags[128];
char *oargs[128];
memset (oflags, 0, sizeof (oflags));
memset (oargs, 0, sizeof (oargs));
- while ((c = getopt (argc, argv, "w:utscr:lKHd:pb:fL:Fk:n:")) != EOF)
+ while ((c = getopt (argc, argv, "w:utscr:lKHd:pb:fL:Fk:n:")) != EOF)
{
switch (c)
{
oflags['f'] = 0;
oflags['L'] = 0;
oflags['n'] = 0;
- oflags['w'] = 0;
+ oflags['w'] = 0;
if (server_socket)
{
socket_free_parent (server_socket);
oflags['p']++;
}
- if (oflags['w']) {
- width=safe_atoi(oargs['w']);
- if ((width>VT102_MAX_COLS) || (width<1))
- fatal_moan("-w requires a width between 1 and %d\n",VT102_MAX_COLS);
- }
+ if (oflags['w'])
+ {
+ width = safe_atoi (oargs['w']);
+ if ((width > VT102_MAX_COLS) || (width < 1))
+ fatal_moan ("-w requires a width between 1 and %d\n", VT102_MAX_COLS);
+ }
if (oflags['s'] && !oflags['F'])
{
}
}
- mainloop (tty, server_socket, client_socket, ansi, log, history,width);
+ mainloop (tty, server_socket, client_socket, ansi, log, history, width);
if (ansi)
{
/*
* $Log$
+ * Revision 1.11 2008/02/27 01:31:38 james
+ * *** empty log message ***
+ *
* Revision 1.10 2008/02/27 01:31:14 james
* *** empty log message ***
*
" -n hlines the number of lines of history to store in the\n"
" server, that are replayed on connexion\n"
" -u don't emit utf-8 try to use ISO-2202 to the local terminal\n"
- " -w width start session with a screen of width width<=132\n"
- );
+ " -w width start session with a screen of width width<=132\n");
exit (1);
/*
* $Log$
+ * Revision 1.5 2008/02/27 01:31:14 james
+ * *** empty log message ***
+ *
* Revision 1.4 2008/02/27 00:54:16 james
* *** empty log message ***
*
l->fp = f;
l->do_close = dc;
- fput_cp(f,0xffef);
+ fput_cp (f, 0xffef);
return (Log *) l;
}
extern void vt102_parse_char(Context *c, int ch);
extern void vt102_send(Context *c, uint8_t key);
extern void vt102_reset(VT102 *v);
-extern VT102 *vt102_new(void);
+extern VT102 *vt102_new(int width);
extern void vt102_set_ansi(VT102 *v, int ansi);
extern void vt102_free(VT102 *v);
/* tty.c */
extern int ring_bytes(Ring *r);
extern Ring *ring_new(int n);
/* ptty.c */
-extern TTY *ptty_open(char *path, char *argv[]);
+extern TTY *ptty_open(char *path, char *argv[], int width);
/* terminal.c */
extern int terminal_winches;
extern void terminal_atexit(void);
/*
* $Log$
+ * Revision 1.13 2008/02/27 01:31:38 james
+ * *** empty log message ***
+ *
* Revision 1.12 2008/02/27 01:31:14 james
* *** empty log message ***
*
}
TTY *
-ptty_open (char *path, char *argv[],int width)
+ptty_open (char *path, char *argv[], int width)
{
PTTY *t;
pid_t child;
client_termios (&ctermios);
winsize.ws_row = VT102_ROWS;
- winsize.ws_col = width ? width:VT102_COLS_80;
+ winsize.ws_col = width ? width : VT102_COLS_80;
child = forkpty (&fd, name, &ctermios, &winsize);
/*
* $Log$
+ * Revision 1.9 2008/02/27 01:31:14 james
+ * *** empty log message ***
+ *
* Revision 1.8 2008/02/27 00:54:16 james
* *** empty log message ***
*
}
-int utf8_encode (char *ptr, int ch)
+int
+utf8_encode (char *ptr, int ch)
{
if (ch < 0x80)
{
ptr[0] = ch;
- return 1;
+ return 1;
}
else if (ch < 0x800)
{
ptr[0] = 0xc0 | (ch >> 6);
ptr[1] = 0x80 | (ch & 0x3f);
- return 2;
+ return 2;
}
else if (ch < 0x10000)
{
ptr[0] = 0xe0 | (ch >> 12);
ptr[1] = 0x80 | ((ch >> 6) & 0x3f);
ptr[2] = 0x80 | (ch & 0x3f);
- return 3;
+ return 3;
}
else if (ch < 0x1fffff)
{
ptr[1] = 0x80 | ((ch >> 12) & 0x3f);
ptr[2] = 0x80 | ((ch >> 6) & 0x3f);
ptr[3] = 0x80 | (ch & 0x3f);
- return 4;
+ return 4;
}
- return 0;
+ return 0;
}
void
utf8_emit (TTY * t, int ch)
{
uint8_t buf[4];
-int i;
- i=utf8_encode(buf,ch);
- if (!i) return;
+ int i;
+ i = utf8_encode (buf, ch);
+ if (!i)
+ return;
- t->xmit (t, buf, i);
+ t->xmit (t, buf, i);
}
/*
* $Log$
+ * Revision 1.7 2008/02/27 01:31:14 james
+ * *** empty log message ***
+ *
* Revision 1.6 2008/02/27 00:54:16 james
* *** empty log message ***
*
cfsetospeed (termios, B9600);
}
-int fput_cp(FILE *f,uint32_t ch)
+int
+fput_cp (FILE * f, uint32_t ch)
{
-char buf[4];
-int i;
-i=utf8_encode(buf,ch);
+ char buf[4];
+ int i;
+ i = utf8_encode (buf, ch);
-if (!i) return 0;
+ if (!i)
+ return 0;
-return fwrite(buf,i,1,f);
+ return fwrite (buf, i, 1, f);
}
/*
* $Log$
+ * Revision 1.46 2008/02/27 01:31:38 james
+ * *** empty log message ***
+ *
* Revision 1.45 2008/02/27 01:31:14 james
* *** empty log message ***
*
vt102_reset (v);
- if (width) {
- v->current_width =width;
- v->crt.width = v->current_width;
- v->screen_end.x = v->current_width - 1;
- v->top_margin = v->screen_start;
- v->bottom_margin = v->screen_end;
- vt102_cursor_home (v);
- }
+ if (width)
+ {
+ v->current_width = width;
+ v->crt.width = v->current_width;
+ v->screen_end.x = v->current_width - 1;
+ v->top_margin = v->screen_start;
+ v->bottom_margin = v->screen_end;
+ vt102_cursor_home (v);
+ }
return v;
}
--- /dev/null
+/*
+ * vt102_charset.h:
+ *
+ * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
+ * All rights reserved.
+ *
+ */
+
+/*
+ * $Id$
+ */
+
+/*
+ * $Log$
+ * Revision 1.1 2008/02/27 01:32:41 james
+ * *** empty log message ***
+ *
+ */
+
+#ifndef __VT102_CHARSET_H__
+#define __VT102_CHARSET_H__
+
+#define VT102_CHARSET_SIZE 128
+
+#define VT102_CSID_US 0
+#define VT102_CSID_UK 1
+#define VT102_CSID_GL 2
+#define VT102_CSID_VT52 3
+
+#endif /* __VT102_CHARSET_H__ */