You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by sk...@apache.org on 2022/12/08 13:14:35 UTC
[netbeans-native-installers] 05/19: [NETBEANS-1157] resolved problem with java version higher 9 and the native windows launcher
This is an automated email from the ASF dual-hosted git repository.
skygo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-native-installers.git
commit c9f2e2d4ce06a4ee209849088af8a241b350ec7e
Author: Andreas Hauffe <an...@tu-dresden.de>
AuthorDate: Tue Aug 21 08:35:03 2018 +0200
[NETBEANS-1157] resolved problem with java version higher 9 and the native windows launcher
---
launcher/windows/src/JavaUtils.c | 107 +++++++++++++++++++++++----------------
1 file changed, 64 insertions(+), 43 deletions(-)
diff --git a/launcher/windows/src/JavaUtils.c b/launcher/windows/src/JavaUtils.c
index 4fbf7f9..5e9fad4 100644
--- a/launcher/windows/src/JavaUtils.c
+++ b/launcher/windows/src/JavaUtils.c
@@ -125,58 +125,79 @@ DWORD isJavaCompatible(JavaProperties *currentJava, JavaCompatible ** compatible
JavaVersion * getJavaVersionFromString(char * string, DWORD * result) {
JavaVersion *vers = NULL;
if(getLengthA(string)>=3) {
- //hope that at least we "major.minor" : 1.5
- if(string[1]=='.') {
- char c = string[0];
+ char *p = string;
+
+ // get major
+ long major = 0;
+ while(p!=NULL) {
+ char c = p[0];
+ if(c>='0' && c<='9') {
+ major = (major) * 10 + c - '0';
+ p++;
+ continue;
+ }
+ else if(c=='.'){
+ p++;
+ }
+ else{
+ return vers;
+ }
+ break;
+ }
+
+ // get minor
+ long minor = 0;
+ while(p!=NULL) {
+ char c = p[0];
if(c>='0' && c<='9') {
- long major = c - '0';
- c = string[2];
- if(c>='0' && c<='9') {
- char *p = string + 3;
- long minor = c - '0';
- *result = ERROR_OK;
- vers = (JavaVersion*) LocalAlloc(LPTR, sizeof(JavaVersion));
- vers->major = major;
- vers->minor = minor;
- vers->micro = 0;
- vers->update = 0;
- ZERO(vers->build, 128);
- if(p!=NULL) {
- if(p[0]=='.') { // micro...
+ minor = (minor) * 10 + c - '0';
+ p++;
+ continue;
+ }
+ break;
+ }
+
+ *result = ERROR_OK;
+ vers = (JavaVersion*) LocalAlloc(LPTR, sizeof(JavaVersion));
+ vers->major = major;
+ vers->minor = minor;
+ vers->micro = 0;
+ vers->update = 0;
+ ZERO(vers->build, 128);
+
+ if(p!=NULL) {
+ if(p[0]=='.') { // micro...
+ p++;
+ while(p!=NULL) {
+ char c = p[0];
+ if(c>='0' && c<='9') {
+ vers->micro = (vers->micro) * 10 + c - '0';
+ p++;
+ continue;
+ }
+ else if(c=='_') {//update
+ p++;
+ while(p!=NULL) {
+ c = p[0];
p++;
- while(p!=NULL) {
- char c = p[0];
- if(c>='0' && c<='9') {
- vers->micro = (vers->micro) * 10 + c - '0';
- p++;
- continue;
- }
- else if(c=='_') {//update
- p++;
- while(p!=NULL) {
- c = p[0];
- p++;
- if(c>='0' && c<='9') {
- vers->update = (vers->update) * 10 + c - '0';
- continue;
- } else {
- break;
- }
- }
- } else {
- if(p!=NULL) p++;
- }
- if(c=='-' && p!=NULL) { // build number
- lstrcpyn(vers->build, p, min(127, getLengthA(p)+1));
- }
+ if(c>='0' && c<='9') {
+ vers->update = (vers->update) * 10 + c - '0';
+ continue;
+ } else {
break;
}
}
+ } else {
+ if(p!=NULL) p++;
+ }
+ if(c=='-' && p!=NULL) { // build number
+ lstrcpyn(vers->build, p, min(127, getLengthA(p)+1));
}
+ break;
}
}
}
- }
+ }
return vers;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists