From 678058dbc7d0cc67a3eed98968a0df514c54cb41 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Fri, 30 Aug 2013 07:55:56 +0100 Subject: [PATCH] Revert non-scilab changes: Octave modifications --- Examples/octave/contract/runme.m | 2 +- Examples/octave/funcptr/runme.m | 1 - Examples/octave/variables/example.c | 10 +++------- Lib/octave/std_vector.i | 17 ++++++++++++++++- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Examples/octave/contract/runme.m b/Examples/octave/contract/runme.m index 5793849b1..fa36bbe10 100644 --- a/Examples/octave/contract/runme.m +++ b/Examples/octave/contract/runme.m @@ -4,7 +4,7 @@ swigexample # Call our gcd() function -x = -2; +x = 42; y = 105; g = swigexample.gcd(x,y); printf("The gcd of %d and %d is %d\n",x,y,g); diff --git a/Examples/octave/funcptr/runme.m b/Examples/octave/funcptr/runme.m index 513a7d346..4e2e28fbc 100644 --- a/Examples/octave/funcptr/runme.m +++ b/Examples/octave/funcptr/runme.m @@ -1,4 +1,3 @@ -#!/usr/bin/octave # file: runme.m swigexample diff --git a/Examples/octave/variables/example.c b/Examples/octave/variables/example.c index 7a8fa9baa..15dcc1b8e 100644 --- a/Examples/octave/variables/example.c +++ b/Examples/octave/variables/example.c @@ -25,7 +25,7 @@ double dvar = 0; char *strvar = 0; const char cstrvar[] = "Goodbye"; int *iptrvar = 0; -char name[5] = "Dave"; +char name[256] = "Dave"; char path[256] = "/home/beazley"; @@ -53,8 +53,8 @@ void print_vars() { printf("strvar = %s\n", strvar ? strvar : "(null)"); printf("cstrvar = %s\n", cstrvar ? cstrvar : "(null)"); printf("iptrvar = %p\n", iptrvar); - printf("name = %c%c%c%c%c\n", name[0],name[1],name[2],name[3],name[4]); - printf("ptptr = %p %s\n", ptptr, Point_print( ptptr ) ); + printf("name = %s\n", name); + printf("ptptr = %p (%d, %d)\n", ptptr, ptptr ? ptptr->x : 0, ptptr ? ptptr->y : 0); printf("pt = (%d, %d)\n", pt.x, pt.y); printf("status = %d\n", status); } @@ -67,10 +67,6 @@ int *new_int(int value) { return ip; } -int value_int(int *value) { - return *value; -} - /* A function to create a point */ Point *new_Point(int x, int y) { diff --git a/Lib/octave/std_vector.i b/Lib/octave/std_vector.i index 127de8976..2862b5e77 100644 --- a/Lib/octave/std_vector.i +++ b/Lib/octave/std_vector.i @@ -1,7 +1,22 @@ // Vectors -%fragment("StdVectorTraits","header") +%fragment("StdVectorTraits","header",fragment="StdSequenceTraits") %{ + namespace swig { + template + struct traits_asptr > { + static int asptr(const octave_value& obj, std::vector **vec) { + return traits_asptr_stdseq >::asptr(obj, vec); + } + }; + + template + struct traits_from > { + static octave_value from(const std::vector& vec) { + return traits_from_stdseq >::from(vec); + } + }; + } %} #define %swig_vector_methods(Type...) %swig_sequence_methods(Type)