summaryrefslogtreecommitdiff
path: root/editors/openoffice.org-1.1-devel/files/patch-jvmaccess+source+sunversion.cxx
blob: bbed543f102124a8a39f5748ca162a69ea65dfb6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Issuetracker : #iXXXXX#
CWS          : N/A
Author       : <maho@openoffice.org>
Description  : FreeBSD porting : do not hardcode pXX of Java version and FreeBSD native Java is always superior to Linux's one.

1. we had been hard coding Java's version by p1, p2 ... etc. but apparently
it is not a good habit. in this patch we eleminate this.

2. we'd better to use FreeBSD's native Java, and not GNU/Linux's ones if both are exist
in the system. We add 100 as micro version number, so that we treat FreeBSD's version of
java 1.4.1-p10 for example to 1.4.1_110.

3. Java version of 1.5.0_13-p7 will be treated as 1.5.0_13. -p part will be ignored.

--- jvmaccess/source/sunversion.cxx	Thu Jun 16 21:45:26 2005
+++ jvmaccess/source/sunversion.cxx	Sat Oct 22 16:42:01 2005
@@ -193,7 +193,7 @@
                     pCur ++;
                 //   nPartPos ++;
             }
-            else if (nUpdatePart == 0 && (pCur == pEnd || isalpha(*pCur)))
+            else if (nUpdatePart == 0 && (pCur == pEnd || isalpha(*pCur) || (*pCur)=='-' ))
             {
                 int len = pCur - pLast;
                 if (len >= 127) 
@@ -246,30 +247,22 @@
             m_preRelease = Rel_RC2;
 #if defined FREEBSD || defined NETBSD
 	// #i40617# and #i21615#: FreeBSD adds p1-p12 to their JDK port.
-        else if (! strcmp(pCur, "p12"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p11"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p10"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p9"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p8"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p7"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p6"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p5"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p4"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p3"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p2"))
-            m_preRelease = Rel_BETA;
-        else if (! strcmp(pCur, "p1"))
-            m_preRelease = Rel_BETA;
+        else if (!strncmp(pCur,"p",1)) //must be p[1-9]*
+	  {
+	    pCur++; //elemnate `p'
+            if (pCur < pEnd && isdigit(*pCur))
+            {
+                if (pCur < pEnd)
+                    pCur ++;
+            }
+                int len = pCur - pLast -1; //elemenate `p'
+                if (len >= 127) 
+                    return false;
+                strncpy(buf, (pLast+1), len); //elemenate `p'
+                buf[len] = 0;
+              //temporal hack we should use BSD's JDK...
+                m_arVersionParts[nPart] = atoi(buf)+100;
+	  }
 #endif
         else
             return false;