1 //------------------------------------------------------------------------------
2 // GB_mx_mxArray_to_string.c: get a MATLAB string
3 //------------------------------------------------------------------------------
4
5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
6 // SPDX-License-Identifier: Apache-2.0
7
8 //------------------------------------------------------------------------------
9
10 #include "GB_mex.h"
11
GB_mx_mxArray_to_string(char * string,const size_t maxlen,const mxArray * S)12 int GB_mx_mxArray_to_string // returns length of string, or -1 if S not a string
13 (
14 char *string, // size maxlen
15 const size_t maxlen, // length of string
16 const mxArray *S // MATLAB mxArray containing a string
17 )
18 {
19
20 size_t len = 0 ;
21 string [0] = '\0' ;
22 if (S != NULL && mxGetNumberOfElements (S) > 0)
23 {
24 if (!mxIsChar (S))
25 {
26 mexWarnMsgIdAndTxt ("GB:warn", "argument must be a string") ;
27 return (-1) ;
28 }
29 len = mxGetNumberOfElements (S) ;
30 if (len > 0)
31 {
32 mxGetString (S, string, maxlen) ;
33 string [maxlen] = '\0' ;
34 }
35 }
36 return (len) ;
37 }
38
39