attempt to avoid questpgr convert woes on cross-compile by making the int sizes fixed
This commit is contained in:
+12
-5
@@ -5,14 +5,21 @@
|
|||||||
#ifndef QTEXT_H
|
#ifndef QTEXT_H
|
||||||
#define QTEXT_H
|
#define QTEXT_H
|
||||||
|
|
||||||
|
#ifndef INTEGER_H
|
||||||
|
#include "integer.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define N_HDR 16 /* Maximum number of categories */
|
#define N_HDR 16 /* Maximum number of categories */
|
||||||
/* (i.e., num roles + 1) */
|
/* (i.e., num roles + 1) */
|
||||||
#define LEN_HDR 3 /* Maximum length of a category name */
|
#define LEN_HDR 3 /* Maximum length of a category name */
|
||||||
|
|
||||||
|
#define QTOFFSIZ int64_t
|
||||||
|
#define QT_PREPROC 64
|
||||||
|
|
||||||
struct qtmsg {
|
struct qtmsg {
|
||||||
int msgnum;
|
int32_t msgnum;
|
||||||
char delivery;
|
char delivery;
|
||||||
long offset, size, summary_size;
|
QTOFFSIZ offset, size, summary_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(MAKEDEFS_C) || defined(MDLIB_C) /***** MAKEDEFS *****/
|
#if defined(MAKEDEFS_C) || defined(MDLIB_C) /***** MAKEDEFS *****/
|
||||||
@@ -20,14 +27,14 @@ struct qtmsg {
|
|||||||
#define N_MSG 100 /* arbitrary */
|
#define N_MSG 100 /* arbitrary */
|
||||||
|
|
||||||
struct msghdr {
|
struct msghdr {
|
||||||
int n_msg;
|
int32_t n_msg;
|
||||||
struct qtmsg qt_msg[N_MSG];
|
struct qtmsg qt_msg[N_MSG];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct qthdr {
|
struct qthdr {
|
||||||
int n_hdr;
|
int32_t n_hdr;
|
||||||
char id[N_HDR][LEN_HDR];
|
char id[N_HDR][LEN_HDR];
|
||||||
long offset[N_HDR];
|
QTOFFSIZ offset[N_HDR];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Error message macros */
|
/* Error message macros */
|
||||||
|
|||||||
+26
-20
@@ -16,21 +16,27 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void NDECL(dump_qtlist);
|
static void NDECL(dump_qtlist);
|
||||||
static void FDECL(Fread, (genericptr_t, int, int, dlb *));
|
static void FDECL(Fread, (genericptr_t, int32_t, int32_t, dlb *));
|
||||||
static struct qtmsg *FDECL(construct_qtlist, (long));
|
static struct qtmsg *FDECL(construct_qtlist, (QTOFFSIZ));
|
||||||
static const char *NDECL(intermed);
|
static const char *NDECL(intermed);
|
||||||
static struct obj *FDECL(find_qarti, (struct obj *));
|
static struct obj *FDECL(find_qarti, (struct obj *));
|
||||||
static const char *NDECL(neminame);
|
static const char *NDECL(neminame);
|
||||||
static const char *NDECL(guardname);
|
static const char *NDECL(guardname);
|
||||||
static const char *NDECL(homebase);
|
static const char *NDECL(homebase);
|
||||||
static void FDECL(qtext_pronoun, (CHAR_P, CHAR_P));
|
static void FDECL(qtext_pronoun, (CHAR_P, CHAR_P));
|
||||||
static struct qtmsg *FDECL(msg_in, (struct qtmsg *, int));
|
static struct qtmsg *FDECL(msg_in, (struct qtmsg *, int32_t));
|
||||||
static void FDECL(convert_arg, (CHAR_P));
|
static void FDECL(convert_arg, (CHAR_P));
|
||||||
static void FDECL(convert_line, (char *,char *));
|
static void FDECL(convert_line, (char *,char *));
|
||||||
static void FDECL(deliver_by_pline, (struct qtmsg *));
|
static void FDECL(deliver_by_pline, (struct qtmsg *));
|
||||||
static void FDECL(deliver_by_window, (struct qtmsg *, int));
|
static void FDECL(deliver_by_window, (struct qtmsg *, int32_t));
|
||||||
static boolean FDECL(skip_pager, (BOOLEAN_P));
|
static boolean FDECL(skip_pager, (BOOLEAN_P));
|
||||||
|
|
||||||
|
#if (QT_PREPROC == 64) && defined(WIN32)
|
||||||
|
#define LONGCAST (long)
|
||||||
|
#else
|
||||||
|
#define LONGCAST
|
||||||
|
#endif
|
||||||
|
|
||||||
/* dump the character msg list to check appearance;
|
/* dump the character msg list to check appearance;
|
||||||
build with DEBUG enabled and use DEBUGFILES=questpgr.c
|
build with DEBUG enabled and use DEBUGFILES=questpgr.c
|
||||||
in sysconf file or environment */
|
in sysconf file or environment */
|
||||||
@@ -44,7 +50,7 @@ dump_qtlist()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (msg = g.qt_list.chrole; msg->msgnum > 0; msg++) {
|
for (msg = g.qt_list.chrole; msg->msgnum > 0; msg++) {
|
||||||
(void) dlb_fseek(g.msg_file, msg->offset, SEEK_SET);
|
(void) dlb_fseek(g.msg_file, LONGCAST msg->offset, SEEK_SET);
|
||||||
deliver_by_window(msg, NHW_MAP);
|
deliver_by_window(msg, NHW_MAP);
|
||||||
}
|
}
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
@@ -54,7 +60,7 @@ dump_qtlist()
|
|||||||
static void
|
static void
|
||||||
Fread(ptr, size, nitems, stream)
|
Fread(ptr, size, nitems, stream)
|
||||||
genericptr_t ptr;
|
genericptr_t ptr;
|
||||||
int size, nitems;
|
int32_t size, nitems;
|
||||||
dlb *stream;
|
dlb *stream;
|
||||||
{
|
{
|
||||||
int cnt;
|
int cnt;
|
||||||
@@ -67,13 +73,13 @@ dlb *stream;
|
|||||||
|
|
||||||
static struct qtmsg *
|
static struct qtmsg *
|
||||||
construct_qtlist(hdr_offset)
|
construct_qtlist(hdr_offset)
|
||||||
long hdr_offset;
|
QTOFFSIZ hdr_offset;
|
||||||
{
|
{
|
||||||
struct qtmsg *msg_list;
|
struct qtmsg *msg_list;
|
||||||
int n_msgs;
|
int32_t n_msgs;
|
||||||
|
|
||||||
(void) dlb_fseek(g.msg_file, hdr_offset, SEEK_SET);
|
(void) dlb_fseek(g.msg_file, hdr_offset, SEEK_SET);
|
||||||
Fread(&n_msgs, sizeof(int), 1, g.msg_file);
|
Fread(&n_msgs, sizeof(int32_t), 1, g.msg_file);
|
||||||
msg_list = (struct qtmsg *) alloc((unsigned) (n_msgs + 1)
|
msg_list = (struct qtmsg *) alloc((unsigned) (n_msgs + 1)
|
||||||
* sizeof (struct qtmsg));
|
* sizeof (struct qtmsg));
|
||||||
|
|
||||||
@@ -83,16 +89,16 @@ long hdr_offset;
|
|||||||
Fread((genericptr_t) msg_list, n_msgs * sizeof (struct qtmsg), 1,
|
Fread((genericptr_t) msg_list, n_msgs * sizeof (struct qtmsg), 1,
|
||||||
g.msg_file);
|
g.msg_file);
|
||||||
|
|
||||||
msg_list[n_msgs].msgnum = -1;
|
msg_list[n_msgs].msgnum = (int32_t) -1;
|
||||||
return msg_list;
|
return msg_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
load_qtlist()
|
load_qtlist()
|
||||||
{
|
{
|
||||||
int n_classes, i;
|
int32_t n_classes, i;
|
||||||
char qt_classes[N_HDR][LEN_HDR];
|
char qt_classes[N_HDR][LEN_HDR];
|
||||||
long qt_offsets[N_HDR];
|
QTOFFSIZ qt_offsets[N_HDR];
|
||||||
|
|
||||||
g.msg_file = dlb_fopen(QTEXT_FILE, RDBMODE);
|
g.msg_file = dlb_fopen(QTEXT_FILE, RDBMODE);
|
||||||
if (!g.msg_file)
|
if (!g.msg_file)
|
||||||
@@ -103,9 +109,9 @@ load_qtlist()
|
|||||||
* each header.
|
* each header.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Fread(&n_classes, sizeof (int), 1, g.msg_file);
|
Fread(&n_classes, sizeof (int32_t), 1, g.msg_file);
|
||||||
Fread(&qt_classes[0][0], sizeof (char) * LEN_HDR, n_classes, g.msg_file);
|
Fread(&qt_classes[0][0], sizeof (char) * LEN_HDR, n_classes, g.msg_file);
|
||||||
Fread(qt_offsets, sizeof (long), n_classes, g.msg_file);
|
Fread(qt_offsets, sizeof (QTOFFSIZ), n_classes, g.msg_file);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now construct the message lists for quick reference later
|
* Now construct the message lists for quick reference later
|
||||||
@@ -307,7 +313,7 @@ char who, /* 'd' => deity, 'l' => leader, 'n' => nemesis, 'o' => artifact */
|
|||||||
static struct qtmsg *
|
static struct qtmsg *
|
||||||
msg_in(qtm_list, msgnum)
|
msg_in(qtm_list, msgnum)
|
||||||
struct qtmsg *qtm_list;
|
struct qtmsg *qtm_list;
|
||||||
int msgnum;
|
int32_t msgnum;
|
||||||
{
|
{
|
||||||
struct qtmsg *qt_msg;
|
struct qtmsg *qt_msg;
|
||||||
|
|
||||||
@@ -522,9 +528,9 @@ struct qtmsg *qt_msg;
|
|||||||
static void
|
static void
|
||||||
deliver_by_window(qt_msg, how)
|
deliver_by_window(qt_msg, how)
|
||||||
struct qtmsg *qt_msg;
|
struct qtmsg *qt_msg;
|
||||||
int how;
|
int32_t how;
|
||||||
{
|
{
|
||||||
long size;
|
QTOFFSIZ size;
|
||||||
char in_line[BUFSZ], out_line[BUFSZ];
|
char in_line[BUFSZ], out_line[BUFSZ];
|
||||||
boolean qtdump = (how == NHW_MAP);
|
boolean qtdump = (how == NHW_MAP);
|
||||||
winid datawin = create_nhwindow(qtdump ? NHW_TEXT : how);
|
winid datawin = create_nhwindow(qtdump ? NHW_TEXT : how);
|
||||||
@@ -542,7 +548,7 @@ int how;
|
|||||||
putstr(datawin, 0, "");
|
putstr(datawin, 0, "");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
for (size = 0; size < qt_msg->size; size += (long) strlen(in_line)) {
|
for (size = 0; size < qt_msg->size; size += (QTOFFSIZ) strlen(in_line)) {
|
||||||
(void) dlb_fgets(in_line, sizeof in_line, g.msg_file);
|
(void) dlb_fgets(in_line, sizeof in_line, g.msg_file);
|
||||||
convert_line(in_line, out_line);
|
convert_line(in_line, out_line);
|
||||||
putstr(datawin, 0, out_line);
|
putstr(datawin, 0, out_line);
|
||||||
@@ -600,7 +606,7 @@ int msgnum;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
(void) dlb_fseek(g.msg_file, qt_msg->offset, SEEK_SET);
|
(void) dlb_fseek(g.msg_file, LONGCAST qt_msg->offset, SEEK_SET);
|
||||||
if (qt_msg->delivery == 'p')
|
if (qt_msg->delivery == 'p')
|
||||||
deliver_by_pline(qt_msg);
|
deliver_by_pline(qt_msg);
|
||||||
else if (msgnum == 1)
|
else if (msgnum == 1)
|
||||||
@@ -635,7 +641,7 @@ int msgnum;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
(void) dlb_fseek(g.msg_file, qt_msg->offset, SEEK_SET);
|
(void) dlb_fseek(g.msg_file, LONGCAST qt_msg->offset, SEEK_SET);
|
||||||
if (qt_msg->delivery == 'p' && strcmp(windowprocs.name, "X11"))
|
if (qt_msg->delivery == 'p' && strcmp(windowprocs.name, "X11"))
|
||||||
deliver_by_pline(qt_msg);
|
deliver_by_pline(qt_msg);
|
||||||
else
|
else
|
||||||
|
|||||||
+26
-1
@@ -22,6 +22,7 @@
|
|||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "flag.h"
|
#include "flag.h"
|
||||||
#include "dlb.h"
|
#include "dlb.h"
|
||||||
|
#include "integer.h"
|
||||||
|
|
||||||
/* version information */
|
/* version information */
|
||||||
#ifdef SHORT_FILENAMES
|
#ifdef SHORT_FILENAMES
|
||||||
@@ -2088,7 +2089,7 @@ static void
|
|||||||
adjust_qt_hdrs()
|
adjust_qt_hdrs()
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
long count = 0L, hdr_offset = sizeof(int)
|
QTOFFSIZ count = 0L, hdr_offset = sizeof(int)
|
||||||
+ (sizeof(char) * LEN_HDR + sizeof(long))
|
+ (sizeof(char) * LEN_HDR + sizeof(long))
|
||||||
* qt_hdr.n_hdr;
|
* qt_hdr.n_hdr;
|
||||||
|
|
||||||
@@ -2123,7 +2124,15 @@ put_qt_hdrs()
|
|||||||
qt_hdr.n_hdr, ofp);
|
qt_hdr.n_hdr, ofp);
|
||||||
if (debug) {
|
if (debug) {
|
||||||
for (i = 0; i < qt_hdr.n_hdr; i++)
|
for (i = 0; i < qt_hdr.n_hdr; i++)
|
||||||
|
#if (QT_PREPROC == 64)
|
||||||
|
#ifdef WIN32
|
||||||
|
Fprintf(stderr, "%s @ %I64d, ", qt_hdr.id[i], qt_hdr.offset[i]);
|
||||||
|
#else
|
||||||
|
Fprintf(stderr, "%s @ %I64ld, ", qt_hdr.id[i], qt_hdr.offset[i]);
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
Fprintf(stderr, "%s @ %ld, ", qt_hdr.id[i], qt_hdr.offset[i]);
|
Fprintf(stderr, "%s @ %ld, ", qt_hdr.id[i], qt_hdr.offset[i]);
|
||||||
|
#endif
|
||||||
Fprintf(stderr, "\n");
|
Fprintf(stderr, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2142,12 +2151,28 @@ put_qt_hdrs()
|
|||||||
int j;
|
int j;
|
||||||
|
|
||||||
for (j = 0; j < msg_hdr[i].n_msg; j++) {
|
for (j = 0; j < msg_hdr[i].n_msg; j++) {
|
||||||
|
#if (QT_PREPROC == 64)
|
||||||
|
#ifdef WIN32
|
||||||
|
Fprintf(stderr, "msg %d @ %I64d (%I64d)",
|
||||||
|
#else
|
||||||
|
Fprintf(stderr, "msg %d @ %I64ld (%I64ld)",
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
Fprintf(stderr, "msg %d @ %ld (%ld)",
|
Fprintf(stderr, "msg %d @ %ld (%ld)",
|
||||||
|
#endif
|
||||||
msg_hdr[i].qt_msg[j].msgnum,
|
msg_hdr[i].qt_msg[j].msgnum,
|
||||||
msg_hdr[i].qt_msg[j].offset,
|
msg_hdr[i].qt_msg[j].offset,
|
||||||
msg_hdr[i].qt_msg[j].size);
|
msg_hdr[i].qt_msg[j].size);
|
||||||
if (msg_hdr[i].qt_msg[j].summary_size)
|
if (msg_hdr[i].qt_msg[j].summary_size)
|
||||||
|
#if (QT_PREPROC == 64)
|
||||||
|
#ifdef WIN32
|
||||||
|
Fprintf(stderr, " [%I64d]",
|
||||||
|
#else
|
||||||
|
Fprintf(stderr, " [%I64ld]",
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
Fprintf(stderr, " [%ld]",
|
Fprintf(stderr, " [%ld]",
|
||||||
|
#endif
|
||||||
msg_hdr[i].qt_msg[j].summary_size);
|
msg_hdr[i].qt_msg[j].summary_size);
|
||||||
Fprintf(stderr, "\n");
|
Fprintf(stderr, "\n");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user