aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flatom_pr.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-02-25 18:18:32 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-02-25 18:18:32 +0000
commitb27da754180a1d86346f5f77179d607d22befe34 (patch)
treebebbe136e036bfe5b4ba56f19ad941a7a8f4a194 /externals/grill/flext/source/flatom_pr.cpp
parent2a1bcbb954a73a6bd4415e6c3dbc1f6176d8f210 (diff)
""
svn path=/trunk/; revision=430
Diffstat (limited to 'externals/grill/flext/source/flatom_pr.cpp')
-rw-r--r--externals/grill/flext/source/flatom_pr.cpp207
1 files changed, 138 insertions, 69 deletions
diff --git a/externals/grill/flext/source/flatom_pr.cpp b/externals/grill/flext/source/flatom_pr.cpp
index b6cc0e5f..c43da7b0 100644
--- a/externals/grill/flext/source/flatom_pr.cpp
+++ b/externals/grill/flext/source/flatom_pr.cpp
@@ -1,69 +1,138 @@
-/*
-
-flext - C++ layer for Max/MSP and pd (pure data) externals
-
-Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net)
-For information on usage and redistribution, and for a DISCLAIMER OF ALL
-WARRANTIES, see the file, "license.txt," in this distribution.
-
-*/
-
-/*! \file flatom_pr.cpp
- \brief Definitions for printing and scanning the t_atom type.
-*/
-
-#include "flext.h"
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#ifdef __MWERKS__
-#define STD std
-#else
-#define STD
-#endif
-
-void flext::PrintAtom(const t_atom &a,char *buf,int bufsz)
-{
- GetAString(a,buf,bufsz?bufsz:100000);
-}
-
-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
-#if FLEXT_SYS == FLEXT_SYS_MAX
- 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;
-}
-
-
+/*
+
+
+
+flext - C++ layer for Max/MSP and pd (pure data) externals
+
+
+
+Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net)
+
+For information on usage and redistribution, and for a DISCLAIMER OF ALL
+
+WARRANTIES, see the file, "license.txt," in this distribution.
+
+
+
+*/
+
+
+
+/*! \file flatom_pr.cpp
+
+ \brief Definitions for printing and scanning the t_atom type.
+
+*/
+
+
+
+#include "flext.h"
+
+#include <ctype.h>
+
+#include <stdlib.h>
+
+#include <string.h>
+
+#include <stdio.h>
+
+
+
+#ifdef __MWERKS__
+
+#define STD std
+
+#else
+
+#define STD
+
+#endif
+
+
+
+void flext::PrintAtom(const t_atom &a,char *buf,int bufsz)
+
+{
+
+ GetAString(a,buf,bufsz?bufsz:100000);
+
+}
+
+
+
+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
+
+#if FLEXT_SYS == FLEXT_SYS_MAX
+
+ 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;
+
+}
+
+
+
+
+