#N canvas 380 24 632 642 10; #X obj 0 0 doc_h gf/; #X obj 3 994 doc_also; #X obj 0 1014 doc_f; #X obj 3 146 doc_c 1; #X obj 3 221 doc_i 2; #X obj 14 251 doc_ii 0; #X obj 14 887 doc_ii 1; #X obj 3 919 doc_o 1; #X obj 14 949 doc_oo 0; #X obj 97 887 doc_m i1 list; #X text 232 176 format string \, joined with single spaces (just like default of [gf/l2s]); #X obj 97 251 doc_m i0 list; #X obj 103 994 makefilename; #X obj 97 949 doc_m o0 symbol; #X obj 232 887 doc_same 0; #X obj 134 45 gf/sprintf; #X obj 187 994 zexy/makesymbol; #X obj 289 994 cyclone/sprintf; #X obj 391 994 #sprintf; #X obj 14 176 doc_cc any; #X obj 97 176 doc_m cany ; #X obj 14 176 doc_cc 0; #X text 232 251 elements for the format string. will result in errors when element list has float instead of symbol \, symbol instead of float \, or is too short. (isn't supposed to crash \, unlike [makefilename]). ; #X text 232 608 %ld %lld %hd %hhd and other variants of the same kind (with l ll h hh L q j z t) are not supported and rejected. They don't make sense in the context of Pd anyway.; #X text 232 512 %m %n %p formats and 1$ 2$ 3$ placeholders are currently not supported \, but if you find a reason to support them \, contact gridflow-dev.; #X text 233 109 Also \, produces a single symbol output \, no reparsing à la cyclone/sprintf.; #X text 232 949 a single symbol \, no reparsing. if you want a grid output instead \, look at [#sprintf].; #X text 232 39 very good replacement for [makefilename] \, [zexy/makesymbol] \, and [cyclone/sprintf].; #X text 233 76 Supports most of the sprintf features that are rejected by other externals.; #X text 232 451 [gf/sprintf] (and relatives [#sprintf] and [gf/error]) is the only sprintf implementation for pd that supports %*d \, %.*d \, %*.*d and such \, that is \, the placeholders for field width.; #X text 232 656 [gf/sprintf] could eventually support custom format specifiers filling needs that are specific to pd. if you have ideas \, contact gridflow-dev.; #X text 232 312 relative to the sprintf man page \, every "double" (big float) argument comes straight from a float argument in your list \, every int argument is converted from a float argument in your list \, every char* argument is converted from a symbol (or float) argument in your list \, whereas int* arguments \, void* arguments and other arguments are not supported. if the wrong kind of element is encountered \, or if there are not enough elements \, an error will be produced instead. currently \, it's not an error to have too many list elements \, but it could become one.; #X obj 393 37 makefilename; #X obj 237 55 zexy/makesymbol; #X obj 375 56 cyclone/sprintf; #X text 232 704 [gf/sprintf] has no field width limit other than the one of sprintf() \, whereas cyclone prevents anything bigger than %256s. ; #X text 232 752 [gf/sprintf] also does not have any size limit in the output. [makefilename] crashes after 1000 bytes (that usually means around 1000 characters). beware that many objects have a 1000 character limit bug \, including many pd internal classes \, many external classes \, but not GridFlow classes.; #X text 232 560 all other features of sprintf() from are supposed to be supported. this was coded by reading a version of "man 3 sprintf" dated 19 déc 2008; #X text 232 839 see also http://www.kernel.org/doc/man-pages/online/pages/man3/sprintf.3.html ; #X connect 1 1 12 0; #X connect 1 1 16 0; #X connect 1 1 17 0; #X connect 1 1 18 0; #X connect 9 1 14 0; #X connect 11 1 22 0; #X connect 11 1 29 0; #X connect 11 1 24 0; #X connect 11 1 37 0; #X connect 11 1 30 0; #X connect 11 1 31 0; #X connect 11 1 35 0; #X connect 11 1 36 0; #X connect 11 1 38 0; #X connect 11 1 23 0; #X connect 13 1 26 0; #X connect 20 1 10 0;