@@ -91,7 +91,7 @@ private static boolean checkForDevelopmentMode() {
91
91
if (url .getPath ().contains ("/build/libs" )) {
92
92
return true ; // Source repository Gradle JavaExec task mode
93
93
}
94
- return switch (url .getProtocol ()) {
94
+ return switch (url .getProtocol ()) {
95
95
case "file" -> true ; // Eclipse run config mode (class files)
96
96
case "jar" -> false ; // Release mode (jar files)
97
97
case "bundleresource" -> false ; // GhidraDev Utility.jar access mode
@@ -100,25 +100,33 @@ private static boolean checkForDevelopmentMode() {
100
100
}
101
101
102
102
/**
103
- * Get the user that is running the ghidra application
103
+ * Get the user that is running the ghidra application. This name may be modified to
104
+ * eliminate any spaces or leading domain name which may be present in Java's
105
+ * {@code user.name} system property.
104
106
* @return the user name
105
107
*/
106
108
public static String getUserName () {
107
109
if (userName == null ) {
108
110
String uname = System .getProperty ("user.name" );
109
111
110
- // remove the spaces since some operating systems allow
112
+ // Remove the spaces since some operating systems allow
111
113
// spaces and some do not, Java's File class doesn't
114
+ StringBuilder nameBuf = new StringBuilder ();
112
115
if (uname .indexOf (" " ) >= 0 ) {
113
- userName = "" ;
114
116
StringTokenizer tokens = new StringTokenizer (uname , " " , false );
115
117
while (tokens .hasMoreTokens ()) {
116
- userName += tokens .nextToken ();
118
+ nameBuf . append ( tokens .nextToken () );
117
119
}
120
+ uname = nameBuf .toString ();
118
121
}
119
- else {
120
- userName = uname ;
122
+
123
+ // Remove leading Domain Name if present
124
+ int slashIndex = uname .lastIndexOf ('\\' );
125
+ if (slashIndex >= 0 ) {
126
+ uname = uname .substring (slashIndex + 1 );
121
127
}
128
+
129
+ userName = uname ;
122
130
}
123
131
return userName ;
124
132
}
0 commit comments