]> git.saurik.com Git - android/aapt.git/commitdiff
am 6c6ddbff: Fix writing text version of styleable IDs. do not merge.
authorXavier Ducrohet <xav@android.com>
Wed, 26 Sep 2012 18:03:45 +0000 (11:03 -0700)
committerAndroid Git Automerger <android-git-automerger@android.com>
Wed, 26 Sep 2012 18:03:45 +0000 (11:03 -0700)
* commit '6c6ddbff890afb2133f6da79237cf581f00c13ba':
  Fix writing text version of styleable IDs. do not merge.

1  2 
Resource.cpp

diff --combined Resource.cpp
index 9c2e1b9127f1947c937cfb61eafb1df7c5354288,8bdea44b4676ce869e891adf3157fa8dc1c0b3a3..77168f948640fa57abbc70094ebf313e4c5be0af
@@@ -673,40 -673,24 +673,40 @@@ static bool applyFileOverlay(Bundle *bu
      return true;
  }
  
 -void addTagAttribute(const sp<XMLNode>& node, const char* ns8,
 -        const char* attr8, const char* value)
 +/*
 + * Inserts an attribute in a given node, only if the attribute does not
 + * exist.
 + * If errorOnFailedInsert is true, and the attribute already exists, returns false.
 + * Returns true otherwise, even if the attribute already exists.
 + */
 +bool addTagAttribute(const sp<XMLNode>& node, const char* ns8,
 +        const char* attr8, const char* value, bool errorOnFailedInsert)
  {
      if (value == NULL) {
 -        return;
 +        return true;
      }
 -    
 +
      const String16 ns(ns8);
      const String16 attr(attr8);
 -    
 +
      if (node->getAttribute(ns, attr) != NULL) {
 +        if (errorOnFailedInsert) {
 +            fprintf(stderr, "Error: AndroidManifest.xml already defines %s (in %s);"
 +                            " cannot insert new value %s.\n",
 +                    String8(attr).string(), String8(ns).string(), value);
 +            return false;
 +        }
 +
          fprintf(stderr, "Warning: AndroidManifest.xml already defines %s (in %s);"
                          " using existing value in manifest.\n",
                  String8(attr).string(), String8(ns).string());
 -        return;
 +
 +        // don't stop the build.
 +        return true;
      }
      
      node->addAttribute(ns, attr, String16(value));
 +    return true;
  }
  
  static void fullyQualifyClassName(const String8& package, sp<XMLNode> node,
@@@ -744,17 -728,11 +744,17 @@@ status_t massageManifest(Bundle* bundle
          fprintf(stderr, "No <manifest> tag.\n");
          return UNKNOWN_ERROR;
      }
 -    
 -    addTagAttribute(root, RESOURCES_ANDROID_NAMESPACE, "versionCode",
 -            bundle->getVersionCode());
 -    addTagAttribute(root, RESOURCES_ANDROID_NAMESPACE, "versionName",
 -            bundle->getVersionName());
 +
 +    bool errorOnFailedInsert = bundle->getErrorOnFailedInsert();
 +
 +    if (!addTagAttribute(root, RESOURCES_ANDROID_NAMESPACE, "versionCode",
 +            bundle->getVersionCode(), errorOnFailedInsert)) {
 +        return UNKNOWN_ERROR;
 +    }
 +    if (!addTagAttribute(root, RESOURCES_ANDROID_NAMESPACE, "versionName",
 +            bundle->getVersionName(), errorOnFailedInsert)) {
 +        return UNKNOWN_ERROR;
 +    }
      
      if (bundle->getMinSdkVersion() != NULL
              || bundle->getTargetSdkVersion() != NULL
              root->insertChildAt(vers, 0);
          }
          
 -        addTagAttribute(vers, RESOURCES_ANDROID_NAMESPACE, "minSdkVersion",
 -                bundle->getMinSdkVersion());
 -        addTagAttribute(vers, RESOURCES_ANDROID_NAMESPACE, "targetSdkVersion",
 -                bundle->getTargetSdkVersion());
 -        addTagAttribute(vers, RESOURCES_ANDROID_NAMESPACE, "maxSdkVersion",
 -                bundle->getMaxSdkVersion());
 +        if (!addTagAttribute(vers, RESOURCES_ANDROID_NAMESPACE, "minSdkVersion",
 +                bundle->getMinSdkVersion(), errorOnFailedInsert)) {
 +            return UNKNOWN_ERROR;
 +        }
 +        if (!addTagAttribute(vers, RESOURCES_ANDROID_NAMESPACE, "targetSdkVersion",
 +                bundle->getTargetSdkVersion(), errorOnFailedInsert)) {
 +            return UNKNOWN_ERROR;
 +        }
 +        if (!addTagAttribute(vers, RESOURCES_ANDROID_NAMESPACE, "maxSdkVersion",
 +                bundle->getMaxSdkVersion(), errorOnFailedInsert)) {
 +            return UNKNOWN_ERROR;
 +        }
      }
  
      if (bundle->getDebugMode()) {
          sp<XMLNode> application = root->getChildElement(String16(), String16("application"));
          if (application != NULL) {
 -            addTagAttribute(application, RESOURCES_ANDROID_NAMESPACE, "debuggable", "true");
 +            if (!addTagAttribute(application, RESOURCES_ANDROID_NAMESPACE, "debuggable", "true",
 +                    errorOnFailedInsert)) {
 +                return UNKNOWN_ERROR;
 +            }
          }
      }
  
@@@ -1946,7 -1915,7 +1946,7 @@@ static status_t writeTextLayoutClasses
                  const bool pub = (typeSpecFlags&ResTable_typeSpec::SPEC_PUBLIC) != 0;
  
                  fprintf(fp,
-                         "int styleable.%s_%s %d\n",
+                         "int styleable %s_%s %d\n",
                          nclassName.string(),
                          String8(name).string(), (int)pos);
              }