Navigation Menu

Skip to content

Commit

Permalink
Initial import of em-4.0.15-lt
Browse files Browse the repository at this point in the history
This is a slightly updated version of uemacs-PK (PK is Pekka
Kutvonen) which was used at Helsinki University a long time
ago. My fingers cannot be retrained.
  • Loading branch information
Linus Torvalds committed May 31, 2005
0 parents commit d7148b2
Show file tree
Hide file tree
Showing 50 changed files with 20,521 additions and 0 deletions.
264 changes: 264 additions & 0 deletions ansi.c
@@ -0,0 +1,264 @@
/* ANSI.C
*
* The routines in this file provide support for ANSI style terminals
* over a serial line. The serial I/O services are provided by routines in
* "termio.c". It compiles into nothing if not an ANSI device.
*
* modified by Petri Kutvonen
*/

#define termdef 1 /* don't define "term" external */

#include <stdio.h>
#include "estruct.h"
#include "edef.h"

#if ANSI

#define NROW 25 /* Screen size. */
#define NCOL 80 /* Edit if you want to. */

#if PKCODE
#define MROW 64
#endif
#define NPAUSE 100 /* # times thru update to pause */
#define MARGIN 8 /* size of minimim margin and */
#define SCRSIZ 64 /* scroll size for extended lines */
#define BEL 0x07 /* BEL character. */
#define ESC 0x1B /* ESC character. */

extern int ttopen(); /* Forward references. */
extern int ttgetc();
extern int ttputc();
extern int ttflush();
extern int ttclose();
extern int ansimove();
extern int ansieeol();
extern int ansieeop();
extern int ansibeep();
extern int ansiopen();
extern int ansirev();
extern int ansiclose();
extern int ansikopen();
extern int ansikclose();
extern int ansicres();

#if COLOR
extern int ansifcol();
extern int ansibcol();

int cfcolor = -1; /* current forground color */
int cbcolor = -1; /* current background color */

#endif

/*
* Standard terminal interface dispatch table. Most of the fields point into
* "termio" code.
*/
TERM term = {
#if PKCODE
MROW-1,
#else
NROW-1,
#endif
NROW-1,
NCOL,
NCOL,
MARGIN,
SCRSIZ,
NPAUSE,
ansiopen,
ansiclose,
ansikopen,
ansikclose,
ttgetc,
ttputc,
ttflush,
ansimove,
ansieeol,
ansieeop,
ansibeep,
ansirev,
ansicres
#if COLOR
, ansifcol,
ansibcol
#endif
#if SCROLLCODE
, NULL
#endif
};

#if COLOR
ansifcol(color) /* set the current output color */

int color; /* color to set */

{
if (color == cfcolor)
return;
ttputc(ESC);
ttputc('[');
ansiparm(color+30);
ttputc('m');
cfcolor = color;
}

ansibcol(color) /* set the current background color */

int color; /* color to set */

{
if (color == cbcolor)
return;
ttputc(ESC);
ttputc('[');
ansiparm(color+40);
ttputc('m');
cbcolor = color;
}
#endif

ansimove(row, col)
{
ttputc(ESC);
ttputc('[');
ansiparm(row+1);
ttputc(';');
ansiparm(col+1);
ttputc('H');
}

ansieeol()
{
ttputc(ESC);
ttputc('[');
ttputc('K');
}

ansieeop()
{
#if COLOR
ansifcol(gfcolor);
ansibcol(gbcolor);
#endif
ttputc(ESC);
ttputc('[');
ttputc('J');
}

ansirev(state) /* change reverse video state */

int state; /* TRUE = reverse, FALSE = normal */

{
#if COLOR
int ftmp, btmp; /* temporaries for colors */
#endif

ttputc(ESC);
ttputc('[');
ttputc(state ? '7': '0');
ttputc('m');
#if COLOR
if (state == FALSE) {
ftmp = cfcolor;
btmp = cbcolor;
cfcolor = -1;
cbcolor = -1;
ansifcol(ftmp);
ansibcol(btmp);
}
#endif
}

ansicres() /* change screen resolution */

{
return(TRUE);
}

spal(dummy) /* change pallette settings */

{
/* none for now */
}

ansibeep()
{
ttputc(BEL);
ttflush();
}

ansiparm(n)
register int n;
{
register int q,r;

q = n/10;
if (q != 0) {
r = q/10;
if (r != 0) {
ttputc((r%10)+'0');
}
ttputc((q%10) + '0');
}
ttputc((n%10) + '0');
}

ansiopen()
{
#if V7 | USG | BSD
register char *cp;
char *getenv();

if ((cp = getenv("TERM")) == NULL) {
puts("Shell variable TERM not defined!");
exit(1);
}
if (strcmp(cp, "vt100") != 0) {
puts("Terminal type not 'vt100'!");
exit(1);
}
#endif
strcpy(sres, "NORMAL");
revexist = TRUE;
ttopen();
}

ansiclose()

{
#if COLOR
ansifcol(7);
ansibcol(0);
#endif
ttclose();
}

ansikopen() /* open the keyboard (a noop here) */

{
}

ansikclose() /* close the keyboard (a noop here) */

{
}

#if FNLABEL
fnclabel(f, n) /* label a function key */

int f,n; /* default flag, numeric argument [unused] */

{
/* on machines with no function keys...don't bother */
return(TRUE);
}
#endif
#else
ansihello()
{
}
#endif

0 comments on commit d7148b2

Please sign in to comment.