[PD-dev] strings

Martin Peach martin.peach at sympatico.ca
Sat Dec 16 23:12:23 CET 2006


I think it would be most efficient to have a string type be a length 
followed by that many unsigned chars, similar to a Pascal string but 
with the length being something like a 32-bit integer. It would not be 
added to pd's symbol list. The atom whose type was string would have to 
contain a pointer to the first byte of the string, and a length. 
Multibyte characters would just be counted as multiple characters when 
calculating the length, so the length would be the number of bytes in 
the string, not the number of characters.
It looks too easy to me...In m_pd.h, add:
A_STRING
to t_atomtype.
Add
t_string * w_string;
 to  t_word.
Add the typedef:
typedef struct _string /* pointer to a string */
{
    unsigned long s_length; /* length of string in bytes */
    unsigned char *s_data; /* pointer to 1st byte of string */
} t_string;

...so a string atom would have a_type = A_STRING and a_w = a_w.w_string, 
which points to a t_string containing the length and a pointer to the 
string.

If pd is otherwise able to handle atom types it doesn't know about (?), 
all the string manipulation objects could be built as externals.

Martin






More information about the Pd-dev mailing list