aboutsummaryrefslogtreecommitdiff
path: root/src/list2symbol.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/list2symbol.c')
-rw-r--r--src/list2symbol.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/list2symbol.c b/src/list2symbol.c
index 51a6ea2..34b3f5b 100644
--- a/src/list2symbol.c
+++ b/src/list2symbol.c
@@ -58,8 +58,12 @@ static void list2symbol_bang(t_list2symbol *x)
while(i--){
char buffer[MAXPDSTRING];
- atom_string(argv++, buffer, MAXPDSTRING);
- length+=strlen(buffer);
+ if(A_SYMBOL==argv->a_type){
+ length+=strlen(argv->a_w.w_symbol->s_name);
+ } else {
+ atom_string(argv++, buffer, MAXPDSTRING);
+ length+=strlen(buffer);
+ }
}
if (length<=0){
@@ -82,10 +86,16 @@ static void list2symbol_bang(t_list2symbol *x)
i=argc;
argv=x->ap;
while(i--){
- char buffer[MAXPDSTRING];
- atom_string(argv++, buffer, MAXPDSTRING);
- strcpy(result+len, buffer);
- len += strlen(buffer);
+ if(A_SYMBOL==argv->a_type){
+ strcpy(result+len, argv->a_w.w_symbol->s_name);
+ len+= strlen(argv->a_w.w_symbol->s_name);
+ } else {
+ char buffer[MAXPDSTRING];
+ atom_string(argv, buffer, MAXPDSTRING);
+ strcpy(result+len, buffer);
+ len += strlen(buffer);
+ }
+ argv++;
if(i && connector){
strcpy(result+len, connector);
len += connlen;