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 --- * SWIG library containing argc and argv multi-argument typemaps
* ------------------------------------------------------------
* Use it as follows:
* Use it as follow:
* %apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) }
* %apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) } extern int mainApp(size_t argc, const char **argv);
* extern int mainApp(size_t argc, const char **argv);
* then from lua:
* then in the lua:
* args = { "arg0", "arg1" }
* args = { "arg0", "arg1" } mainApp(args);
* 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) { %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) { %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") { %fragment("SWIG_AsArgcArgv","header",fragment="SWIG_AsCharPtrAndSize") {
SWIGINTERN int SWIGINTERN int
SWIG_AsArgcArgv(PyObject *input, SWIG_AsArgcArgv(PyObject *input, swig_type_info *ppchar_info, size_t *argc, char ***argv, int *owner) {
swig_type_info *ppchar_info,
size_t *argc, char ***argv, int *owner)
{
void *vptr; void *vptr;
int res = SWIG_ConvertPtr(input, &vptr, ppchar_info, 0); int res = SWIG_ConvertPtr(input, &vptr, ppchar_info, 0);
if (!SWIG_IsOK(res)) { if (!SWIG_IsOK(res)) {
@ -51,7 +48,7 @@ SWIG_AsArgcArgv(PyObject *input,
} else { } else {
/* seems dangerous, but the user asked for it... */ /* seems dangerous, but the user asked for it... */
size_t i = 0; size_t i = 0;
if (argv) { while (*argv[i] != 0) ++i;} if (argv) { while (*argv[i] != 0) ++i;}
if (argc) *argc = i; if (argc) *argc = i;
if (owner) *owner = 0; if (owner) *owner = 0;
return SWIG_OK; 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) { %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); res = SWIG_AsArgcArgv($input, $descriptor(char**), &argc, &argv, &owner);
if (!SWIG_IsOK(res)) { if (!SWIG_IsOK(res)) {
$1 = 0; $2 = 0; $1 = 0; $2 = 0;
%argument_fail(SWIG_TypeError, "int ARGC, char **ARGV", $symname, $argnum); %argument_fail(SWIG_TypeError, "int ARGC, char **ARGV", $symname, $argnum);
} else { } else {
$1 = %static_cast(argc,$1_ltype); $1 = %static_cast(argc,$1_ltype);
$2 = %static_cast(argv, $2_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) } %apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) }
%inline %{ %inline %{
int mainApp(size_t argc, const char **argv) int mainApp(size_t argc, const char **argv)
{ {
return argc; return argc;
} }
then in the ruby side: then from ruby:
args = ["asdf", "asdf2"] args = ["asdf", "asdf2"]
mainApp(args); mainApp(args);
@ -31,7 +28,7 @@
VALUE *ptr = RARRAY_PTR($input); VALUE *ptr = RARRAY_PTR($input);
for (i=0; i < size; i++, ptr++) { for (i=0; i < size; i++, ptr++) {
$2[i]= StringValuePtr(*ptr); $2[i]= StringValuePtr(*ptr);
} }
$2[i]=NULL; $2[i]=NULL;
} else { } else {
$1 = 0; $2 = 0; $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) { %typemap(in) (int ARGC, char **ARGV) {