OLD | NEW |
| (Empty) |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 // | |
5 // Make functions using (int argc, char** argv) usable as (sys.argv) from python | |
6 | |
7 %typemap(in) (int argc, char **argv) { | |
8 int i; | |
9 if (!PyList_Check($input)) { | |
10 PyErr_SetString(PyExc_ValueError, "Expecting a list"); | |
11 return NULL; | |
12 } | |
13 $1 = PyList_Size($input); | |
14 $2 = (char **) malloc(($1+1)*sizeof(char *)); | |
15 for (i = 0; i < $1; i++) { | |
16 PyObject *s = PyList_GetItem($input,i); | |
17 if (!PyString_Check(s)) { | |
18 free($2); | |
19 PyErr_SetString(PyExc_ValueError, "List items must be strings"); | |
20 return NULL; | |
21 } | |
22 $2[i] = PyString_AsString(s); | |
23 } | |
24 $2[i] = 0; | |
25 } | |
26 | |
27 %typemap(freearg) (int argc, char **argv) { | |
28 if ($2) free($2); | |
29 } | |
30 | |
OLD | NEW |