diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2004-06-21 14:08:57 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2004-06-21 14:08:57 +0000 |
commit | e728a5bc3db296b4b67c2d3e5b56558c42c566a8 (patch) | |
tree | 180656eeb13352bc2cee7fb759e2ff74332069d2 /externals/grill/flext/source/flatom_pr.cpp | |
parent | cefab503b7db648244a4244ef255d15609e2c205 (diff) |
""
svn path=/trunk/; revision=1826
Diffstat (limited to 'externals/grill/flext/source/flatom_pr.cpp')
-rw-r--r-- | externals/grill/flext/source/flatom_pr.cpp | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/externals/grill/flext/source/flatom_pr.cpp b/externals/grill/flext/source/flatom_pr.cpp index 9d5eeb29..43721388 100644 --- a/externals/grill/flext/source/flatom_pr.cpp +++ b/externals/grill/flext/source/flatom_pr.cpp @@ -25,95 +25,95 @@ WARRANTIES, see the file, "license.txt," in this distribution. // \TODO take bufsz into account! bool flext::PrintAtom(const t_atom &a,char *buf,int bufsz) { - bool ok = true; - if(IsFloat(a)) { - STD::snprintf(buf,bufsz,"%g",GetFloat(a)); - } - else if(IsInt(a)) { - STD::snprintf(buf,bufsz,"%i",GetInt(a)); - } - else if(IsSymbol(a)) { + bool ok = true; + if(IsFloat(a)) { + STD::snprintf(buf,bufsz,"%g",GetFloat(a)); + } + else if(IsInt(a)) { + STD::snprintf(buf,bufsz,"%i",GetInt(a)); + } + else if(IsSymbol(a)) { if(!FLEXT_ASSERT(GetSymbol(a))) *buf = 0; else STD::strncpy(buf,GetString(a),bufsz); - } - else if(IsPointer(a)) { - STD::snprintf(buf,bufsz,"%p",GetPointer(a)); - } + } + else if(IsPointer(a)) { + STD::snprintf(buf,bufsz,"%p",GetPointer(a)); + } #if FLEXT_SYS == FLEXT_SYS_PD - else if(a.a_type == A_DOLLAR) { - STD::snprintf(buf,bufsz,"$%d",a.a_w.w_index); - } - else if(a.a_type == A_DOLLSYM) { - STD::snprintf(buf,bufsz,"$%s",GetString(a)); - } + else if(a.a_type == A_DOLLAR) { + STD::snprintf(buf,bufsz,"$%d",a.a_w.w_index); + } + else if(a.a_type == A_DOLLSYM) { + STD::snprintf(buf,bufsz,"$%s",GetString(a)); + } #elif FLEXT_SYS == FLEXT_SYS_MAX - else if(a.a_type == A_DOLLAR) { - STD::snprintf(buf,bufsz,"$%d",a.a_w.w_long); - } + else if(a.a_type == A_DOLLAR) { + STD::snprintf(buf,bufsz,"$%d",a.a_w.w_long); + } #else //#pragma message("Not implemented") #endif - else { + else { error("flext: atom type unknown"); - ok = false; - } - return ok; + ok = false; + } + return ok; } bool flext::PrintList(int argc,const t_atom *argv,char *buf,int bufsz) { - bool ok = true; + bool ok = true; for(int i = 0; ok && i < argc && bufsz > 0; ++i) { - if(i) { *(buf++) = ' '; --bufsz; } // prepend space - - if(PrintAtom(argv[i],buf,bufsz)) { - int len = strlen(buf); - buf += len,bufsz -= len; - } - else - ok = false; + if(i) { *(buf++) = ' '; --bufsz; } // prepend space + + if(PrintAtom(argv[i],buf,bufsz)) { + int len = strlen(buf); + buf += len,bufsz -= len; + } + else + ok = false; } - *buf = 0; + *buf = 0; return ok; } bool flext::ScanAtom(t_atom &a,const char *buf) { - // skip whitespace - while(*buf && isspace(*buf)) ++buf; - if(!*buf) return false; - - char tmp[1024]; - strcpy(tmp,buf); - char *c = tmp; - - // check for word type (s = 0,1,2 ... int,float,symbol) - int s = 0; - for(; *c && !isspace(*c); ++c) { - if(!isdigit(*c)) - s = (*c != '.' || s == 1)?2:1; - } - - switch(s) { - case 0: // integer + // skip whitespace + while(*buf && isspace(*buf)) ++buf; + if(!*buf) return false; + + char tmp[1024]; + strcpy(tmp,buf); + char *c = tmp; + + // check for word type (s = 0,1,2 ... int,float,symbol) + int s = 0; + for(; *c && !isspace(*c); ++c) { + if(!isdigit(*c)) + s = (*c != '.' || s == 1)?2:1; + } + + switch(s) { + case 0: // integer #if FLEXT_SYS == FLEXT_SYS_MAX - SetInt(a,atol(tmp)); - break; + SetInt(a,atol(tmp)); + break; #endif - case 1: // float - SetFloat(a,(float)atof(tmp)); - break; - default: { // anything else is a symbol - char t = *c; *c = 0; - SetString(a,tmp); - *c = t; - break; - } - } - - return true; + case 1: // float + SetFloat(a,(float)atof(tmp)); + break; + default: { // anything else is a symbol + char t = *c; *c = 0; + SetString(a,tmp); + *c = t; + break; + } + } + + return true; } |