From: Ben Harris Date: Thu, 16 Jan 2025 13:50:00 +0000 (+0000) Subject: Stop trying to indent XML output X-Git-Tag: bedstead-3.251~26 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=27ba3363889fd41540932859f2c2465a00e07840;p=bedstead.git Stop trying to indent XML output The indentation wasn't always correct, and made the C code ugly. I've now found "xmllint --format", which does a better job, so I think it's quite reasonable to stop trying to do it myself. --- diff --git a/bedstead.c b/bedstead.c index da5e8a4..b88db87 100644 --- a/bedstead.c +++ b/bedstead.c @@ -3222,10 +3222,10 @@ main(int argc, char **argv) printf("\n"); /* Convenient macros for TTX values. */ #define TTXF(key, format, ...) \ - printf(" <" key " value='" format "'/>\n", __VA_ARGS__) + printf("<" key " value='" format "'/>\n", __VA_ARGS__) #define TTXI(key, i) TTXF(key, "%ld", (long)(i)) #define TTXS(key, s) TTXF(key, "%s", (s)) - printf(" \n"); + printf("\n"); TTXS("tableVersion", "1.0"); TTXS("fontRevision", VERSION); TTXI("checkSumAdjustment", 0); @@ -3252,9 +3252,9 @@ main(int argc, char **argv) TTXI("fontDirectionHint", 0); /* Fully bi-di. */ TTXI("indexToLocFormat", 0); TTXI("glyphDataFormat", 0); - printf(" \n"); + printf("\n"); - printf(" \n"); + printf("\n"); TTXS("tableVersion", "0x00010000"); TTXI("ascent", ASCENT * YPIX); TTXI("descent", -DESCENT * YPIX); @@ -3269,14 +3269,14 @@ main(int argc, char **argv) TTXI("reserved2", 0); TTXI("reserved3", 0); TTXI("metricDataFormat", 0); TTXI("numberOfHMetrics", 0); /* Will be calculated by TTX. */ - printf(" \n"); + printf("\n"); - printf(" \n"); + printf("\n"); TTXS("tableVersion", "0x5000"); TTXI("numGlyphs", nglyphs); - printf(" \n"); + printf("\n"); - printf(" \n"); + printf("\n"); TTXI("version", 4); TTXI("xAvgCharWidth", XSIZE * XPIX); TTXI("usWeightClass", weight->ttfweight); @@ -3372,16 +3372,16 @@ main(int argc, char **argv) TTXI("usDefaultChar", 0); TTXI("usBreakChar", 32); TTXI("usMaxContext", 1); /* No pair subs. */ - printf(" \n"); + printf("\n"); - printf(" \n"); + printf("\n"); /* Encode each name in Mac Roman and Windows UTF-16. */ #define NAMEF(id, f, ...) \ - printf(" " \ + printf("" \ f "\n" \ - " " \ + "" \ f "\n", \ (int)(id), __VA_ARGS__, (int)(id), __VA_ARGS__) #define NAME(id, s) NAMEF(id, "%s", s) @@ -3414,9 +3414,9 @@ main(int argc, char **argv) for (i = 0; i < ngsub_features; i++) if (gsub_features[i].name != NULL) NAME(NAMEBASE_GSUB + i, gsub_features[i].name); - printf(" \n"); + printf("\n"); - printf(" \n"); + printf("\n"); TTXS("formatType", "3.0"); TTXS("italicAngle", "0.0"); TTXI("underlinePosition", -YPIX); @@ -3424,31 +3424,31 @@ main(int argc, char **argv) TTXI("isFixedPitch", 1); TTXI("minMemType42", 0); TTXI("maxMemType42", 0); TTXI("minMemType1", 0); TTXI("maxMemType1", 0); - printf(" \n"); + printf("\n"); for (i = 0; i < nglyphs; i++) glyphs_by_name[i] = glyphs + i; qsort(glyphs_by_name, nglyphs, sizeof(glyphs_by_name[0]), &compare_glyphs_by_name); - printf(" \n"); + printf("\n"); for (i = 0; i < nglyphs; i++) - printf(" \n", glyphs[i].name); - printf(" \n"); + printf("\n", glyphs[i].name); + printf("\n"); - printf(" \n"); + printf("\n"); docmap(0, 3, 4); /* Unicode 2.0+, BMP only */ docmap(0, 4, 12); /* Unicode 2.0+, full repertoire */ docmap(3, 1, 4); /* Windows Unicode, BMP only */ docmap(3, 10, 12); /* Windows Unicode, full repertoire */ - printf(" \n"); + printf("\n"); dogpos(); /* Must be before 'CFF ' because it uses glyph bitmaps. */ dogsub(); - printf(" \n"); + printf("\n"); TTXI("major", 1); TTXI("minor", 0); - printf(" \n", + printf("\n", fullname_to_fontname(get_fullname())); TTXS("version", VERSION); TTXS("Notice", "Dedicated to the public domain"); @@ -3462,7 +3462,7 @@ main(int argc, char **argv) 1.0/(YSIZE * YPIX), 1.0/(YSIZE * YPIX)); TTXF("FontBBox", "0 %d %d %d", (int)(-DESCENT * YPIX), (int)(XSIZE * XPIX), (int)(ASCENT * YPIX)); - printf(" \n"); + printf("\n"); TTXF("BlueValues", "0 0 %4g %4g %4g %4g %4g %4g", (double)(YPIX * XHEIGHT), (double)(YPIX * XHEIGHT), (double)(YPIX * ALEFHEIGHT), (double)(YPIX * ALEFHEIGHT), @@ -3479,37 +3479,37 @@ main(int argc, char **argv) /* printf("StrokedFont: 1\n"); */ /* printf("StrokeWidth: 50\n"); */ /* } */ - printf(" \n"); + printf("\n"); nsubrs = 0; for (i = 0; i < nglyphs; i++) { struct glyph *g = &glyphs[i]; if (g->flags & IS_ALIAS) { g = realglyph(g); if (g->flags & IS_SUBR) continue; - printf(" ", g->name); + printf(" ", g->name); doglyph(g); g->flags = IS_SUBR; g->subr_idx = nsubrs++; printf("\n"); } } - printf(" \n"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); + printf("\n"); for (i = 0; i < nglyphs; i++) { - printf(" ", glyphs[i].name); + printf("", glyphs[i].name); doglyph(&glyphs[i]); printf("\n"); } - printf(" \n"); - printf(" \n"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf("\n"); for (i = 0; i < nglyphs; i++) - printf(" \n", + printf("\n", glyphs[i].name, (int)(XSIZE * XPIX), (int)realglyph(&glyphs[i])->left_sidebearing); - printf(" \n"); + printf("\n"); printf("\n"); return EXIT_SUCCESS; } @@ -3653,13 +3653,13 @@ dopanose(void) * DuckRat = XRat = 5/7 */ panose[9] = 7; /* Ducking/Large */ - printf(" \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n", + printf("\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n", panose[0], panose[1], panose[2], panose[3], panose[4], panose[5], panose[6], panose[7], panose[8], panose[9]); } @@ -3670,7 +3670,7 @@ docmap(int pid, int eid, int format) int i; long limit = 0x10000; - printf(" = 0 && glyphs[i].unicode < limit) - printf(" \n", + printf("\n", (long)glyphs[i].unicode, glyphs[i].name); - printf(" \n", format); + printf("\n", format); } static void @@ -3691,60 +3691,58 @@ dogsub(void) { int i, j; - printf(" \n"); + printf("\n"); TTXS("Version", "0x00010000"); - printf(" \n"); + printf("\n"); for (i = 0; i < ngsub_scripts; i++) { - printf(" \n"); + printf("\n"); TTXS("ScriptTag", gsub_scripts[i].tag); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); } - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); for (i = 0; i < ngsub_features; i++) { - printf(" \n"); + printf("\n"); TTXS("FeatureTag", gsub_features[i].tag); - printf(" \n"); + printf("\n"); if (gsub_features[i].name != NULL) { if (gsub_features[i].tag[0] == 's') { - printf(" \n"); + printf("\n"); TTXI("Version", 0); TTXI("UINameID", NAMEBASE_GSUB + i); - printf(" \n"); + printf("\n"); } else { - printf(" " - "\n"); + printf("\n"); TTXI("Format", 0); TTXI("FeatUILabelNameID", NAMEBASE_GSUB + i); TTXI("FeatUITooltipTextNameID", 0); TTXI("SampleTextNameID", 0); TTXI("NumNamedParameters", 0); TTXI("FirstParamUILabelNameID", 0); - printf(" " - "\n"); + printf("\n"); } } /* We only have one GSUB lookup per feature, thankfully. */ TTXI("LookupListIndex", i); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); } - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); for (i = 0; i < ngsub_features; i++) { - printf(" \n", gsub_features[i].tag); + printf(" \n", gsub_features[i].tag); if (gsub_features[i].suffix != NULL) { /* Single lookup for all glyphs with a suffix. */ TTXI("LookupFlag", 0); - printf(" \n"); + printf("\n"); dosinglesubs(gsub_features[i].suffix); - printf(" \n"); + printf("\n"); } else if (gsub_features[i].xml != NULL) { /* Raw XML for a substitution. */ TTXI("LookupFlag", 0); @@ -3752,15 +3750,15 @@ dogsub(void) } else { /* All possible alternative glyphs. */ TTXI("LookupFlag", 0); - printf(" \n"); + printf("\n"); doaltsubs(gsub_features[i].noverrides, gsub_features[i].overrides); - printf(" \n"); + printf("\n"); } - printf(" \n"); + printf("\n"); } - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); } @@ -3783,7 +3781,7 @@ doaltsubs(int noverrides, const struct alt_sub_override overrides[noverrides]) bool overridden = next_override < noverrides && strcmp(glyphs_by_name[i-1]->name, overrides[next_override].base) == 0; - printf(" %s", + printf("%s", overridden ? "\n"); + printf("\n"); for (i = 0; i < noverrides; i++) { - printf(" ", overrides[i].base); + printf("", overrides[i].base); for (j = 0; j < MAX_ALT_SUB_OVERRIDE && overrides[i].alt[j] != NULL; j++) printf("", @@ -3816,7 +3814,7 @@ dosinglesubs(char const *suffix) for (i = 0; i < nglyphs; i++) if ((dot = strchr(glyphs[i].name, '.')) != NULL && strcmp(dot, suffix) == 0) - printf(" \n", + printf("\n", (int)(dot - glyphs[i].name), glyphs[i].name, glyphs[i].name); } @@ -3837,34 +3835,34 @@ dogpos(void) int dx, dh, i; /* We only support one 'GPOS' lookup, 'palt'. */ - printf(" \n"); + printf("\n"); TTXS("Version", "0x00010000"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); TTXS("ScriptTag", "DFLT"); - printf(" \n"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); + printf("\n"); TTXS("ScriptTag", "latn"); - printf(" \n"); - printf(" \n"); - printf(" \n"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf("\n"); TTXS("FeatureTag", "palt"); - printf(" \n"); + printf("\n"); TTXI("LookupListIndex", 0); - printf(" \n"); - printf(" \n"); - printf(" \n"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf("\n"); TTXI("LookupFlag", 0); /* * We have only a few dx/dh combinations, so it makes sense to @@ -3873,9 +3871,9 @@ dogpos(void) */ for (dx = 0; dx < XSIZE - 1; dx++) for (dh = (dx == 0 ? 1 : dx); dh < XSIZE - 1; dh++) { - printf(" \n"); + printf("\n"); printf("\n", dx, dh); - printf(" \n"); + printf("\n"); for (i = 0; i < nglyphs; i++) { struct glyph *g = realglyph(&glyphs[i]); if (g->flags & (MOS6|MOS4)) continue; @@ -3887,17 +3885,16 @@ dogpos(void) (fp == 0 && dx == 0 && dh == 3)) TTXS("Glyph", glyphs[i].name); } - printf(" \n"); + printf("\n"); TTXI("ValueFormat", 5); - printf(" \n", + printf("\n", (int)(-dx * XPIX), (int)(-dh * XPIX)); - printf(" \n"); + printf("\n"); } - printf(" \n"); - printf(" \n"); - printf(" \n"); + printf("\n"); + printf("\n"); + printf("\n"); } /* Emit a charstring for a glyph. */