what do you mean by vector aliasing? (note: i never coded with the MAX API)
well, in MSP there's a flag that prevents input-vectors in a perform- method to be overwritten by the output-vectors. the MSP-API has a function that will allocate a new vector if you set that flag. in PD, i've been told, i have to work around this myself causing a rewrite of quite few perform-routine. (and flext wouldn't help with that, as thomas pointed out earlier).
but it would be stupid to change these names because they correspond exactly to the c-function they enclose.
the "exactly" depends on the mapping system you are thinking in. Slightly different ways of mapping C->Pd may have slightly different (and thus completely incompatible) conventions.
i haven't seen one coherent convention of mapping C-stuff to PD or Max yet.
we don't have C-strings in PD (and Max). the char array in the s_name field of a symbol is the closest thing there is.
strcat for example will concatenate the char arrays of the s_name fields of 2 symbols and output a third new symbol (using gensym()). strcmp will compare the char arrays of the s_name fields of 2 symbols and give its result either as boolean true/false or like the C- function as a number representing the match-distance. strtok takes the s_name field of one symbol, and iterates through it looking for a delimiter and outputs a list containing the new elements. etc etc.
by "exactly" i mean that the function doing the work *IS* the C- string-lib function by that name. how much closer can you get?
i'm against nameclashes myself, but i think the lib-dir / import lib mechanism .hc is setting up could alleviate this issue a lot.
/*j