From d8a4d498a6a0d1d34e25b6838b6450bd7d3e646f Mon Sep 17 00:00:00 2001
From: dos-reis <gdr@axiomatics.org>
Date: Thu, 22 May 2008 15:25:13 +0000
Subject: Avoid numeric constants macros.

---
 src/hyper/Makefile.in |   5 +-
 src/hyper/htadd.c     |   4 +-
 src/hyper/token.h     | 370 +++++++++++++++++++++++++-------------------------
 3 files changed, 191 insertions(+), 188 deletions(-)

(limited to 'src/hyper')

diff --git a/src/hyper/Makefile.in b/src/hyper/Makefile.in
index 84838d31..474951eb 100644
--- a/src/hyper/Makefile.in
+++ b/src/hyper/Makefile.in
@@ -30,7 +30,10 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-bin_PROGRAMS = htadd$(EXEEXT) hthits$(EXEEXT) ex2ht$(EXEEXT)
+bin_PROGRAMS = htadd$(EXEEXT) ex2ht$(EXEEXT)
+ifeq ($(strip $(openaxiom_host_has_regex)),yes)
+bin_PROGRAMS += hthits$(EXEEXT)
+endif
 ifeq ($(strip $(axiom_use_x)),yes)
 bin_PROGRAMS += hypertex$(EXEEXT) spadbuf$(EXEEXT)
 endif
diff --git a/src/hyper/htadd.c b/src/hyper/htadd.c
index c1f8af14..533824b5 100644
--- a/src/hyper/htadd.c
+++ b/src/hyper/htadd.c
@@ -39,10 +39,12 @@
 #define _HTADD_C
 #include "openaxiom-c-macros.h"
 
-#include <sys/stat.h>
 #include <errno.h>
 #include <setjmp.h>
 #include <stdlib.h>
+#ifndef __MINGW32__
+#  include <sys/stat.h>
+#endif
 
 #include "cfuns.h"
 #include "hash.h"
