From f0bec6ad65831ede42c278593214d4e80cd6e9b2 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Thu, 16 Jul 2015 05:53:46 +0200 Subject: [PATCH] unibdf2hex: invert encompassing if statements to match exceptions Make code easier to read and maintain. --- src/unibdf2hex.c | 93 ++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/src/unibdf2hex.c b/src/unibdf2hex.c index e8c65f5..6669d8f 100644 --- a/src/unibdf2hex.c +++ b/src/unibdf2hex.c @@ -48,57 +48,56 @@ main() unsigned rowout; while (fgets (inbuf, MAXBUF - 1, stdin) != NULL) { - if (strncmp (inbuf, "ENCODING ", 9) == 0) { - sscanf (&inbuf[9], "%d", &thispoint); /* get code point */ - /* - If we want this code point, get the BBX (bounding box) and - BITMAP information. - */ - if ((thispoint >= 0x2E80 && thispoint <= 0x2EFF) || // CJK Radicals Supplement - (thispoint >= 0x2F00 && thispoint <= 0x2FDF) || // Kangxi Radicals - (thispoint >= 0x2FF0 && thispoint <= 0x2FFF) || // Ideographic Description Characters - (thispoint >= 0x3001 && thispoint <= 0x303F) || // CJK Symbols and Punctuation (U+3000 is a space) - (thispoint >= 0x3100 && thispoint <= 0x312F) || // Bopomofo - (thispoint >= 0x31A0 && thispoint <= 0x31BF) || // Bopomofo extend - (thispoint >= 0x31C0 && thispoint <= 0x31EF) || // CJK Strokes - (thispoint >= 0x3400 && thispoint <= 0x4DBF) || // CJK Unified Ideographs Extension A - (thispoint >= 0x4E00 && thispoint <= 0x9FCF) || // CJK Unified Ideographs - (thispoint >= 0xF900 && thispoint <= 0xFAFF)) // CJK Compatibility Ideographs - { - while (fgets (inbuf, MAXBUF - 1, stdin) != NULL && - strncmp (inbuf, "BBX ", 4) != 0); /* find bounding box */ + if (strncmp (inbuf, "ENCODING ", 9) != 0) continue; + sscanf (&inbuf[9], "%d", &thispoint); /* get code point */ + /* + If we want this code point, get the BBX (bounding box) and + BITMAP information. + */ + if (!( + (thispoint >= 0x2E80 && thispoint <= 0x2EFF) || // CJK Radicals Supplement + (thispoint >= 0x2F00 && thispoint <= 0x2FDF) || // Kangxi Radicals + (thispoint >= 0x2FF0 && thispoint <= 0x2FFF) || // Ideographic Description Characters + (thispoint >= 0x3001 && thispoint <= 0x303F) || // CJK Symbols and Punctuation (U+3000 is a space) + (thispoint >= 0x3100 && thispoint <= 0x312F) || // Bopomofo + (thispoint >= 0x31A0 && thispoint <= 0x31BF) || // Bopomofo extend + (thispoint >= 0x31C0 && thispoint <= 0x31EF) || // CJK Strokes + (thispoint >= 0x3400 && thispoint <= 0x4DBF) || // CJK Unified Ideographs Extension A + (thispoint >= 0x4E00 && thispoint <= 0x9FCF) || // CJK Unified Ideographs + (thispoint >= 0xF900 && thispoint <= 0xFAFF)) // CJK Compatibility Ideographs + ) continue; + while (fgets (inbuf, MAXBUF - 1, stdin) != NULL && + strncmp (inbuf, "BBX ", 4) != 0); /* find bounding box */ - sscanf (&inbuf[4], "%d %d %d %d", &bbxx, &bbxy, &bbxxoff, &bbxyoff); - while (fgets (inbuf, MAXBUF - 1, stdin) != NULL && - strncmp (inbuf, "BITMAP", 6) != 0); /* find bitmap start */ - fprintf (stdout, "%04X:", thispoint); - digitsout = 0; - /* Print initial blank rows */ - startrow = descent + bbxyoff + bbxy; + sscanf (&inbuf[4], "%d %d %d %d", &bbxx, &bbxy, &bbxxoff, &bbxyoff); + while (fgets (inbuf, MAXBUF - 1, stdin) != NULL && + strncmp (inbuf, "BITMAP", 6) != 0); /* find bitmap start */ + fprintf (stdout, "%04X:", thispoint); + digitsout = 0; + /* Print initial blank rows */ + startrow = descent + bbxyoff + bbxy; - /* Force everything to 16 pixels wide */ - for (i = 16; i > startrow; i--) { - fprintf (stdout,"0000"); - digitsout += 4; - } - while (fgets (inbuf, MAXBUF - 1, stdin) != NULL && - strncmp (inbuf, "END", 3) != 0) { /* copy bitmap until END */ - sscanf (inbuf, "%X", &rowout); - /* Now force glyph to a 16x16 grid even if they'd fit in 8x16 */ - if (bbxx <= 8) rowout <<= 8; /* shift left for 16x16 glyph */ - rowout >>= bbxxoff; - fprintf (stdout, "%04X", rowout); - digitsout += 4; - } + /* Force everything to 16 pixels wide */ + for (i = 16; i > startrow; i--) { + fprintf (stdout,"0000"); + digitsout += 4; + } + while (fgets (inbuf, MAXBUF - 1, stdin) != NULL && + strncmp (inbuf, "END", 3) != 0) { /* copy bitmap until END */ + sscanf (inbuf, "%X", &rowout); + /* Now force glyph to a 16x16 grid even if they'd fit in 8x16 */ + if (bbxx <= 8) rowout <<= 8; /* shift left for 16x16 glyph */ + rowout >>= bbxxoff; + fprintf (stdout, "%04X", rowout); + digitsout += 4; + } - /* Pad for 16x16 glyph */ - while (digitsout < 64) { - fprintf (stdout,"0000"); - digitsout += 4; - } - fprintf (stdout,"\n"); - } + /* Pad for 16x16 glyph */ + while (digitsout < 64) { + fprintf (stdout,"0000"); + digitsout += 4; } + fprintf (stdout,"\n"); } exit (0); } -- 2.30.0