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