# HG changeset patch # User jwe # Date 1173797162 0 # Node ID 5011ac2fc23dadc282266f53282a7a4abb4d67c7 # Parent fe9817a6ee98d0cb8286e14166ebfc64db1f79d3 [project @ 2007-03-13 14:45:51 by jwe] diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,15 @@ +2007-03-13 John W. Eaton + + * miscellaneous/cast.m: Use feval and strcmp with cell to check + arg instead of switch statement. + From Søren Hauberg + +2007-03-12 John W. Eaton + + * miscellaneous/cast.m: New function. + + * miscellaneous/delete.m: Call __go_delete__, not __uiobject_delete__. + 2007-03-08 John W. Eaton * miscellaneous/copyfile.m, miscellaneous/movefile.m: Perform diff --git a/scripts/miscellaneous/cast.m b/scripts/miscellaneous/cast.m new file mode 100644 --- /dev/null +++ b/scripts/miscellaneous/cast.m @@ -0,0 +1,46 @@ +## Copyright (C) 2007 John W. Eaton +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, write to the Free +## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +## 02110-1301, USA. + +## -*- texinfo -*- +## @deftypefn {Function File} {} cast (@var{val}, @var{type}) +## Convert @var{val} to data type @var{type}. +## @seealso{int8, uint8, int16, uint16, int32, uint32, int64, uint64, double} +## @end deftypefn + +## Author: jwe + +function retval = cast (val, typ) + + if (nargin == 2) + if (ischar (typ)) + if (any (strcmp (typ, {"int8"; "uint8"; "int16"; "uint16"; + "int32"; "uint32"; "int64"; "uint64"; + "double"; "single"}))) + retval = feval (typ, val); + else + error ("cast: type name `%s' is not a built-in type", typ); + endif + else + error ("cast: expecting type name as second argument"); + endif + else + print_usage (); + endif + +endfunction