]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/tools/toolutil/package.h
ICU-59173.0.1.tar.gz
[apple/icu.git] / icuSources / tools / toolutil / package.h
index 50ee72e656bddf586cbcd9edb2a31e87b15a26e4..2c5bd169093340ef11719c2603429caff7bf96ef 100644 (file)
@@ -1,12 +1,14 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2005-2010, International Business Machines
+*   Copyright (C) 2005-2014, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
 *   file name:  package.h
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -26,7 +28,7 @@
 // .dat package file representation ---------------------------------------- ***
 
 #define STRING_STORE_SIZE 100000
-#define MAX_PKG_NAME_LENGTH 32
+#define MAX_PKG_NAME_LENGTH 64
 
 typedef void CheckDependency(void *context, const char *itemName, const char *targetName);
 
@@ -51,6 +53,20 @@ public:
     /* Destructor. */
     ~Package();
 
+    /**
+     * Uses the prefix of the first entry of the package in readPackage(),
+     * rather than the package basename.
+     */
+    void setAutoPrefix() { doAutoPrefix=TRUE; }
+    /**
+     * Same as setAutoPrefix(), plus the prefix must end with the platform type letter.
+     */
+    void setAutoPrefixWithType() {
+        doAutoPrefix=TRUE;
+        prefixEndsWithType=TRUE;
+    }
+    void setPrefix(const char *p);
+
     /*
      * Read an existing .dat package file.
      * The header and item name strings are swapped into this object,
@@ -141,12 +157,15 @@ private:
 
     // data fields
     char inPkgName[MAX_PKG_NAME_LENGTH];
+    char pkgPrefix[MAX_PKG_NAME_LENGTH];
 
     uint8_t *inData;
     uint8_t header[1024];
     int32_t inLength, headerLength;
     uint8_t inCharset;
     UBool inIsBigEndian;
+    UBool doAutoPrefix;
+    UBool prefixEndsWithType;
 
     int32_t itemCount;
     int32_t itemMax;