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 f338cc42f9f9f96e08bca2137c9b65c432fb5442 Author: Andreas Hauffe <andreas.hau...@tu-dresden.de> AuthorDate: Tue Aug 21 14:27:58 2018 +0200 clean up code and implementation of hints --- launcher/windows/src/JavaUtils.c | 117 +++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 61 deletions(-) diff --git a/launcher/windows/src/JavaUtils.c b/launcher/windows/src/JavaUtils.c index 5e9fad4..6012afb 100644 --- a/launcher/windows/src/JavaUtils.c +++ b/launcher/windows/src/JavaUtils.c @@ -124,80 +124,75 @@ DWORD isJavaCompatible(JavaProperties *currentJava, JavaCompatible ** compatible JavaVersion * getJavaVersionFromString(char * string, DWORD * result) { JavaVersion *vers = NULL; - if(getLengthA(string)>=3) { - 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; - } + if(getLengthA(string)<3) { + return vers; + } + + const char *p = string; + + // get major + long major = 0; + while(*p!=0) { + char c = *p++; + if(c>='0' && c<='9') { + major = (major) * 10 + c - '0'; + if (major > 999) return vers; + continue; + } else if(c=='.'){ break; + } else{ + return vers; } - - // get minor - long minor = 0; - while(p!=NULL) { - char c = p[0]; + } + + // get minor + long minor = 0; + while(*p!=0) { + char c = *p; + if(c>='0' && c<='9') { + 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[0]=='.') { // micro... + p++; + while(*p!=0) { + char c = *p; if(c>='0' && c<='9') { - minor = (minor) * 10 + c - '0'; + vers->micro = (vers->micro) * 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... + } else if(c=='_') {//update p++; - while(p!=NULL) { - char c = p[0]; + while((c = *p) != 0) { + p++; if(c>='0' && c<='9') { - vers->micro = (vers->micro) * 10 + c - '0'; - p++; + vers->update = (vers->update) * 10 + c - '0'; 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)); + break; } - break; } + } else { + if(*p!=0) p++; + } + if(c=='-' && *p!=0) { // build number + lstrcpyn(vers->build, p, min(127, getLengthA(p)+1)); } + break; } - } + } return vers; } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists