Selaa lähdekoodia

Allow command line interface to accept glyph 0 as input (#149)

Todd York 3 vuotta sitten
vanhempi
commit
3300ab6869
3 muutettua tiedostoa jossa 5 lisäystä ja 7 poistoa
  1. 0 4
      ext/import-font.cpp
  2. 0 1
      ext/import-font.h
  3. 5 2
      main.cpp

+ 0 - 4
ext/import-font.cpp

@@ -88,10 +88,6 @@ unsigned GlyphIndex::getIndex() const {
     return index;
 }
 
-bool GlyphIndex::operator!() const {
-    return index == 0;
-}
-
 FreetypeHandle * initializeFreetype() {
     FreetypeHandle *handle = new FreetypeHandle;
     FT_Error error = FT_Init_FreeType(&handle->library);

+ 0 - 1
ext/import-font.h

@@ -17,7 +17,6 @@ class GlyphIndex {
 public:
     explicit GlyphIndex(unsigned index = 0);
     unsigned getIndex() const;
-    bool operator!() const;
 
 private:
     unsigned index;

+ 5 - 2
main.cpp

@@ -442,6 +442,7 @@ int main(int argc, const char * const *argv) {
     const char *testRender = NULL;
     const char *testRenderMulti = NULL;
     bool outputSpecified = false;
+    bool glyphIndexSpecified = false;
     GlyphIndex glyphIndex;
     unicode_t unicode = 0;
     int svgPathIndex = 0;
@@ -502,8 +503,10 @@ int main(int argc, const char * const *argv) {
             unsigned gi;
             switch (charArg[0]) {
                 case 'G': case 'g':
-                    if (parseUnsignedDecOrHex(gi, charArg+1))
+                    if (parseUnsignedDecOrHex(gi, charArg+1)) {
                         glyphIndex = GlyphIndex(gi);
+                        glyphIndexSpecified = true;
+                    }
                     break;
                 case 'U': case 'u':
                     ++charArg;
@@ -838,7 +841,7 @@ int main(int argc, const char * const *argv) {
             break;
         }
         case FONT: {
-            if (!glyphIndex && !unicode)
+            if (!glyphIndexSpecified && !unicode)
                 ABORT("No character specified! Use -font <file.ttf/otf> <character code>. Character code can be a Unicode index (65, 0x41), a character in apostrophes ('A'), or a glyph index prefixed by g (g36, g0x24).");
             FreetypeHandle *ft = initializeFreetype();
             if (!ft) return -1;