12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 #ifndef _JLI_UTIL_H
27 #define _JLI_UTIL_H
28
29 #include <stdlib.h>
30 #include <string.h>
31 #include <stdio.h>
32 #include <jni.h>
33 #define JLDEBUG_ENV_ENTRY "_JAVA_LAUNCHER_DEBUG"
34
35 void *JLI_MemAlloc(size_t size);
36 void *JLI_MemRealloc(void *ptr, size_t size);
37 char *JLI_StringDup(const char *s1);
38 void JLI_MemFree(void *ptr);
39 int JLI_StrCCmp(const char *s1, const char* s2);
40
41 typedef struct {
42 char *arg;
43 jboolean has_wildcard;
44 } StdArg;
45
46 StdArg *JLI_GetStdArgs();
47 int JLI_GetStdArgc();
48
49 #define JLI_StrLen(p1) strlen((p1))
50 #define JLI_StrChr(p1, p2) strchr((p1), (p2))
51 #define JLI_StrRChr(p1, p2) strrchr((p1), (p2))
52 #define JLI_StrCmp(p1, p2) strcmp((p1), (p2))
53 #define JLI_StrNCmp(p1, p2, p3) strncmp((p1), (p2), (p3))
54 #define JLI_StrCat(p1, p2) strcat((p1), (p2))
55 #define JLI_StrCpy(p1, p2) strcpy((p1), (p2))
56 #define JLI_StrNCpy(p1, p2, p3) strncpy((p1), (p2), (p3))
57 #define JLI_StrStr(p1, p2) strstr((p1), (p2))
58 #define JLI_StrSpn(p1, p2) strspn((p1), (p2))
59 #define JLI_StrCSpn(p1, p2) strcspn((p1), (p2))
60 #define JLI_StrPBrk(p1, p2) strpbrk((p1), (p2))
61 #define JLI_StrTok(p1, p2) strtok((p1), (p2))
62
63 /* On Windows lseek() is in io.h rather than the location dictated by POSIX. */
64 #ifdef _WIN32
65 #include <windows.h>
66 #include <io.h>
67 #include <process.h>
68 #define JLI_StrCaseCmp(p1, p2) stricmp((p1), (p2))
69 #define JLI_StrNCaseCmp(p1, p2, p3) strnicmp((p1), (p2), (p3))
70 int JLI_Snprintf(char *buffer, size_t size, const char *format, ...);
71 void JLI_CmdToArgs(char *cmdline);
72 #define JLI_Lseek _lseeki64
73 #define JLI_PutEnv _putenv
74 #define JLI_GetPid _getpid
75 #else /* NIXES */
76 #include <unistd.h>
77 #include <strings.h>
78 #define JLI_StrCaseCmp(p1, p2) strcasecmp((p1), (p2))
79 #define JLI_StrNCaseCmp(p1, p2, p3) strncasecmp((p1), (p2), (p3))
80 #define JLI_Snprintf snprintf
81 #define JLI_PutEnv putenv
82 #define JLI_GetPid getpid
83 #ifdef __solaris__
84 #define JLI_Lseek llseek
85 #endif
86 #ifdef __linux__
87 #define _LARGFILE64_SOURCE
88 #define JLI_Lseek lseek64
89 #endif
90 #ifdef MACOSX
91 #define JLI_Lseek lseek
92 #endif
93 #ifdef _AIX
94 #define JLI_Lseek lseek
95 #endif
96 #endif /* _WIN32 */
97
98 /*
99 * Make launcher spit debug output.
100 */
101 void JLI_TraceLauncher(const char* fmt, ...);
102 void JLI_SetTraceLauncher();
103 jboolean JLI_IsTraceLauncher();
104
105 #endif /* _JLI_UTIL_H */
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 #ifndef _JLI_UTIL_H
27 #define _JLI_UTIL_H
28
29 #include <stdlib.h>
30 #include <string.h>
31 #include <stdio.h>
32
33 #ifndef NO_JNI
34 #include <jni.h>
35 #else
36 #define jboolean int
37 #define JNI_TRUE 1
38 #define JNI_FALSE 0
39 #endif
40
41 #define JLDEBUG_ENV_ENTRY "_JAVA_LAUNCHER_DEBUG"
42
43 void *JLI_MemAlloc(size_t size);
44 void *JLI_MemRealloc(void *ptr, size_t size);
45 char *JLI_StringDup(const char *s1);
46 void JLI_MemFree(void *ptr);
47 int JLI_StrCCmp(const char *s1, const char* s2);
48
49 typedef struct {
50 char *arg;
51 jboolean has_wildcard;
52 } StdArg;
53
54 StdArg *JLI_GetStdArgs();
55 int JLI_GetStdArgc();
56
57 #define JLI_StrLen(p1) strlen((p1))
58 #define JLI_StrChr(p1, p2) strchr((p1), (p2))
59 #define JLI_StrRChr(p1, p2) strrchr((p1), (p2))
60 #define JLI_StrCmp(p1, p2) strcmp((p1), (p2))
61 #define JLI_StrNCmp(p1, p2, p3) strncmp((p1), (p2), (p3))
62 #define JLI_StrCat(p1, p2) strcat((p1), (p2))
63 #define JLI_StrCpy(p1, p2) strcpy((p1), (p2))
64 #define JLI_StrNCpy(p1, p2, p3) strncpy((p1), (p2), (p3))
65 #define JLI_StrStr(p1, p2) strstr((p1), (p2))
66 #define JLI_StrSpn(p1, p2) strspn((p1), (p2))
67 #define JLI_StrCSpn(p1, p2) strcspn((p1), (p2))
68 #define JLI_StrPBrk(p1, p2) strpbrk((p1), (p2))
69 #define JLI_StrTok(p1, p2) strtok((p1), (p2))
70
71 /* On Windows lseek() is in io.h rather than the location dictated by POSIX. */
72 #ifdef _WIN32
73 #include <windows.h>
74 #include <io.h>
75 #include <process.h>
76 #define JLI_StrCaseCmp(p1, p2) stricmp((p1), (p2))
77 #define JLI_StrNCaseCmp(p1, p2, p3) strnicmp((p1), (p2), (p3))
78 int JLI_Snprintf(char *buffer, size_t size, const char *format, ...);
79 void JLI_CmdToArgs(char *cmdline, jboolean not_java);
80 #define JLI_Lseek _lseeki64
81 #define JLI_PutEnv _putenv
82 #define JLI_GetPid _getpid
83 #else /* NIXES */
84 #include <unistd.h>
85 #include <strings.h>
86 #define JLI_StrCaseCmp(p1, p2) strcasecmp((p1), (p2))
87 #define JLI_StrNCaseCmp(p1, p2, p3) strncasecmp((p1), (p2), (p3))
88 #define JLI_Snprintf snprintf
89 #define JLI_PutEnv putenv
90 #define JLI_GetPid getpid
91 #ifdef __solaris__
92 #define JLI_Lseek llseek
93 #endif
94 #ifdef __linux__
95 #define _LARGFILE64_SOURCE
96 #define JLI_Lseek lseek64
97 #endif
98 #ifdef MACOSX
99 #define JLI_Lseek lseek
100 #endif
101 #ifdef _AIX
102 #define JLI_Lseek lseek
103 #endif
104 #endif /* _WIN32 */
105
106 /*
107 * Make launcher spit debug output.
108 */
109 void JLI_TraceLauncher(const char* fmt, ...);
110 void JLI_SetTraceLauncher();
111 jboolean JLI_IsTraceLauncher();
112
113 /*
114 * JLI_List - a dynamic list of char*
115 */
116 struct JLI_List_
117 {
118 char **elements;
119 int size;
120 int capacity;
121 };
122 typedef struct JLI_List_ *JLI_List;
123
124 JLI_List JLI_List_new(int capacity);
125 void JLI_List_free(JLI_List l);
126 void JLI_List_ensureCapacity(JLI_List l, int capacity);
127 /* e must be JLI_MemFree-able */
128 void JLI_List_add(JLI_List l, char *e);
129 /* a copy is made out of beg */
130 void JLI_List_addSubstring(JLI_List l, const char *beg, size_t len);
131 char *JLI_List_combine(JLI_List sl);
132 char *JLI_List_join(JLI_List l, char sep);
133 JLI_List JLI_List_split(const char *str, char sep);
134
135 JLI_List JLI_ExpandArgFile(const char *arg, jboolean not_java);
136
137 #endif /* _JLI_UTIL_H */
|