diff --git a/src/hyper/token.h b/src/hyper/token.h
index 24a3c3f3..78d8dafb 100644
--- a/src/hyper/token.h
+++ b/src/hyper/token.h
@@ -57,203 +57,201 @@ typedef struct Token {
 /*
     User tokens. ie, these can be found on a page
 */
-
-#define Word                  1
-#define Page                  2
-#define Lispcommandquit       3
-#define BoldFace              4
-#define Link                  5
-#define Downlink              6
-#define Beginscroll           7
-#define Spadcommand           8
-#define NoLines               9
-#define Env                  10
-#define Par                  11
-#define Center               12
-#define Begin                13
-#define Beginitems           14
-#define Item                 15
-#define Table                16
-#define Box                  17
-#define Tab                  18
-#define Space                19
-#define Indent               20
-#define Horizontalline       21
-#define Newline              22
-#define Enditems             23
-#define Returnbutton         24
-#define Memolink             25
-#define Upbutton             26
-#define Endscroll            27
-#define Thispage             28
-#define Returnto             29
-#define Free                 30
-#define Bound                31
-#define Lisplink             32
-#define Unixlink             33
-#define Mbox                 34
-#define Inputstring          35
-#define StringValue          36
-#define Spadlink             37
-#define Inputbitmap          38
-#define Inputpixmap          39
-#define Unixcommand          40
-#define Emphasize            41
-#define Lispcommand          42
-#define LispMemoLink         43
-#define LispDownLink         44
-#define Spadcall             45
-#define Spadcallquit         46
-#define Spaddownlink         47
-#define Spadmemolink         48
-#define Qspadcall            49
-#define Qspadcallquit        50
-#define SimpleBox            51
-#define Radioboxes           52
-#define BoxValue             53
-#define VSpace               54
-#define HSpace               55
-#define NewCommand           56
-#define WindowId             57
-#define Beep                 58
-#define Quitbutton           59
-#define Begintitems          60
-#define Titem                61
-#define End                  62
-#define It                   63
-#define Sl                   64
-#define Tt                   65
-#define Rm                   66
-#define Ifcond               67
-#define Else                 68
-#define Fi                   69
-#define Newcond              70
-#define Setcond              71
-#define Button               72
-#define Windowlink           73
-#define Haslisp              74
-#define Hasup                75
-#define Hasreturn            76
-#define Hasreturnto          77
-#define Lastwindow           78
-#define Endtitems            79
-#define Lispwindowlink       80
-#define Beginpile            81
-#define Endpile              82
-#define Nextline             83
-#define Pastebutton          84
-#define Color                85
-#define Helppage             86
-#define Patch                87
-#define Radiobox             88
-#define ifrecond             89
-#define Math                 90
-#define Mitem                91
-#define Pagename             92
-#define Examplenumber        93
-#define Replacepage          94
-#define Inputimage           95
-#define Spadgraph            96
-#define Indentrel            97
-#define Controlbitmap        98
-
-#define NumberUserTokens     98
-
-
-extern char *token_table[];
-
-
-/* places from which input may be read */
-#define FromFile        1
-#define FromString      2
-#define FromSpadSocket  3
-#define FromUnixFD      4
-
-extern FILE *unixfd;
+typedef enum openaxiom_token_kind {
+  Word = 1,
+  Page = 2,
+  Lispcommandquit = 3,
+  BoldFace = 4,
+  Link = 5,
+  Downlink = 6,
+  Beginscroll = 7,
+  Spadcommand = 8,
+  NoLines = 9,
+  Env = 10,
+  Par = 11,
+  Center = 12,
+  Begin = 13,
+  Beginitems = 14,
+  Item = 15,
+  Table = 16,
+  Box = 17,
+  Tab = 18,
+  Space = 19,
+  Indent = 20,
+  Horizontalline = 21,
+  Newline = 22,
+  Enditems = 23,
+  Returnbutton = 24,
+  Memolink = 25,
+  Upbutton = 26,
+  Endscroll = 27,
+  Thispage = 28,
+  Returnto = 29,
+  Free = 30,
+  Bound = 31,
+  Lisplink = 32,
+  Unixlink = 33,
+  Mbox = 34,
+  Inputstring = 35,
+  StringValue = 36,
+  Spadlink = 37,
+  Inputbitmap = 38,
+  Inputpixmap = 39,
+  Unixcommand = 40,
+  Emphasize = 41,
+  Lispcommand = 42,
+  LispMemoLink = 43,
+  LispDownLink = 44,
+  Spadcall = 45,
+  Spadcallquit = 46,
+  Spaddownlink = 47,
+  Spadmemolink = 48,
+  Qspadcall = 49,
+  Qspadcallquit = 50,
+  SimpleBox = 51,
+  Radioboxes = 52,
+  BoxValue = 53,
+  VSpace = 54,
+  HSpace = 55,
+  NewCommand = 56,
+  WindowId = 57,
+  Beep = 58,
+  Quitbutton = 59,
+  Begintitems = 60,
+  Titem = 61,
+  End = 62,
+  It = 63,
+  Sl = 64,
+  Tt = 65,
+  Rm = 66,
+  Ifcond = 67,
+  Else = 68,
+  Fi = 69,
+  Newcond = 70,
+  Setcond = 71,
+  Button = 72,
+  Windowlink = 73,
+  Haslisp = 74,
+  Hasup = 75,
+  Hasreturn = 76,
+  Hasreturnto = 77,
+  Lastwindow = 78,
+  Endtitems = 79,
+  Lispwindowlink = 80,
+  Beginpile = 81,
+  Endpile = 82,
+  Nextline = 83,
+  Pastebutton = 84,
+  Color = 85,
+  Helppage = 86,
+  Patch = 87,
+  Radiobox = 88,
+  ifrecond = 89,
+  Math = 90,
+  Mitem = 91,
+  Pagename = 92,
+  Examplenumber = 93,
+  Replacepage = 94,
+  Inputimage = 95,
+  Spadgraph = 96,
+  Indentrel = 97,
+  Controlbitmap = 98,
+  NumberUserTokens = 98,
 
 /*
  * Here are the system tokens. These are used internally to help
  * with parsing and displaying of text
  */
-
-#define SystemTokens   1001
-#define Lbrace         1001
-#define Rbrace         1002
-#define Macro          1003
-#define Group          1004
-#define Scrollbar      1005
-#define Pound          1006
-#define Lsquarebrace   1007
-#define Rsquarebrace   1008
-#define Punctuation    1009
-#define Dash           1010
-#define Tableitem      1011
-#define Scrollingnode  1012
-#define Headernode     1013
-#define Footernode     1014
-#define Verbatim       1015
-#define Scroll         1016
-#define Dollar         1017
-#define Percent        1018
-#define Carrot         1019
-#define Underscore     1020
-#define Tilde          1021
-#define Cond           1022
-#define Noop           1023
-#define Description    1024
-#define Icorrection    1025
-#define Boxcond        1026
-#define Unkeyword      1027
-#define Titlenode      1028
-#define Paste          1029
-#define Spadsrc        1030
-#define Helpbutton     1031
-#define Spadsrctxt     1032
-
-
+  SystemTokens = 1001,
+  Lbrace = 1001,
+  Rbrace = 1002,
+  Macro = 1003,
+  Group = 1004,
+  Scrollbar = 1005,
+  Pound = 1006,
+  Lsquarebrace = 1007,
+  Rsquarebrace = 1008,
+  Punctuation = 1009,
+  Dash = 1010,
+  Tableitem = 1011,
+  Scrollingnode = 1012,
+  Headernode = 1013,
+  Footernode = 1014,
+  Verbatim  = 1015,
+  Scroll = 1016,
+  Dollar = 1017,
+  Percent = 1018,
+  Carrot = 1019,
+  Underscore = 1020,
+  Tilde = 1021,
+  Cond =  1022,
+  Noop = 1023,
+  Description = 1024,
+  Icorrection = 1025,
+  Boxcond = 1026,
+  Unkeyword = 1027,
+  Titlenode = 1028,
+  Paste = 1029,
+  Spadsrc = 1030,
+  Helpbutton = 1031,
+  Spadsrctxt = 1032,
 /*
  * Here are the tokens used to mark the end to some sort of group of
  * tokens. ie, the tokens found in a centerline command
  */
+  Endtokens = 2000,
+  End1 = 2001,
+  End2 = 2002,
+  Endbutton = 2003,
+  Endlink = 2004,
+  Endheader = 2005,
+  Endfooter = 2006,
+  Endscrolling = 2007,
+  Endgroup = 2008,
+  Endarg = 2009,
+  Endbox = 2010,
+  Endmbox = 2011,
+  Endspadcommand = 2012,
+  Endpix = 2013,
+  Endmacro = 2014,
+  Endparameter = 2015,
+  Endtable = 2016,
+  Endtableitem = 2017,
+  End3 = 2018,
+  Endif = 2019,
+  Enddescription = 2020
+  Endinputbox = 2021,
+  Endtitle = 2022,
+  Endpastebutton = 2023,
+
+  Endtypes = 3000,
+  Endpage = 3002,
+  EndScroll =  3007,        /* had to use a S because Endscroll is
+			       already a keyword      */
+
+  Endcenter = 3012,
+  EndItems = 3014,        /* Same thing here as EndScroll except
+			     with the i          */
+  EndTitems = 3060,        /* Ibid for the T          */
+  Endpatch = 3087,
+  Endverbatim = 4015,
+  Endmath = 4016,
+  Endpaste = 4029,
+  Endspadsrc = 4030
+} openaxiom_token_kind;
 
-#define Endtokens      2000
-#define End1           2001
-#define End2           2002
-#define Endbutton      2003
-#define Endlink        2004
-#define Endheader      2005
-#define Endfooter      2006
-#define Endscrolling   2007
-#define Endgroup       2008
-#define Endarg         2009
-#define Endbox         2010
-#define Endmbox        2011
-#define Endspadcommand 2012
-#define Endpix         2013
-#define Endmacro       2014
-#define Endparameter   2015
-#define Endtable       2016
-#define Endtableitem   2017
-#define End3           2018
-#define Endif          2019
-#define Enddescription 2020
-#define Endinputbox    2021
-#define Endtitle       2022
-#define Endpastebutton 2023
 
-#define Endtypes       3000
-#define Endpage        3002
-#define EndScroll      3007        /* had to use a S because Endscroll is
-                                       already a keyword      */
+extern char *token_table[];
+
 
-#define Endcenter      3012
-#define EndItems       3014        /* Same thing here as EndScroll except
-                                          with the i          */
-#define EndTitems      3060        /* Ibid for the T          */
-#define Endpatch       3087
-#define Endverbatim    4015
-#define Endmath        4016
-#define Endpaste       4029
-#define Endspadsrc     4030
+/* places from which input may be read */
+typedef enum openaxiom_input_kind {
+  FromFile = 1,
+  FromString = 2,
+  FromSpadSocket = 3,
+  FromUnixFD = 4
+} openaxiom_input_kind;
+
+extern FILE *unixfd;
 
 #endif
-- 
cgit v1.2.3