mirror of
https://github.com/revanced/smali.git
synced 2025-05-09 19:04:32 +02:00
Correctly handle duplicate (except case) reserved file names on windows
This commit is contained in:
parent
b58433a074
commit
06bc17a75e
@ -58,7 +58,6 @@ public class ClassFileNameHandler {
|
|||||||
throw new RuntimeException("Not a valid dalvik class name");
|
throw new RuntimeException("Not a valid dalvik class name");
|
||||||
}
|
}
|
||||||
|
|
||||||
String blah;
|
|
||||||
int packageElementCount = 1;
|
int packageElementCount = 1;
|
||||||
for (int i=1; i<className.length()-1; i++) {
|
for (int i=1; i<className.length()-1; i++) {
|
||||||
if (className.charAt(i) == '/') {
|
if (className.charAt(i) == '/') {
|
||||||
@ -66,6 +65,7 @@ public class ClassFileNameHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String packageElement;
|
||||||
String[] packageElements = new String[packageElementCount];
|
String[] packageElements = new String[packageElementCount];
|
||||||
int elementIndex = 0;
|
int elementIndex = 0;
|
||||||
int elementStart = 1;
|
int elementStart = 1;
|
||||||
@ -77,7 +77,13 @@ public class ClassFileNameHandler {
|
|||||||
throw new RuntimeException("Not a valid dalvik class name");
|
throw new RuntimeException("Not a valid dalvik class name");
|
||||||
}
|
}
|
||||||
|
|
||||||
packageElements[elementIndex++] = className.substring(elementStart, i);
|
packageElement = className.substring(elementStart, i);
|
||||||
|
|
||||||
|
if (modifyWindowsReservedFilenames && isReservedFileName(packageElement)) {
|
||||||
|
packageElement += "#";
|
||||||
|
}
|
||||||
|
|
||||||
|
packageElements[elementIndex++] = packageElement;
|
||||||
elementStart = ++i;
|
elementStart = ++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -89,7 +95,13 @@ public class ClassFileNameHandler {
|
|||||||
if (elementStart >= className.length()-1) {
|
if (elementStart >= className.length()-1) {
|
||||||
throw new RuntimeException("Not a valid dalvik class name");
|
throw new RuntimeException("Not a valid dalvik class name");
|
||||||
}
|
}
|
||||||
packageElements[elementIndex] = className.substring(elementStart, className.length()-1);
|
|
||||||
|
packageElement = className.substring(elementStart, className.length()-1);
|
||||||
|
if (modifyWindowsReservedFilenames && isReservedFileName(packageElement)) {
|
||||||
|
packageElement += "#";
|
||||||
|
}
|
||||||
|
|
||||||
|
packageElements[elementIndex] = packageElement;
|
||||||
|
|
||||||
return top.addUniqueChild(packageElements, 0);
|
return top.addUniqueChild(packageElements, 0);
|
||||||
}
|
}
|
||||||
@ -170,15 +182,9 @@ public class ClassFileNameHandler {
|
|||||||
|
|
||||||
if (pathElementsIndex == pathElements.length - 1) {
|
if (pathElementsIndex == pathElements.length - 1) {
|
||||||
elementName = pathElements[pathElementsIndex];
|
elementName = pathElements[pathElementsIndex];
|
||||||
if (modifyWindowsReservedFilenames && isReservedFileName(elementName)) {
|
|
||||||
elementName += "#";
|
|
||||||
}
|
|
||||||
elementName += fileExtension;
|
elementName += fileExtension;
|
||||||
} else {
|
} else {
|
||||||
elementName = pathElements[pathElementsIndex];
|
elementName = pathElements[pathElementsIndex];
|
||||||
if (modifyWindowsReservedFilenames && isReservedFileName(elementName)) {
|
|
||||||
elementName += "#";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
elementNameLower = elementName.toLowerCase();
|
elementNameLower = elementName.toLowerCase();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user