[PD-dev] strings
Martin Peach
martin.peach at sympatico.ca
Sun Dec 17 02:39:01 CET 2006
Hans-Christoph Steiner wrote:
>
> The one problem I can think of here is that you can only have 19 bits
> of precision in Pd's 32-bit t_float. So having a length of 32 bits
> would cause problems if trying to deal with string length using
> t_floats. I could see this happening in a loop in Pd space, for example.
Yes, and it's also easier to limit strings to word (16-bit) lengths,
while 8-bit is too short.
So a t_string would look like:
typedef struct _string /* pointer to a string */
{
unsigned short s_length; /* length of string in bytes */
unsigned char *s_data; /* pointer to 1st byte of string */
} t_string;
Martin
>
> .hc
>
> On Dec 16, 2006, at 5:12 PM, Martin Peach wrote:
>
>> 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
>>
>>
>>
>> _______________________________________________
>> PD-dev mailing list
>> PD-dev at iem.at
>> http://lists.puredata.info/listinfo/pd-dev
>
>
> ------------------------------------------------------------------------
>
> News is what people want to keep hidden and everything else is
> publicity. - Bill Moyers
>
More information about the Pd-dev
mailing list