blob: 4ab3ffa174d7053c7b6ac9393679bccdcecf14ad [file] [log] [blame]
gwt.team.knorton3bee6a42006-12-11 01:16:34 +00001/*
2 * Copyright 2006 Google Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16#include "gwt-ll.h"
17#include "JStringWrap.h"
18
19// http://unixjunkie.blogspot.com/2006/07/access-argc-and-argv-from-anywhere.html
20extern "C" int *_NSGetArgc(void);
21extern "C" char ***_NSGetArgv(void);
22
23/*
24 * Class: com_google_gwt_dev_shell_mac_LowLevelSaf
25 * Method: _getArgc
26 * Signature: ()I
27 */
28JNIEXPORT jint JNICALL Java_com_google_gwt_dev_shell_mac_LowLevelSaf__1getArgc
29 (JNIEnv* env , jclass) {
30 return *_NSGetArgc();
31}
32
33/*
34 * Class: com_google_gwt_dev_shell_mac_LowLevelSaf
35 * Method: _getArgv
36 * Signature: ()Ljava/lang/String;
37 */
38JNIEXPORT jstring JNICALL Java_com_google_gwt_dev_shell_mac_LowLevelSaf__1getArgv
39 (JNIEnv* env, jclass, jint i) {
40 int argc = *_NSGetArgc();
41 if (i < 0 || i >= argc) {
42 return 0;
43 }
44 char **argv = *_NSGetArgv();
45 return env->NewStringUTF(argv[i]);
46}