From 5a349e333087d9901d1a046139ec942c36afcb93 Mon Sep 17 00:00:00 2001 From: midipix Date: Jan 09 2016 21:34:39 +0000 Subject: amgc_output_pad_symbol(): use symwidth, fix unspecified tab-width code path. of the three compilers in use (gcc 5.3.0, clang 3.6.2, cparser 1.22.1), flaws in the previous version of this function were only spotted by cparser. --- diff --git a/src/output/amgc_output_pad_symbol.c b/src/output/amgc_output_pad_symbol.c index 6a475ee..6c1d34a 100644 --- a/src/output/amgc_output_pad_symbol.c +++ b/src/output/amgc_output_pad_symbol.c @@ -21,20 +21,15 @@ int amgc_output_pad_symbol( if (layout->symwidth < 1) return -1; - if (layout->tabwidth) { - symwidth += layout->tabwidth; - symwidth &= (~(layout->tabwidth-1)); - } else { - symwidth += AMGC_TAB_WIDTH; - symwidth &= (~(AMGC_TAB_WIDTH-1)); - } - if (layout->tabwidth == 0) return fprintf(fout,"%*c",layout->symwidth-len,' '); + symwidth += layout->tabwidth; + symwidth &= (~(layout->tabwidth-1)); + len &= (~(layout->tabwidth-1)); - while (len < layout->symwidth) { + while (len < symwidth) { if (fputc('\t',fout) < 0) return -1; else