Standardized on 16-bit shorts. - sam - An updated version of the sam text editor.
(HTM) git clone git://vernunftzentrum.de/sam.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 7827b57212dabd01b471b7ab821f1862b666dd07
(DIR) parent 7db039abc42d7c4c57e80b7c3856938bae6ead98
(HTM) Author: Rob King <jking@deadpixi.com>
Date: Tue, 27 Sep 2016 11:21:48 -0500
Standardized on 16-bit shorts.
Diffstat:
include/frame.h | 22 +++++++++++-----------
include/libg.h | 2 +-
include/u.h | 1 -
libXg/gwin.c | 10 +++++-----
libXg/latin1.c | 12 +++++++-----
sam/file.c | 12 ++++++------
sam/mesg.c | 8 ++++----
sam/multi.c | 2 +-
sam/parse.h | 8 ++++----
sam/sam.h | 32 ++++++++++++++++----------------
samterm/menu.c | 2 +-
samterm/mesg.c | 4 ++--
samterm/samterm.h | 10 +++++-----
13 files changed, 63 insertions(+), 62 deletions(-)
---
(DIR) diff --git a/include/frame.h b/include/frame.h
@@ -10,8 +10,8 @@ struct Frbox
union{
uchar *ptr;
struct{
- short bc; /* break char */
- short minwid;
+ int16_t bc; /* break char */
+ int16_t minwid;
} b;
} a;
};
@@ -28,15 +28,15 @@ struct Frame
Rectangle entire; /* of full frame */
Frbox *box;
uint64_t p0, p1; /* selection */
- short left; /* left edge of text */
- ushort nbox, nalloc;
- ushort maxtab; /* max size of tab, in pixels */
- ushort fheight; /* font height, in pixels */
- ushort nchars; /* # runes in frame */
- ushort nlines; /* # lines with text */
- ushort maxlines; /* total # lines in frame */
- ushort lastlinefull; /* last line fills frame */
- ushort modified; /* changed since frselect() */
+ int16_t left; /* left edge of text */
+ uint16_t nbox, nalloc;
+ uint16_t maxtab; /* max size of tab, in pixels */
+ uint16_t fheight; /* font height, in pixels */
+ uint16_t nchars; /* # runes in frame */
+ uint16_t nlines; /* # lines with text */
+ uint16_t maxlines; /* total # lines in frame */
+ uint16_t lastlinefull; /* last line fills frame */
+ uint16_t modified; /* changed since frselect() */
};
uint64_t frcharofpt(Frame*, Point);
(DIR) diff --git a/include/libg.h b/include/libg.h
@@ -156,7 +156,7 @@ enum Fcode
typedef void (*Errfunc)(char *);
-extern void addlatin(char, char, short);
+extern void addlatin(char, char, int16_t);
extern Point add(Point, Point);
extern Point sub(Point, Point);
extern Point mul(Point, int);
(DIR) diff --git a/include/u.h b/include/u.h
@@ -9,6 +9,5 @@
#include <unistd.h>
#include <wchar.h>
-typedef uint16_t ushort;
typedef uint8_t uchar;
typedef uint16_t Rune;
(DIR) diff --git a/libXg/gwin.c b/libXg/gwin.c
@@ -164,7 +164,7 @@ Mappingaction(Widget w, XEvent *e, String *p, Cardinal *np)
typedef struct Unikeysym Unikeysym;
struct Unikeysym{
KeySym keysym;
- unsigned short value;
+ uint16_t value;
};
Unikeysym unikeysyms[] ={
@@ -172,7 +172,7 @@ Unikeysym unikeysyms[] ={
{0, 0}
};
-unsigned short
+uint16_t
keysymtoshort(KeySym k)
{
for (Unikeysym *ks = unikeysyms; ks->keysym != 0; ks++){
@@ -334,13 +334,13 @@ Keyaction(Widget w, XEvent *e, String *p, Cardinal *np)
if ((k < '0') || (k > 'f') ||
((k > '9') && (k < 'a'))) {
STUFFCOMPOSE();
- c = (unsigned short)k;
+ c = (uint16_t)k;
composing = -2;
} else if (composing == 4) {
c = unicode(compose);
if (c == -1) {
STUFFCOMPOSE();
- c = (unsigned short)compose[4];
+ c = (uint16_t)compose[4];
}
composing = -2;
}
@@ -348,7 +348,7 @@ Keyaction(Widget w, XEvent *e, String *p, Cardinal *np)
c = (int)latin1(compose);
if (c == -1) {
STUFFCOMPOSE();
- c = (unsigned short)compose[1];
+ c = (uint16_t)compose[1];
}
composing = -2;
}
(DIR) diff --git a/libXg/latin1.c b/libXg/latin1.c
@@ -1,6 +1,8 @@
/* Copyright (c) 1998 Lucent Technologies - All rights reserved. */
-/* Changes copyright 2014-2014 Rob King. */
+/* Changes copyright 2014-2016 Rob King. */
+#include <inttypes.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -9,7 +11,7 @@
struct latin
{
- unsigned short l;
+ uint16_t l;
unsigned char c[2];
};
@@ -233,7 +235,7 @@ freelatin(void)
}
void
-addlatin(char c0, char c1, short l)
+addlatin(char c0, char c1, int16_t l)
{
static int i = 0;
@@ -263,8 +265,8 @@ initlatin(void)
return;
unsigned char c0, c1;
- unsigned short l;
- while (fscanf(keyboard, " %c%c %hx%*[^\n]\n", &c0, &c1, &l) == 3)
+ uint16_t l;
+ while (fscanf(keyboard, " %c%c %" SCNx16 "%*[^\n]\n", &c0, &c1, &l) == 3)
addlatin(c0, c1, l);
fclose(keyboard);
(DIR) diff --git a/sam/file.c b/sam/file.c
@@ -10,9 +10,9 @@ static String *ftempstr(Rune*, int);
int fcount;
File *lastfile;
-void puthdr_csl(Buffer*, char, short, Posn);
-void puthdr_cs(Buffer*, char, short);
-void puthdr_M(Buffer*, Posn, Range, Range, Mod, short);
+void puthdr_csl(Buffer*, char, int16_t, Posn);
+void puthdr_cs(Buffer*, char, int16_t);
+void puthdr_M(Buffer*, Posn, Range, Range, Mod, int16_t);
void puthdr_cll(Buffer*, char, Posn, Posn);
void Fflush(File*);
@@ -351,7 +351,7 @@ Fupdate(File *f, int mktrans, int toterm)
}
void
-puthdr_csl(Buffer *b, char c, short s, Posn p)
+puthdr_csl(Buffer *b, char c, int16_t s, Posn p)
{
struct _csl buf;
@@ -364,7 +364,7 @@ puthdr_csl(Buffer *b, char c, short s, Posn p)
}
void
-puthdr_cs(Buffer *b, char c, short s)
+puthdr_cs(Buffer *b, char c, int16_t s)
{
struct _cs buf;
@@ -374,7 +374,7 @@ puthdr_cs(Buffer *b, char c, short s)
}
void
-puthdr_M(Buffer *b, Posn p, Range dot, Range mk, Mod m, short s1)
+puthdr_M(Buffer *b, Posn p, Range dot, Range mk, Mod m, int16_t s1)
{
Mark mark;
static int first = 1;
(DIR) diff --git a/sam/mesg.c b/sam/mesg.c
@@ -88,7 +88,7 @@ void
journaln(int out, int64_t n)
{
char buf[32];
- sprint(buf, sizeof (int64_t) > 4 ? "%ld" : "%d", n);
+ sprint(buf, PRId64, n);
journal(out, buf);
}
#else
@@ -171,7 +171,7 @@ inmesg(Tmesg type)
{
Rune buf[1025];
int i, m;
- short s;
+ int16_t s;
int64_t l, l1, l2;
File *f;
Posn p0, p1;
@@ -449,7 +449,7 @@ inmesg(Tmesg type)
c = 0;
i = 0;
m = snarfbuf->nrunes;
- if(m > 32000) { /* tmprstr stores len in a short */
+ if(m > 32000) { /* tmprstr stores len in a int16_t */
m = 32000;
dprint("?warning: snarf buffer truncated\n");
}
@@ -516,7 +516,7 @@ snarf(File *f, Posn p1, Posn p2, Buffer *buf, int emptyok)
int
inshort(void)
{
- ushort n;
+ uint16_t n;
n = inp[0] | (inp[1]<<8);
inp += 2;
(DIR) diff --git a/sam/multi.c b/sam/multi.c
@@ -4,7 +4,7 @@
#include <libgen.h>
List file;
-ushort tag;
+uint16_t tag;
File *
newfile(void)
(DIR) diff --git a/sam/parse.h b/sam/parse.h
@@ -25,9 +25,9 @@ struct Cmd
Addr *addr; /* address for m, t */
} g;
Cmd *next; /* pointer to next element in {} */
- short num;
- ushort flag; /* whatever */
- ushort cmdc; /* command character; 'x' etc. */
+ int16_t num;
+ uint16_t flag; /* whatever */
+ uint16_t cmdc; /* command character; 'x' etc. */
};
#define ccmd g.cmd
@@ -35,7 +35,7 @@ struct Cmd
#define caddr g.addr
extern struct cmdtab{
- ushort cmdc; /* command character */
+ uint16_t cmdc; /* command character */
uchar text; /* takes a textual argument? */
uchar regexp; /* takes a regular expression? */
uchar addr; /* takes an address (m or t)? */
(DIR) diff --git a/sam/sam.h b/sam/sam.h
@@ -21,7 +21,7 @@
#define STRSIZE (2*BLOCKSIZE)
typedef int64_t Posn; /* file position or address */
-typedef ushort Mod; /* modification number */
+typedef uint16_t Mod; /* modification number */
typedef struct Address Address;
typedef struct Block Block;
@@ -85,7 +85,7 @@ struct List /* code depends on a int64_t being able to hold a pointer */
/*
* Block must fit in a int64_t because the list routines manage arrays of
* blocks. Two problems: some machines (e.g. Cray) can't pull this off
- * -- on them, use bitfields -- and the ushort bnum limits temp file sizes
+ * -- on them, use bitfields -- and the uint16_t bnum limits temp file sizes
* to about 200 megabytes. Advantages: small, simple code and small
* memory overhead. If you really want to edit huge files, making BLOCKSIZE
* bigger is the easiest way.
@@ -93,19 +93,19 @@ struct List /* code depends on a int64_t being able to hold a pointer */
* The necessary conditions are even stronger:
* sizeof(struct Block)==sizeof(int64_t)
* && the first 32 bits must hold bnum and nrunes.
-* When sizeof(ushort)+sizeof(short) < sizeof(int64_t),
+* When sizeof(uint16_t)+sizeof(int16_t) < sizeof(int64_t),
* add padding at the beginning on a little endian and at
* the end on a big endian, as shown below for the DEC Alpha.
*/
struct Block
{
#if USE64BITS == 1
- char pad[sizeof(int64_t)-sizeof(ushort)-sizeof(short)];
+ char pad[sizeof(int64_t)-sizeof(uint16_t)-sizeof(int16_t)];
#endif
- ushort bnum; /* absolute number on disk */
- short nrunes; /* runes stored in this block */
+ uint16_t bnum; /* absolute number on disk */
+ int16_t nrunes; /* runes stored in this block */
#if USE64BITS == 2
- char pad[sizeof(int64_t)-sizeof(ushort)-sizeof(short)];
+ char pad[sizeof(int64_t)-sizeof(uint16_t)-sizeof(int16_t)];
#endif
};
@@ -125,8 +125,8 @@ struct Disc
struct String
{
- short n;
- short size;
+ int16_t n;
+ int16_t size;
Rune *s;
};
@@ -156,7 +156,7 @@ struct File
Range mark; /* tagged spot in text (don't confuse with Mark) */
List *rasp; /* map of what terminal's got */
String name; /* file name */
- short tag; /* for communicating with terminal */
+ int16_t tag; /* for communicating with terminal */
char state; /* Clean, Dirty, Unread, or Readerr*/
char closeok; /* ok to close file? */
char deleted; /* delete at completion of command */
@@ -180,7 +180,7 @@ struct Mark
Range dot;
Range mark;
Mod m;
- short s1;
+ int16_t s1;
};
/*
@@ -191,18 +191,18 @@ union Hdr
{
struct _csl
{
- short c;
- short s;
+ int16_t c;
+ int16_t s;
int64_t l;
}csl;
struct _cs
{
- short c;
- short s;
+ int16_t c;
+ int16_t s;
}cs;
struct _cll
{
- short c;
+ int16_t c;
int64_t l;
int64_t l1;
}cll;
(DIR) diff --git a/samterm/menu.c b/samterm/menu.c
@@ -8,7 +8,7 @@
uchar *name[MAXFILES]; /* first byte is ' ' or '\'': modified state */
Text *text[MAXFILES]; /* pointer to Text associated with file */
-ushort tag[MAXFILES]; /* text[i].tag, even if text[i] not defined */
+uint16_t tag[MAXFILES]; /* text[i].tag, even if text[i] not defined */
int nname;
int mw;
(DIR) diff --git a/samterm/mesg.c b/samterm/mesg.c
@@ -10,11 +10,11 @@
extern char *exname;
extern Flayer *flast;
-#define HSIZE 3 /* Type + short count */
+#define HSIZE 3 /* Type + int16_t count */
Header h;
uchar indata[DATASIZE+1]; /* room for NUL */
uchar outdata[DATASIZE];
-short outcount;
+int16_t outcount;
int hversion;
void inmesg(Hmesg, int);
(DIR) diff --git a/samterm/samterm.h b/samterm/samterm.h
@@ -56,14 +56,14 @@ struct Rasp
Section *sect;
};
-#define Untagged ((ushort)65535)
+#define Untagged ((uint16_t)65535)
struct Text
{
Rasp rasp;
- short nwin;
- short front; /* input window */
- ushort tag;
+ int16_t nwin;
+ int16_t front; /* input window */
+ uint16_t tag;
char lock;
Flayer l[NL]; /* screen storage */
};
@@ -80,7 +80,7 @@ enum Resource
extern Text *text[];
extern uchar *name[];
-extern ushort tag[];
+extern uint16_t tag[];
extern int nname;
extern unsigned int cursor;
extern Flayer *which;