mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-04-12 18:40:23 +08:00
Use the compiler-provided booleans if available, otherwise emulate
Both C and C++ have "bool", "true" and "false" in lower case; C requires <stdbool.h> for this, in C++ it is an inherent type built into the compiler. Use those instead of the old macros; emulate with a simple typedef enum if unavailable.
This commit is contained in:
parent
be1b83d24a
commit
6867acc18e
18
assemble.c
18
assemble.c
@ -416,7 +416,7 @@ int32_t assemble(int32_t segment, int32_t offset, int bits, uint32_t cp,
|
||||
/* Check to see if we need an address-size prefix */
|
||||
add_asp(instruction, bits);
|
||||
|
||||
size_prob = FALSE;
|
||||
size_prob = false;
|
||||
|
||||
for (temp = nasm_instructions[instruction->opcode]; temp->opcode != -1; temp++){
|
||||
int m = matches(temp, instruction, bits);
|
||||
@ -1827,7 +1827,7 @@ static int matches(const struct itemplate *itemp, insn * instruction, int bits)
|
||||
static ea *process_ea(operand * input, ea * output, int addrbits,
|
||||
int rfield, int32_t rflags, int forw_ref)
|
||||
{
|
||||
output->rip = FALSE;
|
||||
output->rip = false;
|
||||
|
||||
/* REX flags for the rfield operand */
|
||||
output->rex |= rexflags(rfield, rflags, REX_R|REX_P|REX_W|REX_H);
|
||||
@ -1847,7 +1847,7 @@ static ea *process_ea(operand * input, ea * output, int addrbits,
|
||||
|
||||
output->rex |= op_rexflags(input, REX_B|REX_P|REX_W|REX_H);
|
||||
|
||||
output->sib_present = FALSE; /* no SIB necessary */
|
||||
output->sib_present = false; /* no SIB necessary */
|
||||
output->bytes = 0; /* no offset necessary either */
|
||||
output->modrm = 0xC0 | ((rfield & 7) << 3) | (i & 7);
|
||||
} else { /* it's a memory reference */
|
||||
@ -1859,16 +1859,16 @@ static ea *process_ea(operand * input, ea * output, int addrbits,
|
||||
|
||||
if (globalbits == 64 && (~input->type & IP_REL)) {
|
||||
int scale, index, base;
|
||||
output->sib_present = TRUE;
|
||||
output->sib_present = true;
|
||||
scale = 0;
|
||||
index = 4;
|
||||
base = 5;
|
||||
output->sib = (scale << 6) | (index << 3) | base;
|
||||
output->bytes = 4;
|
||||
output->modrm = 4 | ((rfield & 7) << 3);
|
||||
output->rip = FALSE;
|
||||
output->rip = false;
|
||||
} else {
|
||||
output->sib_present = FALSE;
|
||||
output->sib_present = false;
|
||||
output->bytes = (addrbits != 16 ? 4 : 2);
|
||||
output->modrm = (addrbits != 16 ? 5 : 6) | ((rfield & 7) << 3);
|
||||
output->rip = globalbits == 64;
|
||||
@ -1984,7 +1984,7 @@ static ea *process_ea(operand * input, ea * output, int addrbits,
|
||||
mod = 2;
|
||||
}
|
||||
|
||||
output->sib_present = FALSE;
|
||||
output->sib_present = false;
|
||||
output->bytes = (bt == -1 || mod == 2 ? 4 : mod);
|
||||
output->modrm = (mod << 6) | ((rfield & 7) << 3) | rm;
|
||||
} else {
|
||||
@ -2032,7 +2032,7 @@ static ea *process_ea(operand * input, ea * output, int addrbits,
|
||||
mod = 2;
|
||||
}
|
||||
|
||||
output->sib_present = TRUE;
|
||||
output->sib_present = true;
|
||||
output->bytes = (bt == -1 || mod == 2 ? 4 : mod);
|
||||
output->modrm = (mod << 6) | ((rfield & 7) << 3) | 4;
|
||||
output->sib = (scale << 6) | (index << 3) | base;
|
||||
@ -2119,7 +2119,7 @@ static ea *process_ea(operand * input, ea * output, int addrbits,
|
||||
else
|
||||
mod = 2;
|
||||
|
||||
output->sib_present = FALSE; /* no SIB - it's 16-bit */
|
||||
output->sib_present = false; /* no SIB - it's 16-bit */
|
||||
output->bytes = mod; /* bytes of offset needed */
|
||||
output->modrm = (mod << 6) | ((rfield & 7) << 3) | rm;
|
||||
}
|
||||
|
@ -60,4 +60,12 @@ int vsnprintf(char *, size_t, const char *, va_list);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __cplusplus /* C++ has false, true, bool as keywords */
|
||||
# ifdef HAVE_STDBOOL_H
|
||||
# include <stdbool.h>
|
||||
# else
|
||||
typedef enum { false, true } bool;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* NASM_COMPILER_H */
|
||||
|
@ -87,6 +87,9 @@ AC_CHECK_HEADERS(inttypes.h, , CFLAGS="$CFLAGS -I\$(top_srcdir)/inttypes")
|
||||
dnl The standard header for str*casecmp is <strings.h>
|
||||
AC_CHECK_HEADERS(strings.h)
|
||||
|
||||
dnl Look for <stdbool.h>
|
||||
AC_CHECK_HEADERS(stdbool.h)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_TYPE_SIZE_T
|
||||
|
96
disasm.c
96
disasm.c
@ -367,7 +367,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
{
|
||||
uint8_t *r = (uint8_t *)(t->code);
|
||||
uint8_t *origdata = data;
|
||||
int a_used = FALSE, o_used = FALSE;
|
||||
bool a_used = false, o_used = false;
|
||||
enum prefixes drep = 0;
|
||||
uint8_t lock = prefix->lock;
|
||||
int osize = prefix->osize;
|
||||
@ -382,7 +382,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
ins->rex = prefix->rex;
|
||||
|
||||
if (t->flags & (segsize == 64 ? IF_NOLONG : IF_LONG))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
if (prefix->rep == 0xF2)
|
||||
drep = P_REPNE;
|
||||
@ -396,7 +396,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
if (c >= 01 && c <= 03) {
|
||||
while (c--)
|
||||
if (*r++ != *data++)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 04) {
|
||||
switch (*data++) {
|
||||
case 0x07:
|
||||
@ -409,7 +409,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
ins->oprs[0].basereg = 3;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
} else if (c == 05) {
|
||||
switch (*data++) {
|
||||
@ -420,7 +420,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
ins->oprs[0].basereg = 5;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
} else if (c == 06) {
|
||||
switch (*data++) {
|
||||
@ -437,7 +437,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
ins->oprs[0].basereg = 3;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
} else if (c == 07) {
|
||||
switch (*data++) {
|
||||
@ -448,12 +448,12 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
ins->oprs[0].basereg = 5;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
} else if (c >= 010 && c <= 013) {
|
||||
int t = *r++, d = *data++;
|
||||
if (d < t || d > t + 7)
|
||||
return FALSE;
|
||||
return false;
|
||||
else {
|
||||
ins->oprs[c - 010].basereg = (d-t)+
|
||||
(ins->rex & REX_B ? 8 : 0);
|
||||
@ -536,7 +536,7 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
data = do_ea(data, modrm, asize, segsize,
|
||||
&ins->oprs[(c >> 3) & 07], ins);
|
||||
if (!data)
|
||||
return FALSE;
|
||||
return false;
|
||||
ins->oprs[c & 07].basereg = ((modrm >> 3)&7)+
|
||||
(ins->rex & REX_R ? 8 : 0);
|
||||
} else if (c >= 0140 && c <= 0143) {
|
||||
@ -550,75 +550,75 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
ins->drexdst = c & 3;
|
||||
} else if (c == 0170) {
|
||||
if (*data++)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0171) {
|
||||
data = do_drex(data, ins);
|
||||
if (!data)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c >= 0200 && c <= 0277) {
|
||||
int modrm = *data++;
|
||||
if (((modrm >> 3) & 07) != (c & 07))
|
||||
return FALSE; /* spare field doesn't match up */
|
||||
return false; /* spare field doesn't match up */
|
||||
data = do_ea(data, modrm, asize, segsize,
|
||||
&ins->oprs[(c >> 3) & 07], ins);
|
||||
if (!data)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0310) {
|
||||
if (asize != 16)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
a_used = TRUE;
|
||||
a_used = true;
|
||||
} else if (c == 0311) {
|
||||
if (asize == 16)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
a_used = TRUE;
|
||||
a_used = true;
|
||||
} else if (c == 0312) {
|
||||
if (asize != segsize)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
a_used = TRUE;
|
||||
a_used = true;
|
||||
} else if (c == 0313) {
|
||||
if (asize != 64)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
a_used = TRUE;
|
||||
a_used = true;
|
||||
} else if (c == 0320) {
|
||||
if (osize != 16)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
o_used = TRUE;
|
||||
o_used = true;
|
||||
} else if (c == 0321) {
|
||||
if (osize != 32)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
o_used = TRUE;
|
||||
o_used = true;
|
||||
} else if (c == 0322) {
|
||||
if (osize != (segsize == 16) ? 16 : 32)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
o_used = TRUE;
|
||||
o_used = true;
|
||||
} else if (c == 0323) {
|
||||
ins->rex |= REX_W; /* 64-bit only instruction */
|
||||
osize = 64;
|
||||
} else if (c == 0324) {
|
||||
if (!(ins->rex & (REX_P|REX_W)) || osize != 64)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0330) {
|
||||
int t = *r++, d = *data++;
|
||||
if (d < t || d > t + 15)
|
||||
return FALSE;
|
||||
return false;
|
||||
else
|
||||
ins->condition = d - t;
|
||||
} else if (c == 0331) {
|
||||
if (prefix->rep)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0332) {
|
||||
if (prefix->rep != 0xF2)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0333) {
|
||||
if (prefix->rep != 0xF3)
|
||||
return FALSE;
|
||||
return false;
|
||||
drep = 0;
|
||||
} else if (c == 0334) {
|
||||
if (lock) {
|
||||
@ -630,31 +630,31 @@ static int matches(const struct itemplate *t, uint8_t *data,
|
||||
drep = P_REPE;
|
||||
} else if (c == 0364) {
|
||||
if (prefix->osp)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0365) {
|
||||
if (prefix->asp)
|
||||
return FALSE;
|
||||
return false;
|
||||
} else if (c == 0366) {
|
||||
if (!prefix->osp)
|
||||
return FALSE;
|
||||
o_used = TRUE;
|
||||
return false;
|
||||
o_used = true;
|
||||
} else if (c == 0367) {
|
||||
if (!prefix->asp)
|
||||
return FALSE;
|
||||
o_used = TRUE;
|
||||
return false;
|
||||
o_used = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* REX cannot be combined with DREX */
|
||||
if ((ins->rex & REX_D) && (prefix->rex))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
/*
|
||||
* Check for unused rep or a/o prefixes.
|
||||
*/
|
||||
for (i = 0; i < t->operands; i++) {
|
||||
if (ins->oprs[i].segment != SEG_RMREG)
|
||||
a_used = TRUE;
|
||||
a_used = true;
|
||||
}
|
||||
|
||||
ins->nprefix = 0;
|
||||
@ -744,7 +744,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
p = (const struct itemplate * const *)ix->p;
|
||||
for (n = ix->n; n; n--, p++) {
|
||||
if ((length = matches(*p, data, &prefix, segsize, &tmp_ins))) {
|
||||
works = TRUE;
|
||||
works = true;
|
||||
/*
|
||||
* Final check to make sure the types of r/m match up.
|
||||
* XXX: Need to make sure this is actually correct.
|
||||
@ -765,7 +765,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
!whichreg((*p)->opd[i],
|
||||
tmp_ins.oprs[i].basereg, tmp_ins.rex))
|
||||
)) {
|
||||
works = FALSE;
|
||||
works = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -850,7 +850,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
slen +=
|
||||
snprintf(output + slen, outbufsize - slen, "%s",
|
||||
insn_names[(*p)->opcode]);
|
||||
colon = FALSE;
|
||||
colon = false;
|
||||
length += data - origdata; /* fix up for prefixes */
|
||||
for (i = 0; i < (*p)->operands; i++) {
|
||||
opflags_t t = (*p)->opd[i];
|
||||
@ -880,9 +880,9 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
}
|
||||
|
||||
if (t & COLON)
|
||||
colon = TRUE;
|
||||
colon = true;
|
||||
else
|
||||
colon = FALSE;
|
||||
colon = false;
|
||||
|
||||
if ((t & (REGISTER | FPUREG)) ||
|
||||
(o->segment & SEG_RMREG)) {
|
||||
@ -934,7 +934,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
16 ? "word " : ""), offs);
|
||||
segover = NULL;
|
||||
} else if (!(REGMEM & ~t)) {
|
||||
int started = FALSE;
|
||||
int started = false;
|
||||
if (t & BITS8)
|
||||
slen +=
|
||||
snprintf(output + slen, outbufsize - slen, "byte ");
|
||||
@ -974,7 +974,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
slen += snprintf(output + slen, outbufsize - slen, "%s",
|
||||
reg_names[(o->basereg -
|
||||
EXPR_REG_START)]);
|
||||
started = TRUE;
|
||||
started = true;
|
||||
}
|
||||
if (o->indexreg != -1) {
|
||||
if (started)
|
||||
@ -986,7 +986,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
|
||||
slen +=
|
||||
snprintf(output + slen, outbufsize - slen, "*%d",
|
||||
o->scale);
|
||||
started = TRUE;
|
||||
started = true;
|
||||
}
|
||||
if (o->segment & SEG_DISP8) {
|
||||
int minus = 0;
|
||||
|
18
eval.c
18
eval.c
@ -223,7 +223,7 @@ static expr *segment_part(expr * e)
|
||||
|
||||
/*
|
||||
* Recursive-descent parser. Called with a single boolean operand,
|
||||
* which is TRUE if the evaluation is critical (i.e. unresolved
|
||||
* which is true if the evaluation is critical (i.e. unresolved
|
||||
* symbols are an error condition). Must update the global `i' to
|
||||
* reflect the token after the parsed string. May return NULL.
|
||||
*
|
||||
@ -357,7 +357,7 @@ static expr *rexp3(int critical)
|
||||
if (!f)
|
||||
return NULL;
|
||||
|
||||
e = add_vectors(e, scalar_mult(f, -1L, FALSE));
|
||||
e = add_vectors(e, scalar_mult(f, -1L, false));
|
||||
|
||||
switch (j) {
|
||||
case TOKEN_EQ:
|
||||
@ -365,9 +365,9 @@ static expr *rexp3(int critical)
|
||||
if (is_unknown(e))
|
||||
v = -1; /* means unknown */
|
||||
else if (!is_really_simple(e) || reloc_value(e) != 0)
|
||||
v = (j == TOKEN_NE); /* unequal, so return TRUE if NE */
|
||||
v = (j == TOKEN_NE); /* unequal, so return true if NE */
|
||||
else
|
||||
v = (j == TOKEN_EQ); /* equal, so return TRUE if EQ */
|
||||
v = (j == TOKEN_EQ); /* equal, so return true if EQ */
|
||||
break;
|
||||
default:
|
||||
if (is_unknown(e))
|
||||
@ -528,7 +528,7 @@ static expr *expr4(int critical)
|
||||
e = add_vectors(e, f);
|
||||
break;
|
||||
case '-':
|
||||
e = add_vectors(e, scalar_mult(f, -1L, FALSE));
|
||||
e = add_vectors(e, scalar_mult(f, -1L, false));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -562,9 +562,9 @@ static expr *expr5(int critical)
|
||||
switch (j) {
|
||||
case '*':
|
||||
if (is_simple(e))
|
||||
e = scalar_mult(f, reloc_value(e), TRUE);
|
||||
e = scalar_mult(f, reloc_value(e), true);
|
||||
else if (is_simple(f))
|
||||
e = scalar_mult(e, reloc_value(f), TRUE);
|
||||
e = scalar_mult(e, reloc_value(f), true);
|
||||
else if (is_just_unknown(e) && is_just_unknown(f))
|
||||
e = unknown_expr();
|
||||
else {
|
||||
@ -673,7 +673,7 @@ static expr *expr6(int critical)
|
||||
e = expr6(critical);
|
||||
if (!e)
|
||||
return NULL;
|
||||
return scalar_mult(e, -1L, FALSE);
|
||||
return scalar_mult(e, -1L, false);
|
||||
|
||||
|
||||
case '+':
|
||||
@ -861,7 +861,7 @@ expr *evaluate(scanner sc, void *scprivate, struct tokenval *tv,
|
||||
if (!f)
|
||||
return NULL;
|
||||
}
|
||||
e = scalar_mult(e, 1L, FALSE); /* strip far-absolute segment part */
|
||||
e = scalar_mult(e, 1L, false); /* strip far-absolute segment part */
|
||||
if (f) {
|
||||
expr *g;
|
||||
if (is_just_unknown(f))
|
||||
|
22
exprlib.c
22
exprlib.c
@ -7,7 +7,7 @@
|
||||
#include "nasm.h"
|
||||
|
||||
/*
|
||||
* Return TRUE if the argument is a simple scalar. (Or a far-
|
||||
* Return true if the argument is a simple scalar. (Or a far-
|
||||
* absolute, which counts.)
|
||||
*/
|
||||
int is_simple(expr * vect)
|
||||
@ -27,7 +27,7 @@ int is_simple(expr * vect)
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if the argument is a simple scalar, _NOT_ a far-
|
||||
* Return true if the argument is a simple scalar, _NOT_ a far-
|
||||
* absolute.
|
||||
*/
|
||||
int is_really_simple(expr * vect)
|
||||
@ -47,29 +47,29 @@ int is_really_simple(expr * vect)
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if the argument is relocatable (i.e. a simple
|
||||
* Return true if the argument is relocatable (i.e. a simple
|
||||
* scalar, plus at most one segment-base, plus possibly a WRT).
|
||||
*/
|
||||
int is_reloc(expr * vect)
|
||||
{
|
||||
while (vect->type && !vect->value) /* skip initial value-0 terms */
|
||||
vect++;
|
||||
if (!vect->type) /* trivially return TRUE if nothing */
|
||||
if (!vect->type) /* trivially return true if nothing */
|
||||
return 1; /* is present apart from value-0s */
|
||||
if (vect->type < EXPR_SIMPLE) /* FALSE if a register is present */
|
||||
if (vect->type < EXPR_SIMPLE) /* false if a register is present */
|
||||
return 0;
|
||||
if (vect->type == EXPR_SIMPLE) { /* skip over a pure number term... */
|
||||
do {
|
||||
vect++;
|
||||
} while (vect->type && !vect->value);
|
||||
if (!vect->type) /* ...returning TRUE if that's all */
|
||||
if (!vect->type) /* ...returning true if that's all */
|
||||
return 1;
|
||||
}
|
||||
if (vect->type == EXPR_WRT) { /* skip over a WRT term... */
|
||||
do {
|
||||
vect++;
|
||||
} while (vect->type && !vect->value);
|
||||
if (!vect->type) /* ...returning TRUE if that's all */
|
||||
if (!vect->type) /* ...returning true if that's all */
|
||||
return 1;
|
||||
}
|
||||
if (vect->value != 0 && vect->value != 1)
|
||||
@ -77,13 +77,13 @@ int is_reloc(expr * vect)
|
||||
do { /* skip over _one_ seg-base term... */
|
||||
vect++;
|
||||
} while (vect->type && !vect->value);
|
||||
if (!vect->type) /* ...returning TRUE if that's all */
|
||||
if (!vect->type) /* ...returning true if that's all */
|
||||
return 1;
|
||||
return 0; /* And return FALSE if there's more */
|
||||
return 0; /* And return false if there's more */
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if the argument contains an `unknown' part.
|
||||
* Return true if the argument contains an `unknown' part.
|
||||
*/
|
||||
int is_unknown(expr * vect)
|
||||
{
|
||||
@ -93,7 +93,7 @@ int is_unknown(expr * vect)
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if the argument contains nothing but an `unknown'
|
||||
* Return true if the argument contains nothing but an `unknown'
|
||||
* part.
|
||||
*/
|
||||
int is_just_unknown(expr * vect)
|
||||
|
15
float.c
15
float.c
@ -18,9 +18,6 @@
|
||||
|
||||
#include "nasm.h"
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define MANT_WORDS 10 /* 112 bits + 48 for accuracy == 160 */
|
||||
#define MANT_DIGITS 49 /* 50 digits don't fit in 160 bits */
|
||||
|
||||
@ -90,7 +87,7 @@ static void ieee_flconvert_hex(char *string, uint16_t *mant,
|
||||
while ((c = *string++) != '\0') {
|
||||
if (c == '.') {
|
||||
if (!seendot)
|
||||
seendot = TRUE;
|
||||
seendot = true;
|
||||
else {
|
||||
error(ERR_NONFATAL,
|
||||
"too many periods in floating-point constant");
|
||||
@ -163,11 +160,11 @@ static void ieee_flconvert(char *string, uint16_t *mant,
|
||||
|
||||
p = digits;
|
||||
tenpwr = 0;
|
||||
started = seendot = FALSE;
|
||||
started = seendot = false;
|
||||
while (*string && *string != 'E' && *string != 'e') {
|
||||
if (*string == '.') {
|
||||
if (!seendot)
|
||||
seendot = TRUE;
|
||||
seendot = true;
|
||||
else {
|
||||
error(ERR_NONFATAL,
|
||||
"too many periods in floating-point constant");
|
||||
@ -178,7 +175,7 @@ static void ieee_flconvert(char *string, uint16_t *mant,
|
||||
if (seendot)
|
||||
tenpwr--;
|
||||
} else {
|
||||
started = TRUE;
|
||||
started = true;
|
||||
if (p < digits + sizeof(digits))
|
||||
*p++ = *string - '0';
|
||||
if (!seendot)
|
||||
@ -210,7 +207,7 @@ static void ieee_flconvert(char *string, uint16_t *mant,
|
||||
*m = 0;
|
||||
m = mant;
|
||||
q = digits;
|
||||
started = FALSE;
|
||||
started = false;
|
||||
twopwr = 0;
|
||||
while (m < mant + MANT_WORDS) {
|
||||
uint16_t carry = 0;
|
||||
@ -229,7 +226,7 @@ static void ieee_flconvert(char *string, uint16_t *mant,
|
||||
*r = i;
|
||||
}
|
||||
if (carry)
|
||||
*m |= bit, started = TRUE;
|
||||
*m |= bit, started = true;
|
||||
if (started) {
|
||||
if (bit == 1)
|
||||
bit = 0x8000, m++;
|
||||
|
8
labels.c
8
labels.c
@ -88,7 +88,7 @@ static char *perm_copy(const char *string);
|
||||
|
||||
static char *prevlabel;
|
||||
|
||||
static int initialized = FALSE;
|
||||
static int initialized = false;
|
||||
|
||||
char lprefix[PREFIX_MAX] = { 0 };
|
||||
char lpostfix[PREFIX_MAX] = { 0 };
|
||||
@ -96,7 +96,7 @@ char lpostfix[PREFIX_MAX] = { 0 };
|
||||
/*
|
||||
* Internal routine: finds the `union label' corresponding to the
|
||||
* given label name. Creates a new one, if it isn't found, and if
|
||||
* `create' is TRUE.
|
||||
* `create' is true.
|
||||
*/
|
||||
static union label *find_label(char *label, int create)
|
||||
{
|
||||
@ -386,7 +386,7 @@ int init_labels(void)
|
||||
|
||||
prevlabel = "";
|
||||
|
||||
initialized = TRUE;
|
||||
initialized = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -395,7 +395,7 @@ void cleanup_labels(void)
|
||||
{
|
||||
union label *lptr, *lhold;
|
||||
|
||||
initialized = FALSE;
|
||||
initialized = false;
|
||||
|
||||
hash_free(ltab);
|
||||
|
||||
|
12
listing.c
12
listing.c
@ -76,7 +76,7 @@ static void list_emit(void)
|
||||
fprintf(listfp, " %s", listline);
|
||||
|
||||
fputc('\n', listfp);
|
||||
listlinep = FALSE;
|
||||
listlinep = false;
|
||||
listdata[0] = '\0';
|
||||
}
|
||||
|
||||
@ -90,13 +90,13 @@ static void list_init(char *fname, efunc error)
|
||||
|
||||
*listline = '\0';
|
||||
listlineno = 0;
|
||||
listp = TRUE;
|
||||
listp = true;
|
||||
listlevel = 0;
|
||||
suppress = 0;
|
||||
mistack = nasm_malloc(sizeof(MacroInhibit));
|
||||
mistack->next = NULL;
|
||||
mistack->level = 0;
|
||||
mistack->inhibiting = TRUE;
|
||||
mistack->inhibiting = true;
|
||||
}
|
||||
|
||||
static void list_cleanup(void)
|
||||
@ -232,7 +232,7 @@ static void list_line(int type, char *line)
|
||||
}
|
||||
}
|
||||
list_emit();
|
||||
listlinep = TRUE;
|
||||
listlinep = true;
|
||||
strncpy(listline, line, LIST_MAX_LEN - 1);
|
||||
listline[LIST_MAX_LEN - 1] = '\0';
|
||||
listlevel_e = listlevel;
|
||||
@ -254,13 +254,13 @@ static void list_uplevel(int type)
|
||||
MacroInhibit *temp = nasm_malloc(sizeof(MacroInhibit));
|
||||
temp->next = mistack;
|
||||
temp->level = listlevel;
|
||||
temp->inhibiting = FALSE;
|
||||
temp->inhibiting = false;
|
||||
mistack = temp;
|
||||
} else if (type == LIST_MACRO_NOLIST) {
|
||||
MacroInhibit *temp = nasm_malloc(sizeof(MacroInhibit));
|
||||
temp->next = mistack;
|
||||
temp->level = listlevel;
|
||||
temp->inhibiting = TRUE;
|
||||
temp->inhibiting = true;
|
||||
mistack = temp;
|
||||
}
|
||||
}
|
||||
|
70
nasm.c
70
nasm.c
@ -48,7 +48,7 @@ static void usage(void);
|
||||
static efunc report_error;
|
||||
|
||||
static int using_debug_info, opt_verbose_info;
|
||||
int tasm_compatible_mode = FALSE;
|
||||
bool tasm_compatible_mode = false;
|
||||
int pass0;
|
||||
int maxbits = 0;
|
||||
int globalrel = 0;
|
||||
@ -94,7 +94,7 @@ static enum op_type operating_mode;
|
||||
* doesn't do anything. Initial defaults are given here.
|
||||
*/
|
||||
static char suppressed[1 + ERR_WARN_MAX] = {
|
||||
0, TRUE, TRUE, TRUE, FALSE, TRUE
|
||||
0, true, true, true, false, true
|
||||
};
|
||||
|
||||
/*
|
||||
@ -159,7 +159,7 @@ static void nasm_fputs(const char *line, FILE * outfile)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
pass0 = 1;
|
||||
want_usage = terminate_after_phase = FALSE;
|
||||
want_usage = terminate_after_phase = false;
|
||||
report_error = report_error_gnu;
|
||||
|
||||
error_file = stderr;
|
||||
@ -235,7 +235,7 @@ int main(int argc, char **argv)
|
||||
} else
|
||||
ofile = NULL;
|
||||
|
||||
location.known = FALSE;
|
||||
location.known = false;
|
||||
|
||||
/* pass = 1; */
|
||||
preproc->reset(inname, 2, report_error, evaluate, &nasmlist);
|
||||
@ -432,7 +432,7 @@ static int process_arg(char *p, char *q)
|
||||
case 'v':
|
||||
case '+':
|
||||
param++;
|
||||
opt_verbose_info = TRUE;
|
||||
opt_verbose_info = true;
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
@ -480,7 +480,7 @@ static int process_arg(char *p, char *q)
|
||||
}
|
||||
break;
|
||||
case 'g':
|
||||
using_debug_info = TRUE;
|
||||
using_debug_info = true;
|
||||
break;
|
||||
case 'h':
|
||||
printf
|
||||
@ -531,7 +531,7 @@ static int process_arg(char *p, char *q)
|
||||
exit(0);
|
||||
break;
|
||||
case 't':
|
||||
tasm_compatible_mode = TRUE;
|
||||
tasm_compatible_mode = true;
|
||||
break;
|
||||
case 'v':
|
||||
{
|
||||
@ -859,8 +859,8 @@ static void assemble_file(char *fname)
|
||||
if (*listname)
|
||||
nasmlist.init(listname, report_error);
|
||||
}
|
||||
in_abs_seg = FALSE;
|
||||
global_offset_changed = FALSE; /* set by redefine_label */
|
||||
in_abs_seg = false;
|
||||
global_offset_changed = false; /* set by redefine_label */
|
||||
location.segment = ofmt->section(NULL, pass2, &sb);
|
||||
globalbits = sb;
|
||||
if (pass > 1) {
|
||||
@ -872,7 +872,7 @@ static void assemble_file(char *fname)
|
||||
preproc->reset(fname, pass1, report_error, evaluate, &nasmlist);
|
||||
globallineno = 0;
|
||||
if (pass == 1)
|
||||
location.known = TRUE;
|
||||
location.known = true;
|
||||
location.offset = offs = GET_CURR_OFFS;
|
||||
|
||||
while ((line = preproc->getline())) {
|
||||
@ -894,7 +894,7 @@ static void assemble_file(char *fname)
|
||||
"segment name `%s' not recognized",
|
||||
value);
|
||||
} else {
|
||||
in_abs_seg = FALSE;
|
||||
in_abs_seg = false;
|
||||
location.segment = seg;
|
||||
}
|
||||
break;
|
||||
@ -911,12 +911,12 @@ static void assemble_file(char *fname)
|
||||
}
|
||||
} else if (pass == 1) { /* pass == 1 */
|
||||
q = value;
|
||||
validid = TRUE;
|
||||
validid = true;
|
||||
if (!isidstart(*q))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
while (*q && *q != ':') {
|
||||
if (!isidchar(*q))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
q++;
|
||||
}
|
||||
if (!validid) {
|
||||
@ -935,7 +935,7 @@ static void assemble_file(char *fname)
|
||||
declare_as_global(value, special,
|
||||
report_error);
|
||||
define_label(value, seg_alloc(), 0L, NULL,
|
||||
FALSE, TRUE, ofmt, report_error);
|
||||
false, true, ofmt, report_error);
|
||||
pass0 = temp;
|
||||
}
|
||||
} /* else pass0 == 1 */
|
||||
@ -956,12 +956,12 @@ static void assemble_file(char *fname)
|
||||
}
|
||||
} else if (pass2 == 1) { /* pass == 1 */
|
||||
q = value;
|
||||
validid = TRUE;
|
||||
validid = true;
|
||||
if (!isidstart(*q))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
while (*q && *q != ':') {
|
||||
if (!isidchar(*q))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
q++;
|
||||
}
|
||||
if (!validid) {
|
||||
@ -982,12 +982,12 @@ static void assemble_file(char *fname)
|
||||
value++; /* skip initial $ if present */
|
||||
if (pass0 == 1) {
|
||||
p = value;
|
||||
validid = TRUE;
|
||||
validid = true;
|
||||
if (!isidstart(*p))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
while (*p && !isspace(*p)) {
|
||||
if (!isidchar(*p))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
p++;
|
||||
}
|
||||
if (!validid) {
|
||||
@ -1054,18 +1054,18 @@ static void assemble_file(char *fname)
|
||||
else
|
||||
report_error(ERR_PANIC, "invalid ABSOLUTE address "
|
||||
"in pass two");
|
||||
in_abs_seg = TRUE;
|
||||
in_abs_seg = true;
|
||||
location.segment = NO_SEG;
|
||||
break;
|
||||
case D_DEBUG: /* [DEBUG] */
|
||||
p = value;
|
||||
q = debugid;
|
||||
validid = TRUE;
|
||||
validid = true;
|
||||
if (!isidstart(*p))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
while (*p && !isspace(*p)) {
|
||||
if (!isidchar(*p))
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
*q++ = *p++;
|
||||
}
|
||||
*q++ = 0;
|
||||
@ -1085,10 +1085,10 @@ static void assemble_file(char *fname)
|
||||
value++;
|
||||
|
||||
if (*value == '+' || *value == '-') {
|
||||
validid = (*value == '-') ? TRUE : FALSE;
|
||||
validid = (*value == '-') ? true : false;
|
||||
value++;
|
||||
} else
|
||||
validid = FALSE;
|
||||
validid = false;
|
||||
|
||||
for (i = 1; i <= ERR_WARN_MAX; i++)
|
||||
if (!nasm_stricmp(value, suppressed_names[i]))
|
||||
@ -1155,7 +1155,7 @@ static void assemble_file(char *fname)
|
||||
|
||||
if (!(optimizing > 0) && pass == 2) {
|
||||
if (forwref != NULL && globallineno == forwref->lineno) {
|
||||
output_ins.forw_ref = TRUE;
|
||||
output_ins.forw_ref = true;
|
||||
do {
|
||||
output_ins.oprs[forwref->operand].opflags |=
|
||||
OPFLAG_FORWARD;
|
||||
@ -1163,7 +1163,7 @@ static void assemble_file(char *fname)
|
||||
} while (forwref != NULL
|
||||
&& forwref->lineno == globallineno);
|
||||
} else
|
||||
output_ins.forw_ref = FALSE;
|
||||
output_ins.forw_ref = false;
|
||||
}
|
||||
|
||||
if (!(optimizing > 0) && output_ins.forw_ref) {
|
||||
@ -1234,7 +1234,7 @@ static void assemble_file(char *fname)
|
||||
def_label(output_ins.label,
|
||||
output_ins.oprs[0].segment,
|
||||
output_ins.oprs[0].offset, NULL,
|
||||
FALSE, isext, ofmt,
|
||||
false, isext, ofmt,
|
||||
report_error);
|
||||
} else if (output_ins.operands == 2
|
||||
&& (output_ins.oprs[0].
|
||||
@ -1253,7 +1253,7 @@ static void assemble_file(char *fname)
|
||||
output_ins.oprs[0].
|
||||
offset | SEG_ABS,
|
||||
output_ins.oprs[1].offset, NULL,
|
||||
FALSE, FALSE, ofmt,
|
||||
false, false, ofmt,
|
||||
report_error);
|
||||
} else
|
||||
report_error(ERR_NONFATAL,
|
||||
@ -1272,7 +1272,7 @@ static void assemble_file(char *fname)
|
||||
define_label(output_ins.label,
|
||||
output_ins.oprs[0].segment,
|
||||
output_ins.oprs[0].offset,
|
||||
NULL, FALSE, FALSE, ofmt,
|
||||
NULL, false, false, ofmt,
|
||||
report_error);
|
||||
} else if (output_ins.operands == 2
|
||||
&& (output_ins.oprs[0].
|
||||
@ -1288,7 +1288,7 @@ static void assemble_file(char *fname)
|
||||
output_ins.oprs[0].
|
||||
offset | SEG_ABS,
|
||||
output_ins.oprs[1].offset,
|
||||
NULL, FALSE, FALSE, ofmt,
|
||||
NULL, false, false, ofmt,
|
||||
report_error);
|
||||
} else
|
||||
report_error(ERR_NONFATAL,
|
||||
@ -1596,7 +1596,7 @@ static void report_error_common(int severity, const char *fmt,
|
||||
fputc('\n', error_file);
|
||||
|
||||
if (severity & ERR_USAGE)
|
||||
want_usage = TRUE;
|
||||
want_usage = true;
|
||||
|
||||
switch (severity & ERR_MASK) {
|
||||
case ERR_WARNING:
|
||||
@ -1605,7 +1605,7 @@ static void report_error_common(int severity, const char *fmt,
|
||||
break;
|
||||
case ERR_NONFATAL:
|
||||
/* hack enables listing(!) on errors */
|
||||
terminate_after_phase = TRUE;
|
||||
terminate_after_phase = true;
|
||||
break;
|
||||
case ERR_FATAL:
|
||||
if (ofile) {
|
||||
|
15
nasm.h
15
nasm.h
@ -19,17 +19,6 @@
|
||||
#include "nasmlib.h"
|
||||
#include "insnsi.h" /* For enum opcode */
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0 /* comes in handy */
|
||||
#endif
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#define NO_SEG -1L /* null segment value */
|
||||
#define SEG_ABS 0x40000000L /* mask for far-absolute segments */
|
||||
|
||||
@ -242,7 +231,7 @@ struct eval_hints {
|
||||
* it will start by calling the scanner.
|
||||
*
|
||||
* If a forward reference happens during evaluation, the evaluator
|
||||
* must set `*fwref' to TRUE if `fwref' is non-NULL.
|
||||
* must set `*fwref' to true if `fwref' is non-NULL.
|
||||
*
|
||||
* `critical' is non-zero if the expression may not contain forward
|
||||
* references. The evaluator will report its own error if this
|
||||
@ -978,7 +967,7 @@ enum special_tokens {
|
||||
|
||||
extern int pass0;
|
||||
|
||||
extern int tasm_compatible_mode;
|
||||
extern bool tasm_compatible_mode;
|
||||
extern int optimizing;
|
||||
extern int globalbits; /* 16, 32 or 64-bit mode */
|
||||
extern int globalrel; /* default to relative addressing? */
|
||||
|
16
nasmlib.c
16
nasmlib.c
@ -202,10 +202,10 @@ int64_t readnum(char *str, int *error)
|
||||
int32_t radix;
|
||||
uint64_t result, checklimit;
|
||||
int digit, last;
|
||||
int warn = FALSE;
|
||||
int warn = false;
|
||||
int sign = 1;
|
||||
|
||||
*error = FALSE;
|
||||
*error = false;
|
||||
|
||||
while (isspace(*r))
|
||||
r++; /* find start of number */
|
||||
@ -249,7 +249,7 @@ int64_t readnum(char *str, int *error)
|
||||
* now.
|
||||
*/
|
||||
if (r >= q) {
|
||||
*error = TRUE;
|
||||
*error = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -274,11 +274,11 @@ int64_t readnum(char *str, int *error)
|
||||
while (*r && r < q) {
|
||||
if (*r < '0' || (*r > '9' && *r < 'A')
|
||||
|| (digit = numvalue(*r)) >= radix) {
|
||||
*error = TRUE;
|
||||
*error = true;
|
||||
return 0;
|
||||
}
|
||||
if (result > checklimit || (result == checklimit && digit >= last)) {
|
||||
warn = TRUE;
|
||||
warn = true;
|
||||
}
|
||||
|
||||
result = radix * result + digit;
|
||||
@ -298,19 +298,19 @@ int64_t readstrnum(char *str, int length, int *warn)
|
||||
int64_t charconst = 0;
|
||||
int i;
|
||||
|
||||
*warn = FALSE;
|
||||
*warn = false;
|
||||
|
||||
str += length;
|
||||
if (globalbits == 64) {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (charconst & 0xFF00000000000000ULL)
|
||||
*warn = TRUE;
|
||||
*warn = true;
|
||||
charconst = (charconst << 8) + (uint8_t)*--str;
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (charconst & 0xFF000000UL)
|
||||
*warn = TRUE;
|
||||
*warn = true;
|
||||
charconst = (charconst << 8) + (uint8_t)*--str;
|
||||
}
|
||||
}
|
||||
|
@ -128,13 +128,13 @@ char *nasm_strsep(char **stringp, const char *delim);
|
||||
|
||||
/*
|
||||
* Convert a string into a number, using NASM number rules. Sets
|
||||
* `*error' to TRUE if an error occurs, and FALSE otherwise.
|
||||
* `*error' to true if an error occurs, and false otherwise.
|
||||
*/
|
||||
int64_t readnum(char *str, int *error);
|
||||
|
||||
/*
|
||||
* Convert a character constant into a number. Sets
|
||||
* `*warn' to TRUE if an overflow occurs, and FALSE otherwise.
|
||||
* `*warn' to true if an overflow occurs, and false otherwise.
|
||||
* str points to and length covers the middle of the string,
|
||||
* without the quotes.
|
||||
*/
|
||||
|
@ -59,9 +59,9 @@ int main(int argc, char **argv)
|
||||
uint32_t nextsync, synclen, initskip = 0L;
|
||||
int lenread;
|
||||
int32_t lendis;
|
||||
int autosync = FALSE;
|
||||
bool autosync = false;
|
||||
int bits = 16, b;
|
||||
int eof = FALSE;
|
||||
bool eof = false;
|
||||
uint32_t prefer = 0;
|
||||
int rn_error;
|
||||
int32_t offset;
|
||||
@ -80,7 +80,7 @@ int main(int argc, char **argv)
|
||||
switch (tolower(*p)) {
|
||||
case 'a': /* auto or intelligent sync */
|
||||
case 'i':
|
||||
autosync = TRUE;
|
||||
autosync = true;
|
||||
p++;
|
||||
break;
|
||||
case 'h':
|
||||
@ -264,7 +264,7 @@ int main(int argc, char **argv)
|
||||
if (to_read) {
|
||||
lenread = fread(p, 1, to_read, fp);
|
||||
if (lenread == 0)
|
||||
eof = TRUE; /* help along systems with bad feof */
|
||||
eof = true; /* help along systems with bad feof */
|
||||
} else
|
||||
lenread = 0;
|
||||
p += lenread;
|
||||
|
@ -153,7 +153,7 @@ static void aoutg_init(FILE * fp, efunc errfunc, ldfunc ldef,
|
||||
|
||||
static void aout_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
{
|
||||
bsd = FALSE;
|
||||
bsd = false;
|
||||
aoutg_init(fp, errfunc, ldef, eval);
|
||||
|
||||
aout_gotpc_sect = aout_gotoff_sect = aout_got_sect =
|
||||
@ -169,25 +169,25 @@ extern struct ofmt of_aoutb;
|
||||
static void aoutb_init(FILE * fp, efunc errfunc, ldfunc ldef,
|
||||
evalfunc eval)
|
||||
{
|
||||
bsd = TRUE;
|
||||
bsd = true;
|
||||
aoutg_init(fp, errfunc, ldef, eval);
|
||||
|
||||
is_pic = 0x00; /* may become 0x40 */
|
||||
|
||||
aout_gotpc_sect = seg_alloc();
|
||||
ldef("..gotpc", aout_gotpc_sect + 1, 0L, NULL, FALSE, FALSE, &of_aoutb,
|
||||
ldef("..gotpc", aout_gotpc_sect + 1, 0L, NULL, false, false, &of_aoutb,
|
||||
error);
|
||||
aout_gotoff_sect = seg_alloc();
|
||||
ldef("..gotoff", aout_gotoff_sect + 1, 0L, NULL, FALSE, FALSE,
|
||||
ldef("..gotoff", aout_gotoff_sect + 1, 0L, NULL, false, false,
|
||||
&of_aoutb, error);
|
||||
aout_got_sect = seg_alloc();
|
||||
ldef("..got", aout_got_sect + 1, 0L, NULL, FALSE, FALSE, &of_aoutb,
|
||||
ldef("..got", aout_got_sect + 1, 0L, NULL, false, false, &of_aoutb,
|
||||
error);
|
||||
aout_plt_sect = seg_alloc();
|
||||
ldef("..plt", aout_plt_sect + 1, 0L, NULL, FALSE, FALSE, &of_aoutb,
|
||||
ldef("..plt", aout_plt_sect + 1, 0L, NULL, false, false, &of_aoutb,
|
||||
error);
|
||||
aout_sym_sect = seg_alloc();
|
||||
ldef("..sym", aout_sym_sect + 1, 0L, NULL, FALSE, FALSE, &of_aoutb,
|
||||
ldef("..sym", aout_sym_sect + 1, 0L, NULL, false, false, &of_aoutb,
|
||||
error);
|
||||
}
|
||||
|
||||
@ -250,7 +250,7 @@ static void aout_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
{
|
||||
int pos = strslen + 4;
|
||||
struct Symbol *sym;
|
||||
int special_used = FALSE;
|
||||
int special_used = false;
|
||||
|
||||
if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
|
||||
/*
|
||||
@ -361,7 +361,7 @@ static void aout_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
if (special[n]) {
|
||||
struct tokenval tokval;
|
||||
expr *e;
|
||||
int fwd = FALSE;
|
||||
int fwd = false;
|
||||
char *saveme = stdscan_bufptr; /* bugfix? fbk 8/10/00 */
|
||||
|
||||
if (!bsd) {
|
||||
@ -394,7 +394,7 @@ static void aout_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
}
|
||||
stdscan_bufptr = saveme; /* bugfix? fbk 8/10/00 */
|
||||
}
|
||||
special_used = TRUE;
|
||||
special_used = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -649,11 +649,11 @@ static void aout_out(int32_t segto, const void *data, uint32_t type,
|
||||
is_pic = 0x40;
|
||||
addr =
|
||||
aout_add_gsym_reloc(s, segment, addr, RELTYPE_GOT,
|
||||
realbytes, TRUE);
|
||||
realbytes, true);
|
||||
} else if (wrt == aout_sym_sect + 1) {
|
||||
addr = aout_add_gsym_reloc(s, segment, addr,
|
||||
RELTYPE_ABSOLUTE, realbytes,
|
||||
FALSE);
|
||||
false);
|
||||
} else if (wrt == aout_plt_sect + 1) {
|
||||
is_pic = 0x40;
|
||||
error(ERR_NONFATAL,
|
||||
|
@ -24,17 +24,17 @@
|
||||
struct Piece {
|
||||
struct Piece *next;
|
||||
int type; /* 0 = absolute, 1 = seg, 2 = sym */
|
||||
int32_t offset; /* relative offset */
|
||||
int number; /* symbol/segment number (4=bss) */
|
||||
int32_t bytes; /* size of reloc or of absolute data */
|
||||
int relative; /* TRUE or FALSE */
|
||||
int32_t offset; /* relative offset */
|
||||
int number; /* symbol/segment number (4=bss) */
|
||||
int32_t bytes; /* size of reloc or of absolute data */
|
||||
bool relative; /* relative address? */
|
||||
};
|
||||
|
||||
struct Symbol {
|
||||
int32_t strpos; /* string table position of name */
|
||||
int32_t strpos; /* string table position of name */
|
||||
int flags; /* symbol flags */
|
||||
int segment; /* 4=bss at this point */
|
||||
int32_t value; /* address, or COMMON variable size */
|
||||
int32_t value; /* address, or COMMON variable size */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -66,28 +66,28 @@
|
||||
*/
|
||||
|
||||
/* Flag which version of COFF we are currently outputting. */
|
||||
static int win32, win64;
|
||||
static bool win32, win64;
|
||||
|
||||
struct Reloc {
|
||||
struct Reloc *next;
|
||||
int32_t address; /* relative to _start_ of section */
|
||||
int32_t symbol; /* symbol number */
|
||||
int32_t address; /* relative to _start_ of section */
|
||||
int32_t symbol; /* symbol number */
|
||||
enum {
|
||||
SECT_SYMBOLS,
|
||||
ABS_SYMBOL,
|
||||
REAL_SYMBOLS
|
||||
} symbase; /* relocation for symbol number :) */
|
||||
int relative; /* TRUE or FALSE */
|
||||
int size64; /* TRUE or FALSE */
|
||||
bool relative;
|
||||
bool size64;
|
||||
};
|
||||
|
||||
struct Symbol {
|
||||
char name[9];
|
||||
int32_t strpos; /* string table position of name */
|
||||
int32_t strpos; /* string table position of name */
|
||||
int32_t value; /* address, or COMMON variable size */
|
||||
int section; /* section number where it's defined
|
||||
* - in COFF codes, not NASM codes */
|
||||
int is_global; /* is it a global symbol or not? */
|
||||
int32_t value; /* address, or COMMON variable size */
|
||||
bool is_global; /* is it a global symbol or not? */
|
||||
};
|
||||
|
||||
static FILE *coffp;
|
||||
@ -138,7 +138,7 @@ static void coff_write_symbols(void);
|
||||
static void coff_win32_init(FILE * fp, efunc errfunc,
|
||||
ldfunc ldef, evalfunc eval)
|
||||
{
|
||||
win32 = TRUE; win64 = FALSE;
|
||||
win32 = true; win64 = false;
|
||||
(void)ldef; /* placate optimizers */
|
||||
(void)eval;
|
||||
coff_gen_init(fp, errfunc);
|
||||
@ -148,7 +148,7 @@ static void coff_win64_init(FILE * fp, efunc errfunc,
|
||||
ldfunc ldef, evalfunc eval)
|
||||
{
|
||||
maxbits = 64;
|
||||
win32 = FALSE; win64 = TRUE;
|
||||
win32 = false; win64 = true;
|
||||
(void)ldef; /* placate optimizers */
|
||||
(void)eval;
|
||||
coff_gen_init(fp, errfunc);
|
||||
@ -157,7 +157,7 @@ static void coff_win64_init(FILE * fp, efunc errfunc,
|
||||
static void coff_std_init(FILE * fp, efunc errfunc, ldfunc ldef,
|
||||
evalfunc eval)
|
||||
{
|
||||
win32 = win64 = FALSE;
|
||||
win32 = win64 = false;
|
||||
(void)ldef; /* placate optimizers */
|
||||
(void)eval;
|
||||
coff_gen_init(fp, errfunc);
|
||||
@ -396,7 +396,7 @@ static void coff_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
break;
|
||||
}
|
||||
if (!sym->section)
|
||||
sym->is_global = TRUE;
|
||||
sym->is_global = true;
|
||||
}
|
||||
if (is_global == 2)
|
||||
sym->value = offset;
|
||||
@ -532,7 +532,7 @@ static void coff_out(int32_t segto, const void *data, uint32_t type,
|
||||
error(ERR_NONFATAL, "COFF format does not support"
|
||||
" segment base references");
|
||||
} else
|
||||
fix = coff_add_reloc(s, segment, FALSE, FALSE);
|
||||
fix = coff_add_reloc(s, segment, false, false);
|
||||
}
|
||||
p = mydata;
|
||||
WRITELONG(p, *(int32_t *)data + fix);
|
||||
@ -550,13 +550,13 @@ static void coff_out(int32_t segto, const void *data, uint32_t type,
|
||||
error(ERR_NONFATAL, "COFF format does not support"
|
||||
" segment base references");
|
||||
} else
|
||||
fix = coff_add_reloc(s, segment, FALSE);
|
||||
fix = coff_add_reloc(s, segment, false);
|
||||
} */
|
||||
fix = coff_add_reloc(s, segment, FALSE, TRUE);
|
||||
fix = coff_add_reloc(s, segment, false, true);
|
||||
WRITEDLONG(p, *(int64_t *)data + fix);
|
||||
coff_sect_write(s, mydata, realbytes);
|
||||
} else {
|
||||
fix = coff_add_reloc(s, segment, FALSE, FALSE);
|
||||
fix = coff_add_reloc(s, segment, false, false);
|
||||
WRITELONG(p, *(int32_t *)data + fix);
|
||||
coff_sect_write(s, mydata, realbytes);
|
||||
}
|
||||
@ -576,7 +576,7 @@ static void coff_out(int32_t segto, const void *data, uint32_t type,
|
||||
error(ERR_NONFATAL, "COFF format does not support"
|
||||
" segment base references");
|
||||
} else
|
||||
fix = coff_add_reloc(s, segment, TRUE, FALSE);
|
||||
fix = coff_add_reloc(s, segment, true, false);
|
||||
p = mydata;
|
||||
if (win32 | win64) {
|
||||
WRITELONG(p, *(int32_t *)data + 4 - realbytes + fix);
|
||||
|
@ -147,7 +147,7 @@ static int32_t elf_foffs;
|
||||
static void elf_write(void);
|
||||
static void elf_sect_write(struct Section *, const uint8_t *,
|
||||
uint32_t);
|
||||
static void elf_section_header(int, int, int, void *, int, int32_t, int, int,
|
||||
static void elf_section_header(int, int, int, void *, bool, int32_t, int, int,
|
||||
int, int);
|
||||
static void elf_write_sections(void);
|
||||
static struct SAA *elf_build_symtab(int32_t *, int32_t *);
|
||||
@ -241,19 +241,19 @@ static void elf_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
fwds = NULL;
|
||||
|
||||
elf_gotpc_sect = seg_alloc();
|
||||
ldef("..gotpc", elf_gotpc_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf32,
|
||||
ldef("..gotpc", elf_gotpc_sect + 1, 0L, NULL, false, false, &of_elf32,
|
||||
error);
|
||||
elf_gotoff_sect = seg_alloc();
|
||||
ldef("..gotoff", elf_gotoff_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf32,
|
||||
ldef("..gotoff", elf_gotoff_sect + 1, 0L, NULL, false, false, &of_elf32,
|
||||
error);
|
||||
elf_got_sect = seg_alloc();
|
||||
ldef("..got", elf_got_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf32,
|
||||
ldef("..got", elf_got_sect + 1, 0L, NULL, false, false, &of_elf32,
|
||||
error);
|
||||
elf_plt_sect = seg_alloc();
|
||||
ldef("..plt", elf_plt_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf32,
|
||||
ldef("..plt", elf_plt_sect + 1, 0L, NULL, false, false, &of_elf32,
|
||||
error);
|
||||
elf_sym_sect = seg_alloc();
|
||||
ldef("..sym", elf_sym_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf32,
|
||||
ldef("..sym", elf_sym_sect + 1, 0L, NULL, false, false, &of_elf32,
|
||||
error);
|
||||
|
||||
def_seg = seg_alloc();
|
||||
@ -440,7 +440,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
{
|
||||
int pos = strslen;
|
||||
struct Symbol *sym;
|
||||
int special_used = FALSE;
|
||||
bool special_used = false;
|
||||
|
||||
#if defined(DEBUG) && DEBUG>2
|
||||
fprintf(stderr,
|
||||
@ -546,7 +546,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
error(ERR_NONFATAL, "alignment constraint `%s' is not a"
|
||||
" power of two", special);
|
||||
}
|
||||
special_used = TRUE;
|
||||
special_used = true;
|
||||
} else
|
||||
sym->value = (sym->section == SHN_UNDEF ? 0 : offset);
|
||||
|
||||
@ -611,7 +611,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
if (*special) {
|
||||
struct tokenval tokval;
|
||||
expr *e;
|
||||
int fwd = FALSE;
|
||||
int fwd = 0;
|
||||
char *saveme = stdscan_bufptr; /* bugfix? fbk 8/10/00 */
|
||||
|
||||
while (special[n] && isspace(special[n]))
|
||||
@ -638,7 +638,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
}
|
||||
stdscan_bufptr = saveme; /* bugfix? fbk 8/10/00 */
|
||||
}
|
||||
special_used = TRUE;
|
||||
special_used = true;
|
||||
}
|
||||
}
|
||||
sym->globnum = nglobs;
|
||||
@ -699,7 +699,7 @@ static void elf_add_reloc(struct Section *sect, int32_t segment, int type)
|
||||
*/
|
||||
static int32_t elf_add_gsym_reloc(struct Section *sect,
|
||||
int32_t segment, int32_t offset,
|
||||
int type, int exact)
|
||||
int type, bool exact)
|
||||
{
|
||||
struct Reloc *r;
|
||||
struct Section *s;
|
||||
@ -859,15 +859,15 @@ static void elf_out(int32_t segto, const void *data, uint32_t type,
|
||||
elf_add_reloc(s, segment, R_386_GOTOFF);
|
||||
} else if (wrt == elf_got_sect + 1) {
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_386_GOT32, TRUE);
|
||||
R_386_GOT32, true);
|
||||
} else if (wrt == elf_sym_sect + 1) {
|
||||
if (realbytes == 2) {
|
||||
gnu16 = 1;
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_386_16, FALSE);
|
||||
R_386_16, false);
|
||||
} else {
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_386_32, FALSE);
|
||||
R_386_32, false);
|
||||
}
|
||||
} else if (wrt == elf_plt_sect + 1) {
|
||||
error(ERR_NONFATAL, "ELF format cannot produce non-PC-"
|
||||
@ -1030,31 +1030,31 @@ static void elf_write(void)
|
||||
elf_nsect = 0;
|
||||
elf_sects = nasm_malloc(sizeof(*elf_sects) * (2 * nsects + 10));
|
||||
|
||||
elf_section_header(0, 0, 0, NULL, FALSE, 0L, 0, 0, 0, 0); /* SHN_UNDEF */
|
||||
elf_section_header(0, 0, 0, NULL, false, 0L, 0, 0, 0, 0); /* SHN_UNDEF */
|
||||
scount = 1; /* needed for the stabs debugging to track the symtable section */
|
||||
p = shstrtab + 1;
|
||||
for (i = 0; i < nsects; i++) {
|
||||
elf_section_header(p - shstrtab, sects[i]->type, sects[i]->flags,
|
||||
(sects[i]->type == SHT_PROGBITS ?
|
||||
sects[i]->data : NULL), TRUE,
|
||||
sects[i]->data : NULL), true,
|
||||
sects[i]->len, 0, 0, sects[i]->align, 0);
|
||||
p += strlen(p) + 1;
|
||||
scount++; /* dito */
|
||||
}
|
||||
elf_section_header(p - shstrtab, 1, 0, comment, FALSE, (int32_t)commlen, 0, 0, 1, 0); /* .comment */
|
||||
elf_section_header(p - shstrtab, 1, 0, comment, false, (int32_t)commlen, 0, 0, 1, 0); /* .comment */
|
||||
scount++; /* dito */
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 3, 0, shstrtab, FALSE, (int32_t)shstrtablen, 0, 0, 1, 0); /* .shstrtab */
|
||||
elf_section_header(p - shstrtab, 3, 0, shstrtab, false, (int32_t)shstrtablen, 0, 0, 1, 0); /* .shstrtab */
|
||||
scount++; /* dito */
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 2, 0, symtab, TRUE, symtablen, nsects + 4, symtablocal, 4, 16); /* .symtab */
|
||||
elf_section_header(p - shstrtab, 2, 0, symtab, true, symtablen, nsects + 4, symtablocal, 4, 16); /* .symtab */
|
||||
symtabsection = scount; /* now we got the symtab section index in the ELF file */
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 3, 0, strs, TRUE, strslen, 0, 0, 1, 0); /* .strtab */
|
||||
elf_section_header(p - shstrtab, 3, 0, strs, true, strslen, 0, 0, 1, 0); /* .strtab */
|
||||
for (i = 0; i < nsects; i++)
|
||||
if (sects[i]->head) {
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 9, 0, sects[i]->rel, TRUE,
|
||||
elf_section_header(p - shstrtab, 9, 0, sects[i]->rel, true,
|
||||
sects[i]->rellen, nsects + 3, i + 1, 4, 8);
|
||||
}
|
||||
if (of_elf32.current_dfmt == &df_stabs) {
|
||||
@ -1066,16 +1066,16 @@ static void elf_write(void)
|
||||
|
||||
if ((stabbuf) && (stabstrbuf) && (stabrelbuf)) {
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 1, 0, stabbuf, 0, stablen,
|
||||
elf_section_header(p - shstrtab, 1, 0, stabbuf, false, stablen,
|
||||
nsections - 2, 0, 4, 12);
|
||||
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 3, 0, stabstrbuf, 0,
|
||||
elf_section_header(p - shstrtab, 3, 0, stabstrbuf, false,
|
||||
stabstrlen, 0, 0, 4, 0);
|
||||
|
||||
p += strlen(p) + 1;
|
||||
/* link -> symtable info -> section to refer to */
|
||||
elf_section_header(p - shstrtab, 9, 0, stabrelbuf, 0,
|
||||
elf_section_header(p - shstrtab, 9, 0, stabrelbuf, false,
|
||||
stabrellen, symtabsection, nsections - 3, 4,
|
||||
8);
|
||||
}
|
||||
@ -1206,7 +1206,7 @@ static struct SAA *elf_build_reltab(int32_t *len, struct Reloc *r)
|
||||
}
|
||||
|
||||
static void elf_section_header(int name, int type, int flags,
|
||||
void *data, int is_saa, int32_t datalen,
|
||||
void *data, bool is_saa, int32_t datalen,
|
||||
int link, int info, int align, int eltsize)
|
||||
{
|
||||
elf_sects[elf_nsect].data = data;
|
||||
|
@ -159,7 +159,7 @@ static int32_t elf_foffs;
|
||||
static void elf_write(void);
|
||||
static void elf_sect_write(struct Section *, const uint8_t *,
|
||||
uint32_t);
|
||||
static void elf_section_header(int, int, int, void *, int, int32_t, int, int,
|
||||
static void elf_section_header(int, int, int, void *, bool, int32_t, int, int,
|
||||
int, int);
|
||||
static void elf_write_sections(void);
|
||||
static struct SAA *elf_build_symtab(int32_t *, int32_t *);
|
||||
@ -254,19 +254,19 @@ static void elf_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
fwds = NULL;
|
||||
|
||||
elf_gotpc_sect = seg_alloc();
|
||||
ldef("..gotpc", elf_gotpc_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf64,
|
||||
ldef("..gotpc", elf_gotpc_sect + 1, 0L, NULL, false, false, &of_elf64,
|
||||
error);
|
||||
elf_gotoff_sect = seg_alloc();
|
||||
ldef("..gotoff", elf_gotoff_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf64,
|
||||
ldef("..gotoff", elf_gotoff_sect + 1, 0L, NULL, false, false, &of_elf64,
|
||||
error);
|
||||
elf_got_sect = seg_alloc();
|
||||
ldef("..got", elf_got_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf64,
|
||||
ldef("..got", elf_got_sect + 1, 0L, NULL, false, false, &of_elf64,
|
||||
error);
|
||||
elf_plt_sect = seg_alloc();
|
||||
ldef("..plt", elf_plt_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf64,
|
||||
ldef("..plt", elf_plt_sect + 1, 0L, NULL, false, false, &of_elf64,
|
||||
error);
|
||||
elf_sym_sect = seg_alloc();
|
||||
ldef("..sym", elf_sym_sect + 1, 0L, NULL, FALSE, FALSE, &of_elf64,
|
||||
ldef("..sym", elf_sym_sect + 1, 0L, NULL, false, false, &of_elf64,
|
||||
error);
|
||||
|
||||
def_seg = seg_alloc();
|
||||
@ -453,7 +453,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
{
|
||||
int pos = strslen;
|
||||
struct Symbol *sym;
|
||||
int special_used = FALSE;
|
||||
bool special_used = false;
|
||||
|
||||
#if defined(DEBUG) && DEBUG>2
|
||||
fprintf(stderr,
|
||||
@ -559,7 +559,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
error(ERR_NONFATAL, "alignment constraint `%s' is not a"
|
||||
" power of two", special);
|
||||
}
|
||||
special_used = TRUE;
|
||||
special_used = true;
|
||||
} else
|
||||
sym->value = (sym->section == SHN_UNDEF ? 0 : offset);
|
||||
|
||||
@ -624,7 +624,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
if (*special) {
|
||||
struct tokenval tokval;
|
||||
expr *e;
|
||||
int fwd = FALSE;
|
||||
int fwd = 0;
|
||||
char *saveme = stdscan_bufptr; /* bugfix? fbk 8/10/00 */
|
||||
|
||||
while (special[n] && isspace(special[n]))
|
||||
@ -651,7 +651,7 @@ static void elf_deflabel(char *name, int32_t segment, int32_t offset,
|
||||
}
|
||||
stdscan_bufptr = saveme; /* bugfix? fbk 8/10/00 */
|
||||
}
|
||||
special_used = TRUE;
|
||||
special_used = true;
|
||||
}
|
||||
}
|
||||
sym->globnum = nglobs;
|
||||
@ -712,7 +712,7 @@ static void elf_add_reloc(struct Section *sect, int32_t segment, int type)
|
||||
*/
|
||||
static int32_t elf_add_gsym_reloc(struct Section *sect,
|
||||
int32_t segment, int64_t offset,
|
||||
int type, int exact)
|
||||
int type, bool exact)
|
||||
{
|
||||
struct Reloc *r;
|
||||
struct Section *s;
|
||||
@ -886,21 +886,21 @@ static void elf_out(int32_t segto, const void *data, uint32_t type,
|
||||
elf_add_reloc(s, segment, R_X86_64_GOTTPOFF);
|
||||
} else if (wrt == elf_got_sect + 1) {
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_X86_64_GOT32, TRUE);
|
||||
R_X86_64_GOT32, true);
|
||||
} else if (wrt == elf_sym_sect + 1) {
|
||||
switch (realbytes) {
|
||||
case 2:
|
||||
gnu16 = 1;
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_X86_64_16, FALSE);
|
||||
R_X86_64_16, false);
|
||||
break;
|
||||
case 4:
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_X86_64_32, FALSE);
|
||||
R_X86_64_32, false);
|
||||
break;
|
||||
case 8:
|
||||
addr = elf_add_gsym_reloc(s, segment, addr,
|
||||
R_X86_64_64, FALSE);
|
||||
R_X86_64_64, false);
|
||||
break;
|
||||
default:
|
||||
error(ERR_PANIC, "internal error elf64-hpa-903");
|
||||
@ -1061,31 +1061,31 @@ static void elf_write(void)
|
||||
elf_nsect = 0;
|
||||
elf_sects = nasm_malloc(sizeof(*elf_sects) * (2 * nsects + 10));
|
||||
|
||||
elf_section_header(0, 0, 0, NULL, FALSE, 0L, 0, 0, 0, 0); /* SHN_UNDEF */
|
||||
elf_section_header(0, 0, 0, NULL, false, 0L, 0, 0, 0, 0); /* SHN_UNDEF */
|
||||
scount = 1; /* needed for the stabs debugging to track the symtable section */
|
||||
p = shstrtab + 1;
|
||||
for (i = 0; i < nsects; i++) {
|
||||
elf_section_header(p - shstrtab, sects[i]->type, sects[i]->flags,
|
||||
(sects[i]->type == SHT_PROGBITS ?
|
||||
sects[i]->data : NULL), TRUE,
|
||||
sects[i]->data : NULL), true,
|
||||
sects[i]->len, 0, 0, sects[i]->align, 0);
|
||||
p += strlen(p) + 1;
|
||||
scount++; /* dito */
|
||||
}
|
||||
elf_section_header(p - shstrtab, 1, 0, comment, FALSE, (int32_t)commlen, 0, 0, 1, 0); /* .comment */
|
||||
elf_section_header(p - shstrtab, 1, 0, comment, false, (int32_t)commlen, 0, 0, 1, 0); /* .comment */
|
||||
scount++; /* dito */
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 3, 0, shstrtab, FALSE, (int32_t)shstrtablen, 0, 0, 1, 0); /* .shstrtab */
|
||||
elf_section_header(p - shstrtab, 3, 0, shstrtab, false, (int32_t)shstrtablen, 0, 0, 1, 0); /* .shstrtab */
|
||||
scount++; /* dito */
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 2, 0, symtab, TRUE, symtablen, nsects + 4, symtablocal, 4, 24); /* .symtab */
|
||||
elf_section_header(p - shstrtab, 2, 0, symtab, true, symtablen, nsects + 4, symtablocal, 4, 24); /* .symtab */
|
||||
symtabsection = scount; /* now we got the symtab section index in the ELF file */
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 3, 0, strs, TRUE, strslen, 0, 0, 1, 0); /* .strtab */
|
||||
elf_section_header(p - shstrtab, 3, 0, strs, true, strslen, 0, 0, 1, 0); /* .strtab */
|
||||
for (i = 0; i < nsects; i++)
|
||||
if (sects[i]->head) {
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab,SHT_RELA, 0, sects[i]->rel, TRUE,
|
||||
elf_section_header(p - shstrtab,SHT_RELA, 0, sects[i]->rel, true,
|
||||
sects[i]->rellen, nsects + 3, i + 1, 4, 24);
|
||||
}
|
||||
if (of_elf64.current_dfmt == &df_stabs) {
|
||||
@ -1097,16 +1097,16 @@ static void elf_write(void)
|
||||
|
||||
if ((stabbuf) && (stabstrbuf) && (stabrelbuf)) {
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 1, 0, stabbuf, 0, stablen,
|
||||
elf_section_header(p - shstrtab, 1, 0, stabbuf, false, stablen,
|
||||
nsections - 2, 0, 4, 12);
|
||||
|
||||
p += strlen(p) + 1;
|
||||
elf_section_header(p - shstrtab, 3, 0, stabstrbuf, 0,
|
||||
elf_section_header(p - shstrtab, 3, 0, stabstrbuf, false,
|
||||
stabstrlen, 0, 0, 4, 0);
|
||||
|
||||
p += strlen(p) + 1;
|
||||
/* link -> symtable info -> section to refer to */
|
||||
elf_section_header(p - shstrtab, 9, 0, stabrelbuf, 0,
|
||||
elf_section_header(p - shstrtab, 9, 0, stabrelbuf, false,
|
||||
stabrellen, symtabsection, nsections - 3, 4,
|
||||
16);
|
||||
}
|
||||
@ -1238,7 +1238,7 @@ static struct SAA *elf_build_reltab(int32_t *len, struct Reloc *r)
|
||||
}
|
||||
|
||||
static void elf_section_header(int name, int type, int flags,
|
||||
void *data, int is_saa, int32_t datalen,
|
||||
void *data, bool is_saa, int32_t datalen,
|
||||
int link, int info, int align, int eltsize)
|
||||
{
|
||||
elf_sects[elf_nsect].data = data;
|
||||
|
@ -60,7 +60,7 @@ static int ieee_uppercase;
|
||||
static efunc error;
|
||||
static ldfunc deflabel;
|
||||
static FILE *ofp;
|
||||
static int any_segs;
|
||||
static bool any_segs;
|
||||
static int arrindex;
|
||||
|
||||
#define HUNKSIZE 1024 /* Size of the data hunk */
|
||||
@ -183,7 +183,7 @@ static void ieee_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
ofp = fp;
|
||||
error = errfunc;
|
||||
deflabel = ldef;
|
||||
any_segs = FALSE;
|
||||
any_segs = false;
|
||||
fpubhead = NULL;
|
||||
fpubtail = &fpubhead;
|
||||
exthead = NULL;
|
||||
@ -194,7 +194,7 @@ static void ieee_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
seghead = ieee_seg_needs_update = NULL;
|
||||
segtail = &seghead;
|
||||
ieee_entry_seg = NO_SEG;
|
||||
ieee_uppercase = FALSE;
|
||||
ieee_uppercase = false;
|
||||
checksum = 0;
|
||||
of_ieee.current_dfmt->init(&of_ieee, NULL, fp, errfunc);
|
||||
}
|
||||
@ -391,7 +391,7 @@ static void ieee_out(int32_t segto, const void *data, uint32_t type,
|
||||
}
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we must define a default
|
||||
* If `any_segs' is still false, we must define a default
|
||||
* segment.
|
||||
*/
|
||||
if (!any_segs) {
|
||||
@ -718,7 +718,7 @@ static int32_t ieee_segment(char *name, int pass, int *bits)
|
||||
segtail = &seg->next;
|
||||
seg->index = seg_alloc();
|
||||
seg->ieee_index = ieee_idx;
|
||||
any_segs = TRUE;
|
||||
any_segs = true;
|
||||
seg->name = NULL;
|
||||
seg->currentpos = 0;
|
||||
seg->align = 1; /* default */
|
||||
@ -750,9 +750,9 @@ static int32_t ieee_segment(char *name, int pass, int *bits)
|
||||
else if (!nasm_stricmp(p, "common"))
|
||||
seg->combine = CMB_COMMON;
|
||||
else if (!nasm_stricmp(p, "use16"))
|
||||
seg->use32 = FALSE;
|
||||
seg->use32 = false;
|
||||
else if (!nasm_stricmp(p, "use32"))
|
||||
seg->use32 = TRUE;
|
||||
seg->use32 = true;
|
||||
else if (!nasm_strnicmp(p, "align=", 6)) {
|
||||
seg->align = readnum(p + 6, &rn_error);
|
||||
if (seg->align == 0)
|
||||
@ -790,10 +790,10 @@ static int32_t ieee_segment(char *name, int pass, int *bits)
|
||||
ieee_seg_needs_update = seg;
|
||||
if (seg->align >= SEG_ABS)
|
||||
deflabel(name, NO_SEG, seg->align - SEG_ABS,
|
||||
NULL, FALSE, FALSE, &of_ieee, error);
|
||||
NULL, false, false, &of_ieee, error);
|
||||
else
|
||||
deflabel(name, seg->index + 1, 0L,
|
||||
NULL, FALSE, FALSE, &of_ieee, error);
|
||||
NULL, false, false, &of_ieee, error);
|
||||
ieee_seg_needs_update = NULL;
|
||||
|
||||
if (seg->use32)
|
||||
@ -813,7 +813,7 @@ static int ieee_directive(char *directive, char *value, int pass)
|
||||
(void)value;
|
||||
(void)pass;
|
||||
if (!strcmp(directive, "uppercase")) {
|
||||
ieee_uppercase = TRUE;
|
||||
ieee_uppercase = true;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@ -901,7 +901,7 @@ static void ieee_write_file(int debuginfo)
|
||||
* the standard doesn't specify when to put checksums,
|
||||
* we'll just do it periodically.
|
||||
*/
|
||||
ieee_putcs(FALSE);
|
||||
ieee_putcs(false);
|
||||
|
||||
/*
|
||||
* Write the section headers
|
||||
@ -953,7 +953,7 @@ static void ieee_write_file(int debuginfo)
|
||||
ieee_entry_ofs);
|
||||
}
|
||||
|
||||
ieee_putcs(FALSE);
|
||||
ieee_putcs(false);
|
||||
/*
|
||||
* Write the publics
|
||||
*/
|
||||
@ -1010,7 +1010,7 @@ static void ieee_write_file(int debuginfo)
|
||||
ieee_putascii("NX%X,%02X%s.\r\n", i++, strlen(buf), buf);
|
||||
ext = ext->next;
|
||||
}
|
||||
ieee_putcs(FALSE);
|
||||
ieee_putcs(false);
|
||||
|
||||
/*
|
||||
* IEEE doesn't have a standard pass break record
|
||||
@ -1084,7 +1084,7 @@ static void ieee_write_file(int debuginfo)
|
||||
org = ieee_putld(org, org + size, data->data);
|
||||
data = data->next;
|
||||
}
|
||||
ieee_putcs(FALSE);
|
||||
ieee_putcs(false);
|
||||
|
||||
}
|
||||
seg = seg->next;
|
||||
@ -1266,7 +1266,7 @@ void dbgls_init(struct ofmt *of, void *id, FILE * fp, efunc error)
|
||||
arrhead = NULL;
|
||||
arrtail = &arrhead;
|
||||
ieee_segment("??LINE", 2, &tempint);
|
||||
any_segs = FALSE;
|
||||
any_segs = false;
|
||||
}
|
||||
static void dbgls_cleanup(void)
|
||||
{
|
||||
@ -1308,7 +1308,7 @@ static void dbgls_linnum(const char *lnfname, int32_t lineno, int32_t segto)
|
||||
return;
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we must define a default
|
||||
* If `any_segs' is still false, we must define a default
|
||||
* segment.
|
||||
*/
|
||||
if (!any_segs) {
|
||||
@ -1350,10 +1350,9 @@ static void dbgls_deflabel(char *name, int32_t segment,
|
||||
int32_t offset, int is_global, char *special)
|
||||
{
|
||||
struct ieeeSection *seg;
|
||||
int used_special; /* have we used the special text? */
|
||||
|
||||
/* Keep compiler from warning about special and used_special */
|
||||
used_special = special ? FALSE : FALSE;
|
||||
/* Keep compiler from warning about special */
|
||||
(void)special;
|
||||
|
||||
/*
|
||||
* If it's a special-retry from pass two, discard it.
|
||||
@ -1382,7 +1381,7 @@ static void dbgls_deflabel(char *name, int32_t segment,
|
||||
}
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we might need to define a
|
||||
* If `any_segs' is still false, we might need to define a
|
||||
* default segment, if they're trying to declare a label in
|
||||
* `first_seg'. But the label should exist due to a prior
|
||||
* call to ieee_deflabel so we can skip that.
|
||||
|
@ -145,8 +145,8 @@ static void ori_pubdef(ObjRecord * orp);
|
||||
static void ori_null(ObjRecord * orp);
|
||||
static ObjRecord *obj_commit(ObjRecord * orp);
|
||||
|
||||
static int obj_uppercase; /* Flag: all names in uppercase */
|
||||
static int obj_use32; /* Flag: at least one segment is 32-bit */
|
||||
static bool obj_uppercase; /* Flag: all names in uppercase */
|
||||
static bool obj_use32; /* Flag: at least one segment is 32-bit */
|
||||
|
||||
/*
|
||||
* Clear an ObjRecord structure. (Never reallocates).
|
||||
@ -469,7 +469,7 @@ static evalfunc evaluate;
|
||||
static ldfunc deflabel;
|
||||
static FILE *ofp;
|
||||
static int32_t first_seg;
|
||||
static int any_segs;
|
||||
static bool any_segs;
|
||||
static int passtwo;
|
||||
static int arrindex;
|
||||
|
||||
@ -550,7 +550,7 @@ static struct Segment {
|
||||
CMB_STACK = 5,
|
||||
CMB_COMMON = 6
|
||||
} combine;
|
||||
int32_t use32; /* is this segment 32-bit? */
|
||||
bool use32; /* is this segment 32-bit? */
|
||||
struct Public *pubhead, **pubtail, *lochead, **loctail;
|
||||
char *name;
|
||||
char *segclass, *overlay; /* `class' is a C++ keyword :-) */
|
||||
@ -609,7 +609,7 @@ static void obj_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
evaluate = eval;
|
||||
deflabel = ldef;
|
||||
first_seg = seg_alloc();
|
||||
any_segs = FALSE;
|
||||
any_segs = false;
|
||||
fpubhead = NULL;
|
||||
fpubtail = &fpubhead;
|
||||
exthead = NULL;
|
||||
@ -627,8 +627,8 @@ static void obj_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval)
|
||||
grphead = obj_grp_needs_update = NULL;
|
||||
grptail = &grphead;
|
||||
obj_entry_seg = NO_SEG;
|
||||
obj_uppercase = FALSE;
|
||||
obj_use32 = FALSE;
|
||||
obj_uppercase = false;
|
||||
obj_use32 = false;
|
||||
passtwo = 0;
|
||||
current_seg = NULL;
|
||||
|
||||
@ -748,7 +748,7 @@ static void obj_deflabel(char *name, int32_t segment,
|
||||
struct ExtBack *eb;
|
||||
struct Segment *seg;
|
||||
int i;
|
||||
int used_special = FALSE; /* have we used the special text? */
|
||||
bool used_special = false; /* have we used the special text? */
|
||||
|
||||
#if defined(DEBUG) && DEBUG>2
|
||||
fprintf(stderr,
|
||||
@ -809,7 +809,7 @@ static void obj_deflabel(char *name, int32_t segment,
|
||||
}
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we might need to define a
|
||||
* If `any_segs' is still false, we might need to define a
|
||||
* default segment, if they're trying to declare a label in
|
||||
* `first_seg'.
|
||||
*/
|
||||
@ -885,7 +885,7 @@ static void obj_deflabel(char *name, int32_t segment,
|
||||
* specifications.
|
||||
*/
|
||||
while (special && *special) {
|
||||
used_special = TRUE;
|
||||
used_special = true;
|
||||
|
||||
/*
|
||||
* We might have a default-WRT specification.
|
||||
@ -1016,7 +1016,7 @@ static void obj_out(int32_t segto, const void *data, uint32_t type,
|
||||
}
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we must define a default
|
||||
* If `any_segs' is still false, we must define a default
|
||||
* segment.
|
||||
*/
|
||||
if (!any_segs) {
|
||||
@ -1136,14 +1136,14 @@ static void obj_write_fixup(ObjRecord * orp, int bytes,
|
||||
}
|
||||
|
||||
if (seg % 2) {
|
||||
base = TRUE;
|
||||
base = true;
|
||||
locat = FIX_16_SELECTOR;
|
||||
seg--;
|
||||
if (bytes != 2)
|
||||
error(ERR_PANIC, "OBJ: 4-byte segment base fixup got"
|
||||
" through sanity check");
|
||||
} else {
|
||||
base = FALSE;
|
||||
base = false;
|
||||
locat = (bytes == 2) ? FIX_16_OFFSET : FIX_32_OFFSET;
|
||||
if (!segrel)
|
||||
/*
|
||||
@ -1330,11 +1330,11 @@ static int32_t obj_segment(char *name, int pass, int *bits)
|
||||
seg->index = (any_segs ? seg_alloc() : first_seg);
|
||||
seg->obj_index = obj_idx;
|
||||
seg->grp = NULL;
|
||||
any_segs = TRUE;
|
||||
any_segs = true;
|
||||
seg->name = NULL;
|
||||
seg->currentpos = 0;
|
||||
seg->align = 1; /* default */
|
||||
seg->use32 = FALSE; /* default */
|
||||
seg->use32 = false; /* default */
|
||||
seg->combine = CMB_PUBLIC; /* default */
|
||||
seg->segclass = seg->overlay = NULL;
|
||||
seg->pubhead = NULL;
|
||||
@ -1368,9 +1368,9 @@ static int32_t obj_segment(char *name, int pass, int *bits)
|
||||
else if (!nasm_stricmp(p, "stack"))
|
||||
seg->combine = CMB_STACK;
|
||||
else if (!nasm_stricmp(p, "use16"))
|
||||
seg->use32 = FALSE;
|
||||
seg->use32 = false;
|
||||
else if (!nasm_stricmp(p, "use32"))
|
||||
seg->use32 = TRUE;
|
||||
seg->use32 = true;
|
||||
else if (!nasm_stricmp(p, "flat")) {
|
||||
/*
|
||||
* This segment is an OS/2 FLAT segment. That means
|
||||
@ -1457,10 +1457,10 @@ static int32_t obj_segment(char *name, int pass, int *bits)
|
||||
obj_seg_needs_update = seg;
|
||||
if (seg->align >= SEG_ABS)
|
||||
deflabel(name, NO_SEG, seg->align - SEG_ABS,
|
||||
NULL, FALSE, FALSE, &of_obj, error);
|
||||
NULL, false, false, &of_obj, error);
|
||||
else
|
||||
deflabel(name, seg->index + 1, 0L,
|
||||
NULL, FALSE, FALSE, &of_obj, error);
|
||||
NULL, false, false, &of_obj, error);
|
||||
obj_seg_needs_update = NULL;
|
||||
|
||||
/*
|
||||
@ -1561,7 +1561,7 @@ static int obj_directive(char *directive, char *value, int pass)
|
||||
|
||||
obj_grp_needs_update = grp;
|
||||
deflabel(v, grp->index + 1, 0L,
|
||||
NULL, FALSE, FALSE, &of_obj, error);
|
||||
NULL, false, false, &of_obj, error);
|
||||
obj_grp_needs_update = NULL;
|
||||
|
||||
while (*q) {
|
||||
@ -1622,7 +1622,7 @@ static int obj_directive(char *directive, char *value, int pass)
|
||||
return 1;
|
||||
}
|
||||
if (!strcmp(directive, "uppercase")) {
|
||||
obj_uppercase = TRUE;
|
||||
obj_uppercase = true;
|
||||
return 1;
|
||||
}
|
||||
if (!strcmp(directive, "import")) {
|
||||
@ -1655,7 +1655,7 @@ static int obj_directive(char *directive, char *value, int pass)
|
||||
" and library name");
|
||||
else {
|
||||
struct ImpDef *imp;
|
||||
int err = FALSE;
|
||||
int err = false;
|
||||
|
||||
imp = *imptail = nasm_malloc(sizeof(struct ImpDef));
|
||||
imptail = &imp->next;
|
||||
@ -1719,7 +1719,7 @@ static int obj_directive(char *directive, char *value, int pass)
|
||||
else if (!nasm_stricmp(v, "nodata"))
|
||||
flags |= EXPDEF_FLAG_NODATA;
|
||||
else if (!nasm_strnicmp(v, "parm=", 5)) {
|
||||
int err = FALSE;
|
||||
int err = false;
|
||||
flags |= EXPDEF_MASK_PARMCNT & readnum(v + 5, &err);
|
||||
if (err) {
|
||||
error(ERR_NONFATAL,
|
||||
@ -1727,7 +1727,7 @@ static int obj_directive(char *directive, char *value, int pass)
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
int err = FALSE;
|
||||
int err = false;
|
||||
ordinal = readnum(v, &err);
|
||||
if (err) {
|
||||
error(ERR_NONFATAL,
|
||||
@ -2364,7 +2364,7 @@ static void dbgbi_linnum(const char *lnfname, int32_t lineno, int32_t segto)
|
||||
return;
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we must define a default
|
||||
* If `any_segs' is still false, we must define a default
|
||||
* segment.
|
||||
*/
|
||||
if (!any_segs) {
|
||||
@ -2442,7 +2442,7 @@ static void dbgbi_deflabel(char *name, int32_t segment,
|
||||
}
|
||||
|
||||
/*
|
||||
* If `any_segs' is still FALSE, we might need to define a
|
||||
* If `any_segs' is still false, we might need to define a
|
||||
* default segment, if they're trying to declare a label in
|
||||
* `first_seg'. But the label should exist due to a prior
|
||||
* call to obj_deflabel so we can skip that.
|
||||
|
18
parser.c
18
parser.c
@ -51,7 +51,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
int critical;
|
||||
struct eval_hints hints;
|
||||
|
||||
result->forw_ref = FALSE;
|
||||
result->forw_ref = false;
|
||||
error = errfunc;
|
||||
|
||||
stdscan_reset();
|
||||
@ -92,7 +92,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
* am still not certain.
|
||||
*/
|
||||
ldef(result->label, in_abs_seg ? abs_seg : location->segment,
|
||||
location->offset, NULL, TRUE, FALSE, outfmt, errfunc);
|
||||
location->offset, NULL, true, false, outfmt, errfunc);
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,7 +192,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
extop *eop, **tail = &result->eops, **fixptr;
|
||||
int oper_num = 0;
|
||||
|
||||
result->eops_float = FALSE;
|
||||
result->eops_float = false;
|
||||
|
||||
/*
|
||||
* Begin to read the DB/DW/DD/DQ/DT/DO/INCBIN operands.
|
||||
@ -233,7 +233,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
|
||||
if (i == TOKEN_FLOAT) {
|
||||
eop->type = EOT_DB_STRING;
|
||||
result->eops_float = TRUE;
|
||||
result->eops_float = true;
|
||||
switch (result->opcode) {
|
||||
case I_DW:
|
||||
eop->stringlen = 2;
|
||||
@ -426,7 +426,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
}
|
||||
|
||||
if (i == '[' || i == '&') { /* memory reference */
|
||||
mref = TRUE;
|
||||
mref = true;
|
||||
bracket = (i == '[');
|
||||
while ((i = stdscan(NULL, &tokval)) == TOKEN_SPECIAL) {
|
||||
/* check for address directives */
|
||||
@ -502,8 +502,8 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
}
|
||||
}
|
||||
} else { /* immediate operand, or register */
|
||||
mref = FALSE;
|
||||
bracket = FALSE; /* placate optimisers */
|
||||
mref = false;
|
||||
bracket = false; /* placate optimisers */
|
||||
}
|
||||
|
||||
if ((result->oprs[operand].type & FAR) && !mref &&
|
||||
@ -516,7 +516,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
critical, error, &hints);
|
||||
i = tokval.t_type;
|
||||
if (result->oprs[operand].opflags & OPFLAG_FORWARD) {
|
||||
result->forw_ref = TRUE;
|
||||
result->forw_ref = true;
|
||||
}
|
||||
if (!value) { /* error in evaluator */
|
||||
result->opcode = -1; /* unrecoverable parse error: */
|
||||
@ -562,7 +562,7 @@ insn *parse_line(int pass, char *buffer, insn * result,
|
||||
critical, error, &hints);
|
||||
i = tokval.t_type;
|
||||
if (result->oprs[operand].opflags & OPFLAG_FORWARD) {
|
||||
result->forw_ref = TRUE;
|
||||
result->forw_ref = true;
|
||||
}
|
||||
/* and get the offset */
|
||||
if (!value) { /* but, error in evaluator */
|
||||
|
140
preproc.c
140
preproc.c
@ -101,11 +101,11 @@ struct SMacro {
|
||||
struct MMacro {
|
||||
MMacro *next;
|
||||
char *name;
|
||||
int casesense;
|
||||
int nparam_min, nparam_max;
|
||||
int plus; /* is the last parameter greedy? */
|
||||
int nolist; /* is this macro listing-inhibited? */
|
||||
int in_progress;
|
||||
bool casesense;
|
||||
bool plus; /* is the last parameter greedy? */
|
||||
bool nolist; /* is this macro listing-inhibited? */
|
||||
bool in_progress;
|
||||
Token *dlist; /* All defaults as one list */
|
||||
Token **defaults; /* Parameter default pointers */
|
||||
int ndefs; /* number of default parameters */
|
||||
@ -366,7 +366,7 @@ static const char **stdmacpos;
|
||||
* any.
|
||||
*/
|
||||
static const char **extrastdmac = NULL;
|
||||
int any_extrastdmac;
|
||||
bool any_extrastdmac;
|
||||
|
||||
/*
|
||||
* Tokens are allocated in blocks to improve speed
|
||||
@ -386,7 +386,7 @@ static Blocks blocks = { NULL, NULL };
|
||||
static Token *expand_mmac_params(Token * tline);
|
||||
static Token *expand_smacro(Token * tline);
|
||||
static Token *expand_id(Token * tline);
|
||||
static Context *get_ctx(char *name, int all_contexts);
|
||||
static Context *get_ctx(char *name, bool all_contexts);
|
||||
static void make_tok_num(Token * tok, int32_t val);
|
||||
static void error(int severity, const char *fmt, ...);
|
||||
static void *new_Block(size_t size);
|
||||
@ -605,7 +605,7 @@ static char *read_line(void)
|
||||
char *ret = nasm_strdup(*stdmacpos++);
|
||||
if (!*stdmacpos && any_extrastdmac) {
|
||||
stdmacpos = extrastdmac;
|
||||
any_extrastdmac = FALSE;
|
||||
any_extrastdmac = false;
|
||||
return ret;
|
||||
}
|
||||
/*
|
||||
@ -628,7 +628,7 @@ static char *read_line(void)
|
||||
l = nasm_malloc(sizeof(Line));
|
||||
l->next = istk->expansion;
|
||||
l->first = head;
|
||||
l->finishes = FALSE;
|
||||
l->finishes = false;
|
||||
istk->expansion = l;
|
||||
}
|
||||
}
|
||||
@ -948,7 +948,7 @@ static char *detoken(Token * tlist, int expand_locals)
|
||||
if (expand_locals &&
|
||||
t->type == TOK_PREPROC_ID && t->text &&
|
||||
t->text[0] == '%' && t->text[1] == '$') {
|
||||
Context *ctx = get_ctx(t->text, FALSE);
|
||||
Context *ctx = get_ctx(t->text, false);
|
||||
if (ctx) {
|
||||
char buffer[40];
|
||||
char *p, *q = t->text + 2;
|
||||
@ -1101,12 +1101,12 @@ static int mstrcmp(char *p, char *q, int casesense)
|
||||
* NULL, having _already_ reported an error condition, if the
|
||||
* context stack isn't deep enough for the supplied number of $
|
||||
* signs.
|
||||
* If all_contexts == TRUE, contexts that enclose current are
|
||||
* If all_contexts == true, contexts that enclose current are
|
||||
* also scanned for such smacro, until it is found; if not -
|
||||
* only the context that directly results from the number of $'s
|
||||
* in variable's name.
|
||||
*/
|
||||
static Context *get_ctx(char *name, int all_contexts)
|
||||
static Context *get_ctx(char *name, bool all_contexts)
|
||||
{
|
||||
Context *ctx;
|
||||
SMacro *m;
|
||||
@ -1236,8 +1236,8 @@ hash_findix(struct hash_table *hash, const char *str)
|
||||
/*
|
||||
* Determine if we should warn on defining a single-line macro of
|
||||
* name `name', with `nparam' parameters. If nparam is 0 or -1, will
|
||||
* return TRUE if _any_ single-line macro of that name is defined.
|
||||
* Otherwise, will return TRUE if a single-line macro with either
|
||||
* return true if _any_ single-line macro of that name is defined.
|
||||
* Otherwise, will return true if a single-line macro with either
|
||||
* `nparam' or no parameters is defined.
|
||||
*
|
||||
* If a macro with precisely the right number of parameters is
|
||||
@ -1264,9 +1264,9 @@ smacro_defined(Context * ctx, char *name, int nparam, SMacro ** defn,
|
||||
m = ctx->localmac;
|
||||
} else if (name[0] == '%' && name[1] == '$') {
|
||||
if (cstk)
|
||||
ctx = get_ctx(name, FALSE);
|
||||
ctx = get_ctx(name, false);
|
||||
if (!ctx)
|
||||
return FALSE; /* got to return _something_ */
|
||||
return false; /* got to return _something_ */
|
||||
m = ctx->localmac;
|
||||
} else {
|
||||
m = (SMacro *) hash_findix(smacros, name);
|
||||
@ -1281,12 +1281,12 @@ smacro_defined(Context * ctx, char *name, int nparam, SMacro ** defn,
|
||||
else
|
||||
*defn = NULL;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
m = m->next;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1307,9 +1307,9 @@ static void count_mmac_params(Token * t, int *nparam, Token *** params)
|
||||
*params = nasm_realloc(*params, sizeof(**params) * paramsize);
|
||||
}
|
||||
skip_white_(t);
|
||||
brace = FALSE;
|
||||
brace = false;
|
||||
if (tok_is_(t, "{"))
|
||||
brace = TRUE;
|
||||
brace = true;
|
||||
(*params)[(*nparam)++] = t;
|
||||
while (tok_isnt_(t, brace ? "}" : ","))
|
||||
t = t->next;
|
||||
@ -1353,7 +1353,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
|
||||
switch (i) {
|
||||
case PPC_IFCTX:
|
||||
j = FALSE; /* have we matched yet? */
|
||||
j = false; /* have we matched yet? */
|
||||
while (cstk && tline) {
|
||||
skip_white_(tline);
|
||||
if (!tline || tline->type != TOK_ID) {
|
||||
@ -1363,13 +1363,13 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
return -1;
|
||||
}
|
||||
if (!nasm_stricmp(tline->text, cstk->name))
|
||||
j = TRUE;
|
||||
j = true;
|
||||
tline = tline->next;
|
||||
}
|
||||
break;
|
||||
|
||||
case PPC_IFDEF:
|
||||
j = FALSE; /* have we matched yet? */
|
||||
j = false; /* have we matched yet? */
|
||||
while (tline) {
|
||||
skip_white_(tline);
|
||||
if (!tline || (tline->type != TOK_ID &&
|
||||
@ -1380,7 +1380,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
goto fail;
|
||||
}
|
||||
if (smacro_defined(NULL, tline->text, 0, NULL, 1))
|
||||
j = TRUE;
|
||||
j = true;
|
||||
tline = tline->next;
|
||||
}
|
||||
break;
|
||||
@ -1398,7 +1398,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
goto fail;
|
||||
}
|
||||
tt = tt->next;
|
||||
j = TRUE; /* assume equality unless proved not */
|
||||
j = true; /* assume equality unless proved not */
|
||||
while ((t->type != TOK_OTHER || strcmp(t->text, ",")) && tt) {
|
||||
if (tt->type == TOK_OTHER && !strcmp(tt->text, ",")) {
|
||||
error(ERR_NONFATAL, "`%s': more than one comma on line",
|
||||
@ -1414,7 +1414,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
continue;
|
||||
}
|
||||
if (tt->type != t->type) {
|
||||
j = FALSE; /* found mismatching tokens */
|
||||
j = false; /* found mismatching tokens */
|
||||
break;
|
||||
}
|
||||
/* Unify surrounding quotes for strings */
|
||||
@ -1423,7 +1423,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
tt->text[strlen(tt->text) - 1] = t->text[0];
|
||||
}
|
||||
if (mstrcmp(tt->text, t->text, i == PPC_IFIDN) != 0) {
|
||||
j = FALSE; /* found mismatching tokens */
|
||||
j = false; /* found mismatching tokens */
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1431,12 +1431,12 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
tt = tt->next;
|
||||
}
|
||||
if ((t->type != TOK_OTHER || strcmp(t->text, ",")) || tt)
|
||||
j = FALSE; /* trailing gunk on one end or other */
|
||||
j = false; /* trailing gunk on one end or other */
|
||||
break;
|
||||
|
||||
case PPC_IFMACRO:
|
||||
{
|
||||
int found = 0;
|
||||
bool found = false;
|
||||
MMacro searching, *mmac;
|
||||
|
||||
tline = tline->next;
|
||||
@ -1449,9 +1449,9 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
}
|
||||
searching.name = nasm_strdup(tline->text);
|
||||
searching.casesense = (i == PP_MACRO);
|
||||
searching.plus = FALSE;
|
||||
searching.nolist = FALSE;
|
||||
searching.in_progress = FALSE;
|
||||
searching.plus = false;
|
||||
searching.nolist = false;
|
||||
searching.in_progress = false;
|
||||
searching.rep_nest = NULL;
|
||||
searching.nparam_min = 0;
|
||||
searching.nparam_max = INT_MAX;
|
||||
@ -1491,7 +1491,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
}
|
||||
if (tline && tok_is_(tline->next, "+")) {
|
||||
tline = tline->next;
|
||||
searching.plus = TRUE;
|
||||
searching.plus = true;
|
||||
}
|
||||
mmac = (MMacro *) hash_findix(mmacros, searching.name);
|
||||
while (mmac) {
|
||||
@ -1500,7 +1500,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
|| searching.plus)
|
||||
&& (searching.nparam_min <= mmac->nparam_max
|
||||
|| mmac->plus)) {
|
||||
found = TRUE;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
mmac = mmac->next;
|
||||
@ -1525,7 +1525,7 @@ static int if_condition(Token * tline, enum preproc_token ct)
|
||||
t = tline;
|
||||
while (tok_type_(t, TOK_WHITESPACE))
|
||||
t = t->next;
|
||||
j = FALSE; /* placate optimiser */
|
||||
j = false; /* placate optimiser */
|
||||
if (t)
|
||||
j = t->type == needtype;
|
||||
break;
|
||||
@ -1573,7 +1573,7 @@ void expand_macros_in_string(char **p)
|
||||
{
|
||||
Token *line = tokenize(*p);
|
||||
line = expand_smacro(line);
|
||||
*p = detoken(line, FALSE);
|
||||
*p = detoken(line, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1960,7 +1960,7 @@ static int do_directive(Token * tline)
|
||||
error(ERR_NONFATAL, "%s", p);
|
||||
nasm_free(p);
|
||||
} else {
|
||||
p = detoken(tline, FALSE);
|
||||
p = detoken(tline, false);
|
||||
error(ERR_WARNING, "%s", p);
|
||||
nasm_free(p);
|
||||
}
|
||||
@ -2047,9 +2047,9 @@ static int do_directive(Token * tline)
|
||||
defining = nasm_malloc(sizeof(MMacro));
|
||||
defining->name = nasm_strdup(tline->text);
|
||||
defining->casesense = (i == PP_MACRO);
|
||||
defining->plus = FALSE;
|
||||
defining->nolist = FALSE;
|
||||
defining->in_progress = FALSE;
|
||||
defining->plus = false;
|
||||
defining->nolist = false;
|
||||
defining->in_progress = false;
|
||||
defining->rep_nest = NULL;
|
||||
tline = expand_smacro(tline->next);
|
||||
skip_white_(tline);
|
||||
@ -2086,12 +2086,12 @@ static int do_directive(Token * tline)
|
||||
}
|
||||
if (tline && tok_is_(tline->next, "+")) {
|
||||
tline = tline->next;
|
||||
defining->plus = TRUE;
|
||||
defining->plus = true;
|
||||
}
|
||||
if (tline && tok_type_(tline->next, TOK_ID) &&
|
||||
!nasm_stricmp(tline->next->text, ".nolist")) {
|
||||
tline = tline->next;
|
||||
defining->nolist = TRUE;
|
||||
defining->nolist = true;
|
||||
}
|
||||
mmac = (MMacro *) hash_findix(mmacros, defining->name);
|
||||
while (mmac) {
|
||||
@ -2181,14 +2181,14 @@ static int do_directive(Token * tline)
|
||||
return DIRECTIVE_FOUND;
|
||||
|
||||
case PP_REP:
|
||||
nolist = FALSE;
|
||||
nolist = false;
|
||||
do {
|
||||
tline = tline->next;
|
||||
} while (tok_type_(tline, TOK_WHITESPACE));
|
||||
|
||||
if (tok_type_(tline, TOK_ID) &&
|
||||
nasm_stricmp(tline->text, ".nolist") == 0) {
|
||||
nolist = TRUE;
|
||||
nolist = true;
|
||||
do {
|
||||
tline = tline->next;
|
||||
} while (tok_type_(tline, TOK_WHITESPACE));
|
||||
@ -2222,7 +2222,7 @@ static int do_directive(Token * tline)
|
||||
defining = nasm_malloc(sizeof(MMacro));
|
||||
defining->name = NULL; /* flags this macro as a %rep block */
|
||||
defining->casesense = 0;
|
||||
defining->plus = FALSE;
|
||||
defining->plus = false;
|
||||
defining->nolist = nolist;
|
||||
defining->in_progress = i;
|
||||
defining->nparam_min = defining->nparam_max = 0;
|
||||
@ -2299,7 +2299,7 @@ static int do_directive(Token * tline)
|
||||
return DIRECTIVE_FOUND;
|
||||
}
|
||||
|
||||
ctx = get_ctx(tline->text, FALSE);
|
||||
ctx = get_ctx(tline->text, false);
|
||||
|
||||
mname = tline->text;
|
||||
last = tline;
|
||||
@ -2404,7 +2404,7 @@ static int do_directive(Token * tline)
|
||||
smac->casesense = ((i == PP_DEFINE) || (i == PP_XDEFINE));
|
||||
smac->nparam = nparam;
|
||||
smac->expansion = macro_start;
|
||||
smac->in_progress = FALSE;
|
||||
smac->in_progress = false;
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
|
||||
@ -2425,7 +2425,7 @@ static int do_directive(Token * tline)
|
||||
}
|
||||
|
||||
/* Find the context that symbol belongs to */
|
||||
ctx = get_ctx(tline->text, FALSE);
|
||||
ctx = get_ctx(tline->text, false);
|
||||
if (!ctx)
|
||||
smhead = (SMacro **) hash_findi(smacros, tline->text, NULL);
|
||||
else
|
||||
@ -2468,7 +2468,7 @@ static int do_directive(Token * tline)
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
}
|
||||
ctx = get_ctx(tline->text, FALSE);
|
||||
ctx = get_ctx(tline->text, false);
|
||||
|
||||
mname = tline->text;
|
||||
last = tline;
|
||||
@ -2525,7 +2525,7 @@ static int do_directive(Token * tline)
|
||||
smac->casesense = (i == PP_STRLEN);
|
||||
smac->nparam = 0;
|
||||
smac->expansion = macro_start;
|
||||
smac->in_progress = FALSE;
|
||||
smac->in_progress = false;
|
||||
free_tlist(tline);
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
@ -2542,7 +2542,7 @@ static int do_directive(Token * tline)
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
}
|
||||
ctx = get_ctx(tline->text, FALSE);
|
||||
ctx = get_ctx(tline->text, false);
|
||||
|
||||
mname = tline->text;
|
||||
last = tline;
|
||||
@ -2624,7 +2624,7 @@ static int do_directive(Token * tline)
|
||||
smac->casesense = (i == PP_SUBSTR);
|
||||
smac->nparam = 0;
|
||||
smac->expansion = macro_start;
|
||||
smac->in_progress = FALSE;
|
||||
smac->in_progress = false;
|
||||
free_tlist(tline);
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
@ -2643,7 +2643,7 @@ static int do_directive(Token * tline)
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
}
|
||||
ctx = get_ctx(tline->text, FALSE);
|
||||
ctx = get_ctx(tline->text, false);
|
||||
|
||||
mname = tline->text;
|
||||
last = tline;
|
||||
@ -2711,7 +2711,7 @@ static int do_directive(Token * tline)
|
||||
smac->casesense = (i == PP_ASSIGN);
|
||||
smac->nparam = 0;
|
||||
smac->expansion = macro_start;
|
||||
smac->in_progress = FALSE;
|
||||
smac->in_progress = false;
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
|
||||
@ -2743,7 +2743,7 @@ static int do_directive(Token * tline)
|
||||
src_set_linnum(k);
|
||||
istk->lineinc = m;
|
||||
if (tline) {
|
||||
nasm_free(src_set_fname(detoken(tline, FALSE)));
|
||||
nasm_free(src_set_fname(detoken(tline, false)));
|
||||
}
|
||||
free_tlist(origline);
|
||||
return DIRECTIVE_FOUND;
|
||||
@ -3003,7 +3003,7 @@ static Token *expand_smacro(Token * tline)
|
||||
if ((mname = tline->text)) {
|
||||
/* if this token is a local macro, look in local context */
|
||||
if (tline->type == TOK_ID || tline->type == TOK_PREPROC_ID)
|
||||
ctx = get_ctx(mname, TRUE);
|
||||
ctx = get_ctx(mname, true);
|
||||
else
|
||||
ctx = NULL;
|
||||
if (!ctx) {
|
||||
@ -3065,7 +3065,7 @@ static Token *expand_smacro(Token * tline)
|
||||
do {
|
||||
t = tline->next;
|
||||
while (tok_type_(t, TOK_SMAC_END)) {
|
||||
t->mac->in_progress = FALSE;
|
||||
t->mac->in_progress = false;
|
||||
t->text = NULL;
|
||||
t = tline->next = delete_Token(t);
|
||||
}
|
||||
@ -3088,14 +3088,14 @@ static Token *expand_smacro(Token * tline)
|
||||
params[0] = tline->next;
|
||||
paramsize = nasm_malloc(sparam * sizeof(int));
|
||||
paramsize[0] = 0;
|
||||
while (TRUE) { /* parameter loop */
|
||||
while (true) { /* parameter loop */
|
||||
/*
|
||||
* For some unusual expansions
|
||||
* which concatenates function call
|
||||
*/
|
||||
t = tline->next;
|
||||
while (tok_type_(t, TOK_SMAC_END)) {
|
||||
t->mac->in_progress = FALSE;
|
||||
t->mac->in_progress = false;
|
||||
t->text = NULL;
|
||||
t = tline->next = delete_Token(t);
|
||||
}
|
||||
@ -3200,7 +3200,7 @@ static Token *expand_smacro(Token * tline)
|
||||
}
|
||||
tt = new_Token(tline, TOK_SMAC_END, NULL, 0);
|
||||
tt->mac = m;
|
||||
m->in_progress = TRUE;
|
||||
m->in_progress = true;
|
||||
tline = tt;
|
||||
for (t = m->expansion; t; t = t->next) {
|
||||
if (t->type >= TOK_SMAC_PARAM) {
|
||||
@ -3237,7 +3237,7 @@ static Token *expand_smacro(Token * tline)
|
||||
}
|
||||
|
||||
if (tline->type == TOK_SMAC_END) {
|
||||
tline->mac->in_progress = FALSE;
|
||||
tline->mac->in_progress = false;
|
||||
tline = delete_Token(tline);
|
||||
} else {
|
||||
t = *tail = tline;
|
||||
@ -3525,13 +3525,13 @@ static int expand_mmacro(Token * tline)
|
||||
paramlen = nparam ? nasm_malloc(nparam * sizeof(*paramlen)) : NULL;
|
||||
|
||||
for (i = 0; params[i]; i++) {
|
||||
int brace = FALSE;
|
||||
int brace = false;
|
||||
int comma = (!m->plus || i < nparam - 1);
|
||||
|
||||
t = params[i];
|
||||
skip_white_(t);
|
||||
if (tok_is_(t, "{"))
|
||||
t = t->next, brace = TRUE, comma = FALSE;
|
||||
t = t->next, brace = true, comma = false;
|
||||
params[i] = t;
|
||||
paramlen[i] = 0;
|
||||
while (t) {
|
||||
@ -3566,7 +3566,7 @@ static int expand_mmacro(Token * tline)
|
||||
ll->first = NULL;
|
||||
istk->expansion = ll;
|
||||
|
||||
m->in_progress = TRUE;
|
||||
m->in_progress = true;
|
||||
m->params = params;
|
||||
m->iline = tline;
|
||||
m->nparam = nparam;
|
||||
@ -3771,7 +3771,7 @@ static char *pp_getline(void)
|
||||
nasm_free(m->params);
|
||||
free_tlist(m->iline);
|
||||
nasm_free(m->paramlen);
|
||||
l->finishes->in_progress = FALSE;
|
||||
l->finishes->in_progress = false;
|
||||
} else
|
||||
free_mmacro(m);
|
||||
}
|
||||
@ -3790,7 +3790,7 @@ static char *pp_getline(void)
|
||||
tline = l->first;
|
||||
istk->expansion = l->next;
|
||||
nasm_free(l);
|
||||
p = detoken(tline, FALSE);
|
||||
p = detoken(tline, false);
|
||||
list->line(LIST_MACRO, p);
|
||||
nasm_free(p);
|
||||
break;
|
||||
@ -3851,7 +3851,7 @@ static char *pp_getline(void)
|
||||
Line *l = nasm_malloc(sizeof(Line));
|
||||
l->next = defining->expansion;
|
||||
l->first = tline;
|
||||
l->finishes = FALSE;
|
||||
l->finishes = false;
|
||||
defining->expansion = l;
|
||||
continue;
|
||||
} else if (istk->conds && !emitting(istk->conds->state)) {
|
||||
@ -3880,7 +3880,7 @@ static char *pp_getline(void)
|
||||
/*
|
||||
* De-tokenize the line again, and emit it.
|
||||
*/
|
||||
line = detoken(tline, TRUE);
|
||||
line = detoken(tline, true);
|
||||
free_tlist(tline);
|
||||
break;
|
||||
} else {
|
||||
@ -3996,7 +3996,7 @@ void pp_pre_include(char *fname)
|
||||
l = nasm_malloc(sizeof(Line));
|
||||
l->next = predef;
|
||||
l->first = inc;
|
||||
l->finishes = FALSE;
|
||||
l->finishes = false;
|
||||
predef = l;
|
||||
}
|
||||
|
||||
@ -4018,7 +4018,7 @@ void pp_pre_define(char *definition)
|
||||
l = nasm_malloc(sizeof(Line));
|
||||
l->next = predef;
|
||||
l->first = def;
|
||||
l->finishes = FALSE;
|
||||
l->finishes = false;
|
||||
predef = l;
|
||||
}
|
||||
|
||||
@ -4034,7 +4034,7 @@ void pp_pre_undefine(char *definition)
|
||||
l = nasm_malloc(sizeof(Line));
|
||||
l->next = predef;
|
||||
l->first = def;
|
||||
l->finishes = FALSE;
|
||||
l->finishes = false;
|
||||
predef = l;
|
||||
}
|
||||
|
||||
|
@ -19,9 +19,6 @@
|
||||
|
||||
#define PROGRAM_VERSION "0.1"
|
||||
|
||||
/** Types **/
|
||||
typedef enum { FALSE, TRUE } bool;
|
||||
|
||||
/** Constants **/
|
||||
const char commands[] = "adnrtx";
|
||||
const char modifiers[] = "cflouvV";
|
||||
@ -125,7 +122,7 @@ void put_header(struct rdlm_hdr *hdr, FILE * libfp, char *modname)
|
||||
return;
|
||||
if (fwrite(hdr, 1, sizeof(*hdr), libfp) != sizeof(*hdr) ||
|
||||
(modname && (fwrite(modname, 1, n, libfp) != n)))
|
||||
error_exit(3, TRUE, "could not write header");
|
||||
error_exit(3, true, "could not write header");
|
||||
}
|
||||
|
||||
/*
|
||||
@ -138,11 +135,11 @@ char copybytes(FILE * fp, FILE * fp2, int n)
|
||||
for (i = 0; i < n; i++) {
|
||||
t = fgetc(fp);
|
||||
if (t == EOF)
|
||||
error_exit(1, FALSE, "premature end of file in '%s'",
|
||||
error_exit(1, false, "premature end of file in '%s'",
|
||||
_argv[2]);
|
||||
if (fp2)
|
||||
if (fputc(t, fp2) == EOF)
|
||||
error_exit(1, FALSE, "write error");
|
||||
error_exit(1, false, "write error");
|
||||
}
|
||||
return (char)t;
|
||||
}
|
||||
@ -160,11 +157,11 @@ int32_t copyint32_t(FILE * fp, FILE * fp2)
|
||||
for (i = 0; i < 4; i++) {
|
||||
t = fgetc(fp);
|
||||
if (t == EOF)
|
||||
error_exit(1, FALSE, "premature end of file in '%s'",
|
||||
error_exit(1, false, "premature end of file in '%s'",
|
||||
_argv[2]);
|
||||
if (fp2)
|
||||
if (fputc(t, fp2) == EOF)
|
||||
error_exit(1, FALSE, "write error");
|
||||
error_exit(1, false, "write error");
|
||||
*p++ = t;
|
||||
}
|
||||
int32_ttolocal(&l);
|
||||
@ -189,13 +186,13 @@ int create_library(char *libname)
|
||||
|
||||
libfp = fopen(libname, "wb");
|
||||
if (!libfp)
|
||||
error_exit(1, TRUE, "could not open '%s'\n", libname);
|
||||
error_exit(1, true, "could not open '%s'\n", libname);
|
||||
|
||||
/* Write library header */
|
||||
put_header(&hdr, libfp, NULL);
|
||||
|
||||
fclose(libfp);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -213,7 +210,7 @@ int add_module(FILE * libfp, const char *fname, char *modname)
|
||||
|
||||
/* Initialize some fields in the module header */
|
||||
if (stat(fname, &finfo) < 0)
|
||||
error_exit(1, TRUE, "could not stat '%s'", fname);
|
||||
error_exit(1, true, "could not stat '%s'", fname);
|
||||
hdr.date = finfo.st_mtime;
|
||||
hdr.owner = finfo.st_uid;
|
||||
hdr.group = finfo.st_gid;
|
||||
@ -221,7 +218,7 @@ int add_module(FILE * libfp, const char *fname, char *modname)
|
||||
|
||||
modfp = fopen(fname, "rb");
|
||||
if (!modfp)
|
||||
error_exit(1, TRUE, "could not open '%s'", fname);
|
||||
error_exit(1, true, "could not open '%s'", fname);
|
||||
|
||||
/* Write module header */
|
||||
put_header(&hdr, libfp, modname);
|
||||
@ -232,11 +229,11 @@ int add_module(FILE * libfp, const char *fname, char *modname)
|
||||
if (i == EOF)
|
||||
break;
|
||||
if (fputc(i, libfp) == EOF)
|
||||
error_exit(1, FALSE, "write error");
|
||||
error_exit(1, false, "write error");
|
||||
}
|
||||
|
||||
fclose(modfp);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -263,19 +260,19 @@ int main(int argc, char **argv)
|
||||
for (i = 1; i < strlen(argv[1]); i++) {
|
||||
switch (c = argv[1][i]) {
|
||||
case 'c':
|
||||
options.createok = TRUE;
|
||||
options.createok = true;
|
||||
break;
|
||||
case 'f':
|
||||
options.usefname = TRUE;
|
||||
options.usefname = true;
|
||||
break;
|
||||
case 'l':
|
||||
options.align = TRUE;
|
||||
options.align = true;
|
||||
break;
|
||||
case 'o':
|
||||
options.odate = TRUE;
|
||||
options.odate = true;
|
||||
break;
|
||||
case 'u':
|
||||
options.fresh = TRUE;
|
||||
options.fresh = true;
|
||||
break;
|
||||
case 'v':
|
||||
options.verbose++;
|
||||
@ -285,13 +282,13 @@ int main(int argc, char **argv)
|
||||
exit(0);
|
||||
default:
|
||||
if (strchr(commands, c) == NULL)
|
||||
error_exit(2, FALSE, "invalid command or modifier '%c'",
|
||||
error_exit(2, false, "invalid command or modifier '%c'",
|
||||
c);
|
||||
}
|
||||
}
|
||||
|
||||
if (argc < 3)
|
||||
error_exit(2, FALSE, "missing library name");
|
||||
error_exit(2, false, "missing library name");
|
||||
|
||||
/* Process the command */
|
||||
if (argv[1][0] == '-')
|
||||
@ -299,7 +296,7 @@ int main(int argc, char **argv)
|
||||
switch (c = argv[1][0]) {
|
||||
case 'a': /* add a module */
|
||||
if (argc < 4 || (!options.usefname && argc != 5))
|
||||
error_exit(2, FALSE, "invalid number of arguments");
|
||||
error_exit(2, false, "invalid number of arguments");
|
||||
|
||||
/* Check if a library already exists. If not - create it */
|
||||
if (access(argv[2], F_OK) < 0) {
|
||||
@ -310,7 +307,7 @@ int main(int argc, char **argv)
|
||||
|
||||
libfp = fopen(argv[2], "ab");
|
||||
if (!libfp)
|
||||
error_exit(1, TRUE, "could not open '%s'", argv[2]);
|
||||
error_exit(1, true, "could not open '%s'", argv[2]);
|
||||
|
||||
if (!options.usefname)
|
||||
add_module(libfp, argv[4], argv[3]);
|
||||
@ -329,17 +326,17 @@ int main(int argc, char **argv)
|
||||
if (!options.usefname)
|
||||
argc--;
|
||||
if (argc < 4)
|
||||
error_exit(2, FALSE, "required parameter missing");
|
||||
error_exit(2, false, "required parameter missing");
|
||||
p = options.usefname ? argv[3] : argv[4];
|
||||
case 't': /* list library contents */
|
||||
libfp = fopen(argv[2], "rb");
|
||||
if (!libfp)
|
||||
error_exit(1, TRUE, "could not open '%s'\n", argv[2]);
|
||||
error_exit(1, true, "could not open '%s'\n", argv[2]);
|
||||
|
||||
/* Read library header */
|
||||
if (fread(&hdr, 1, sizeof(hdr), libfp) != sizeof(hdr) ||
|
||||
hdr.magic != RDLAMAG)
|
||||
error_exit(1, FALSE, "invalid library format");
|
||||
error_exit(1, false, "invalid library format");
|
||||
|
||||
/* Walk through the library looking for requested module */
|
||||
while (!feof(libfp)) {
|
||||
@ -348,11 +345,11 @@ int main(int argc, char **argv)
|
||||
if (feof(libfp))
|
||||
break;
|
||||
if (i != sizeof(hdr) || hdr.magic != RDLMMAG)
|
||||
error_exit(1, FALSE, "invalid module header");
|
||||
error_exit(1, false, "invalid module header");
|
||||
/* Read module name */
|
||||
i = hdr.hdrsize - sizeof(hdr);
|
||||
if (i > sizeof(buf) || fread(buf, 1, i, libfp) != i)
|
||||
error_exit(1, FALSE, "invalid module name");
|
||||
error_exit(1, false, "invalid module name");
|
||||
if (c == 'x') {
|
||||
/* Check against desired name */
|
||||
if (!strcmp(buf, argv[3])) {
|
||||
@ -362,7 +359,7 @@ int main(int argc, char **argv)
|
||||
p);
|
||||
modfp = fopen(p, "wb");
|
||||
if (!modfp)
|
||||
error_exit(1, TRUE, "could not open '%s'", p);
|
||||
error_exit(1, true, "could not open '%s'", p);
|
||||
}
|
||||
} else {
|
||||
printf("%-40s ", buf);
|
||||
@ -381,26 +378,26 @@ int main(int argc, char **argv)
|
||||
if (modfp)
|
||||
fclose(modfp);
|
||||
else if (c == 'x')
|
||||
error_exit(1, FALSE, "module '%s' not found in '%s'",
|
||||
error_exit(1, false, "module '%s' not found in '%s'",
|
||||
argv[3], argv[2]);
|
||||
break;
|
||||
|
||||
case 'r': /* replace module(s) */
|
||||
argc--;
|
||||
if (stat(argv[4], &finfo) < 0)
|
||||
error_exit(1, TRUE, "could not stat '%s'", argv[4]);
|
||||
error_exit(1, true, "could not stat '%s'", argv[4]);
|
||||
case 'd': /* delete module(s) */
|
||||
if (argc < 4)
|
||||
error_exit(2, FALSE, "required parameter missing");
|
||||
error_exit(2, false, "required parameter missing");
|
||||
|
||||
libfp = fopen(argv[2], "rb");
|
||||
if (!libfp)
|
||||
error_exit(1, TRUE, "could not open '%s'", argv[2]);
|
||||
error_exit(1, true, "could not open '%s'", argv[2]);
|
||||
|
||||
/* Copy the library into a temporary file */
|
||||
tmpfp = tmpfile();
|
||||
if (!tmpfp)
|
||||
error_exit(1, TRUE, "could not open temporary file");
|
||||
error_exit(1, true, "could not open temporary file");
|
||||
|
||||
stat(argv[2], &finfo);
|
||||
copybytes(libfp, tmpfp, finfo.st_size);
|
||||
@ -410,7 +407,7 @@ int main(int argc, char **argv)
|
||||
/* Read library header and write it to a new file */
|
||||
if (fread(&hdr, 1, sizeof(hdr), tmpfp) != sizeof(hdr) ||
|
||||
hdr.magic != RDLAMAG)
|
||||
error_exit(1, FALSE, "invalid library format");
|
||||
error_exit(1, false, "invalid library format");
|
||||
put_header(&hdr, libfp, NULL);
|
||||
|
||||
/* Walk through the library looking for requested module */
|
||||
@ -418,11 +415,11 @@ int main(int argc, char **argv)
|
||||
/* Read module header */
|
||||
if (fread(&hdr, 1, sizeof(hdr), tmpfp) != sizeof(hdr) ||
|
||||
hdr.magic != RDLMMAG)
|
||||
error_exit(1, FALSE, "invalid module header");
|
||||
error_exit(1, false, "invalid module header");
|
||||
/* Read module name */
|
||||
i = hdr.hdrsize - sizeof(hdr);
|
||||
if (i > sizeof(buf) || fread(buf, 1, i, tmpfp) != i)
|
||||
error_exit(1, FALSE, "invalid module name");
|
||||
error_exit(1, false, "invalid module name");
|
||||
/* Check against desired name */
|
||||
if (!strcmp(buf, argv[3]) &&
|
||||
(c == 'd' || !options.odate
|
||||
@ -449,7 +446,7 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
|
||||
if (fputc(i, libfp) == EOF)
|
||||
error_exit(1, FALSE, "write error");
|
||||
error_exit(1, false, "write error");
|
||||
}
|
||||
|
||||
fclose(libfp);
|
||||
@ -457,7 +454,7 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
|
||||
default:
|
||||
error_exit(2, FALSE, "invalid command '%c'\n", c);
|
||||
error_exit(2, false, "invalid command '%c'\n", c);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -76,10 +76,10 @@ int stdscan(void *private_data, struct tokenval *tv)
|
||||
if (isidstart(*stdscan_bufptr) ||
|
||||
(*stdscan_bufptr == '$' && isidstart(stdscan_bufptr[1]))) {
|
||||
/* now we've got an identifier */
|
||||
int is_sym = FALSE;
|
||||
bool is_sym = false;
|
||||
|
||||
if (*stdscan_bufptr == '$') {
|
||||
is_sym = TRUE;
|
||||
is_sym = true;
|
||||
stdscan_bufptr++;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user