argcargv.i cosmetic updates

This commit is contained in:
William S Fulton 2022-05-15 18:32:53 +01:00
commit e4cdf9d98f
6 changed files with 25 additions and 32 deletions

View file

@ -1,17 +1,16 @@
/* ------------------------------------------------------------
* --- Argc & Argv ---
* ------------------------------------------------------------
*
* Use it as follow:
*
* %apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) }
* extern int mainApp(size_t argc, const char **argv);
*
* then in the lua:
*
* args = { "arg0", "arg1" }
* mainApp(args);
*
* SWIG library containing argc and argv multi-argument typemaps
Use it as follows:
%apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) }
extern int mainApp(size_t argc, const char **argv);
then from lua:
args = { "arg0", "arg1" }
mainApp(args);
* ------------------------------------------------------------ */
%{

View file

@ -1,5 +1,5 @@
/* ------------------------------------------------------------
* --- Argc & Argv ---
* SWIG library containing argc and argv multi-argument typemaps
* ------------------------------------------------------------ */
%typemap(in) (int ARGC, char **ARGV) {

View file

@ -1,5 +1,5 @@
/* ------------------------------------------------------------
* --- Argc & Argv ---
* SWIG library containing argc and argv multi-argument typemaps
* ------------------------------------------------------------ */
%typemap(in) (int ARGC, char **ARGV) {

View file

@ -1,13 +1,10 @@
/* ------------------------------------------------------------
* --- Argc & Argv ---
* SWIG library containing argc and argv multi-argument typemaps
* ------------------------------------------------------------ */
%fragment("SWIG_AsArgcArgv","header",fragment="SWIG_AsCharPtrAndSize") {
SWIGINTERN int
SWIG_AsArgcArgv(PyObject *input,
swig_type_info *ppchar_info,
size_t *argc, char ***argv, int *owner)
{
SWIG_AsArgcArgv(PyObject *input, swig_type_info *ppchar_info, size_t *argc, char ***argv, int *owner) {
void *vptr;
int res = SWIG_ConvertPtr(input, &vptr, ppchar_info, 0);
if (!SWIG_IsOK(res)) {
@ -51,7 +48,7 @@ SWIG_AsArgcArgv(PyObject *input,
} else {
/* seems dangerous, but the user asked for it... */
size_t i = 0;
if (argv) { while (*argv[i] != 0) ++i;}
if (argv) { while (*argv[i] != 0) ++i;}
if (argc) *argc = i;
if (owner) *owner = 0;
return SWIG_OK;
@ -66,10 +63,10 @@ SWIG_AsArgcArgv(PyObject *input,
%typemap(in,noblock=0,fragment="SWIG_AsArgcArgv") (int ARGC, char **ARGV) (int res,char **argv = 0, size_t argc = 0, int owner= 0) {
res = SWIG_AsArgcArgv($input, $descriptor(char**), &argc, &argv, &owner);
if (!SWIG_IsOK(res)) {
if (!SWIG_IsOK(res)) {
$1 = 0; $2 = 0;
%argument_fail(SWIG_TypeError, "int ARGC, char **ARGV", $symname, $argnum);
} else {
} else {
$1 = %static_cast(argc,$1_ltype);
$2 = %static_cast(argv, $2_ltype);
}

View file

@ -1,21 +1,18 @@
/* ------------------------------------------------------------
* --- Argc & Argv ---
* ------------------------------------------------------------ */
/* ------------------------------------------------------------
* SWIG library containing argc and argv multi-argument typemaps
Use it as follow:
Use it as follows:
%apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) }
%inline %{
int mainApp(size_t argc, const char **argv)
int mainApp(size_t argc, const char **argv)
{
return argc;
}
then in the ruby side:
then from ruby:
args = ["asdf", "asdf2"]
mainApp(args);
@ -31,7 +28,7 @@
VALUE *ptr = RARRAY_PTR($input);
for (i=0; i < size; i++, ptr++) {
$2[i]= StringValuePtr(*ptr);
}
}
$2[i]=NULL;
} else {
$1 = 0; $2 = 0;

View file

@ -1,5 +1,5 @@
/* ------------------------------------------------------------
* --- Argc & Argv ---
* SWIG library containing argc and argv multi-argument typemaps
* ------------------------------------------------------------ */
%typemap(in) (int ARGC, char **ARGV) {