Partially ANSIfy C, fix compiler warnings.
authorEric S. Raymond <esr@thyrsus.com>
Thu, 18 May 2017 12:55:38 +0000 (08:55 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Thu, 18 May 2017 12:55:38 +0000 (08:55 -0400)
actions1.c
actions2.c
datime.c
funcs.h
main.c
main.h
misc.c
score.c

index 464faffb03168701bdd16fa2ff66f2791d672463..74598b0aec172adafb4ce2ba3a659ffac6793cba 100644 (file)
@@ -1,3 +1,4 @@
+#include <stdlib.h>
 #include "misc.h"
 #include "main.h"
 #include "share.h"
@@ -6,8 +7,6 @@
 #define TRUE  (0==0)
 #define FALSE (0!=0)
 
-extern carry(), discard(long), attack(), throw(), feed(), fill();
-
 /* This stuff was broken off as part of an effort to get the main program
  * to compile without running out of memory.  We're called with a number
  * that says what label the caller wanted to "goto", and we return a
index 98be045e69fa43f0276adde697bc3e5dad3e5002..7d931cc054fa6e413d78d1851a9fc3c81233a708 100644 (file)
@@ -10,7 +10,7 @@
  *  TAKE ONE WITHOUT THE OTHER).  LIQUIDS ALSO SPECIAL, SINCE THEY DEPEND ON
  *  STATUS OF BOTTLE.  ALSO VARIOUS SIDE EFFECTS, ETC. */
 
-carry() {
+int carry() {
        if(TOTING(OBJ)) return(2011);
        SPK=25;
        if(OBJ == PLANT && PROP[PLANT] <= 0)SPK=115;
@@ -60,7 +60,7 @@ L9015:        SPK=238;
  *  BIRD (MIGHT ATTACK SNAKE OR DRAGON) AND CAGE (MIGHT CONTAIN BIRD) AND VASE.
  *  DROP COINS AT VENDING MACHINE FOR EXTRA BATTERIES. */
 
-discard(just_do_it)long just_do_it; {
+int discard(just_do_it)long just_do_it; {
        if(just_do_it) goto L9021;
        if(TOTING(ROD2) && OBJ == ROD && !TOTING(ROD))OBJ=ROD2;
        if(!TOTING(OBJ)) return(2011);
@@ -134,7 +134,7 @@ L9028:      PROP[VASE]=2;
  *  OBJECTS FALL INTO TWO CATEGORIES: ENEMIES (SNAKE, DWARF, ETC.)  AND OTHERS
  *  (BIRD, CLAM, MACHINE).  AMBIGUOUS IF 2 ENEMIES, OR NO ENEMIES BUT 2 OTHERS. */
 
-attack() {
+int attack() {
        I=ATDWRF(LOC);
        if(OBJ != 0) goto L9124;
        if(I > 0)OBJ=DWARF;
@@ -217,7 +217,7 @@ L9129:      /*etc*/ ;
  *  AND IF DWARF IS PRESENT THEN ONE MIGHT BE KILLED.  (ONLY WAY TO DO SO!)
  *  AXE ALSO SPECIAL FOR DRAGON, BEAR, AND TROLL.  TREASURES SPECIAL FOR TROLL. */
 
-throw() {
+int throw() {
        if(TOTING(ROD2) && OBJ == ROD && !TOTING(ROD))OBJ=ROD2;
        if(!TOTING(OBJ)) return(2011);
        if(OBJ >= 50 && OBJ <= MAXTRS && AT(TROLL)) goto L9178;
@@ -273,7 +273,7 @@ L9178:      SPK=159;
 /*  FEED.  IF BIRD, NO SEED.  SNAKE, DRAGON, TROLL: QUIP.  IF DWARF, MAKE HIM
  *  MAD.  BEAR, SPECIAL. */
 
-feed() {
+int feed() {
        if(OBJ != BIRD) goto L9212;
        SPK=100;
         return(2011);
@@ -315,7 +315,7 @@ L9216:      SPK=14;
 
 /*  FILL.  BOTTLE OR URN MUST BE EMPTY, AND LIQUID AVAILABLE.  (VASE IS NASTY.) */
 
-fill() {
+int fill() {
        if(OBJ == VASE) goto L9222;
        if(OBJ == URN) goto L9224;
        if(OBJ != 0 && OBJ != BOTTLE) return(2011);
index 0fa30ded2b932a2bf82645500ebfcb8d19e9f75b..b6a6b65a0cf9ff96bd7b8636e98abd18cd66d245 100644 (file)
--- a/datime.c
+++ b/datime.c
@@ -41,7 +41,7 @@ fDATIME(X,Y)long *X, *Y; {
 #ifndef _TIME_
 #include "sys/time.h"
 
-fDATIME(X,Y)long *X, *Y; {
+void fDATIME(X,Y)long *X, *Y; {
        struct timeval now;
        gettimeofday(&now, 0);
        *X = now.tv_sec;
diff --git a/funcs.h b/funcs.h
index 0daecee657f782889b6bb59788b16c609f57baf4..b64bfe2ea67cf4a3a01c8d0d3ab1cb50406a9a05 100644 (file)
--- a/funcs.h
+++ b/funcs.h
@@ -35,6 +35,9 @@
 #define OUTSID(LOC)    ((LOC) <= 8 || FOREST(LOC) || (LOC) == PLAC[SAPPH] || (LOC) == 180 || (LOC) == 182)
 #define INDEEP(LOC)    ((LOC) >= 15 && !OUTSID(LOC) && (LOC) != 179)
 
+extern int carry(void), discard(long), attack(void), throw(void), feed(void), fill(void);
+void score(long);
+
 
 
 
diff --git a/main.c b/main.c
index 0f11fd4e0b2c084157c9d1354999ef377cedac48..11e940acdbd59ebdb11d0cf002f2dbe72624ced9 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 #include <stdio.h>
+#include "main.h"
 
 #include "misc.h"
 #ifdef __MSDOS__
@@ -8,12 +9,13 @@
 
 #define TRUE  (0==0)
 #define FALSE (0!=0)
+
 long ABB[186], ATAB[331], ATLOC[186], BLKLIN = TRUE, DFLAG,
                DLOC[7], FIXED[101], HOLDNG,
                KTAB[331], *LINES, LINK[201], LNLENG, LNPOSN,
                PARMS[26], PLACE[101], PTEXT[101], RTEXT[278],
                SETUP = 0, TABSIZ = 330;
-char INLINE[101], MAP1[129], MAP2[129];
+signed char INLINE[LINESIZE], MAP1[129], MAP2[129];
 
 long ABBNUM, ACTSPK[36], AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BONUS,
                 BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST, CHLOC, CHLOC2,
diff --git a/main.h b/main.h
index 575ee97a5499a8e9c75591d5e730a6fcd351cf8c..3de002ec753bb7f8a80d0c6127918850e3e920a5 100644 (file)
--- a/main.h
+++ b/main.h
@@ -1,4 +1,6 @@
+#define LINESIZE       101
+
 extern long ABB[], ATAB[], ATLOC[], BLKLIN, DFLAG, DLOC[], FIXED[], HOLDNG,
                KTAB[], *LINES, LINK[], LNLENG, LNPOSN,
                PARMS[], PLACE[], PTEXT[], RTEXT[], TABSIZ;
-extern signed char INLINE[], MAP1[], MAP2[];
+extern signed char INLINE[LINESIZE], MAP1[], MAP2[];
diff --git a/misc.c b/misc.c
index e3e8320b5e4c6d67f7dbcd6b72ea69c476911f6f..626bd40d926b8f5b3a0716a366539b80332f6500 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,10 +1,15 @@
+#include <stdlib.h>
+#include <stdio.h>
 #include "main.h"
 #include "misc.h"
-#include <stdio.h>
+#include "funcs.h"
 
 #define TRUE  (0==0)
 #define FALSE (0!=0)
 
+/* hack to ignore GCC Unused Result */
+#define IGNORE(r) do{if(r){}}while(0)
+
 /*  I/O ROUTINES (SPEAK, PSPEAK, RSPEAK, SETPRM, GETIN, YES) */
 
 #undef SPEAK
@@ -839,7 +844,7 @@ void fBUG(NUM)long NUM; {
  *     28      INVALID MONTH RETURNED BY DATE FUNCTION
  *     29      TOO MANY PARAMETERS GIVEN TO SETPRM */
 
-       printf("Fatal error %d.  See source code for interpretation.\n",
+       printf("Fatal error %ld.  See source code for interpretation.\n",
           NUM);
        exit(FALSE);
 }
@@ -888,7 +893,7 @@ long I, VAL; static FILE *OPENED = NULL;
        if(MAP2[1] == 0)MPINIT();
 
        if(FIL) goto L15;
-       gets(INLINE+1);
+       IGNORE(fgets(INLINE+1, sizeof(INLINE)-1, stdin));
        if(feof(stdin)) score(1);
         goto L20;
 
@@ -900,7 +905,7 @@ L15:        if(!OPENED){
                OPENED=fopen("adventure.text","r" /* NOT binary */);
                if(!OPENED){printf("Can't read adventure.text!\n"); exit(FALSE);}
                }
-       fgets(INLINE+1,100,OPENED);
+        IGNORE(fgets(INLINE+1,100,OPENED));
 
 L20:   LNLENG=0;
        /* 25 */ for (I=1; I<=100 && INLINE[I]!=0; I++) {
@@ -1002,12 +1007,12 @@ L10:    fclose(F);
        return;
 
 L20:   printf("\nFile name: ");
-       gets(NAME);
+       IGNORE(fgets(NAME, sizeof(NAME), stdin));
        F=fopen(NAME,(IN ? READ_MODE : WRITE_MODE));
        if(F == NULL) {printf("Can't open file, try again.\n"); goto L20;}
        return;
 
-L30:   if(IN)fread(ARR,4,250,F);
+L30:   if(IN)IGNORE(fread(ARR,4,250,F));
        if(!IN)fwrite(ARR,4,250,F);
        return;
 
diff --git a/score.c b/score.c
index acda23f8f6d32da7a9a7cb12b8b77e922871ad87..5caef0d7a994e260a9bc33814d3cb7187aeb9926 100644 (file)
--- a/score.c
+++ b/score.c
@@ -1,3 +1,4 @@
+#include <stdlib.h>
 #include "misc.h"
 #include "main.h"
 #include "share.h"