| divert(`-1') | |
| # join(sep, args) - join each non-empty ARG into a single | |
| # string, with each element separated by SEP | |
| define(`join', | |
| `ifelse(`$#', `2', ``$2'', | |
| `ifelse(`$2', `', `', ``$2'_')$0(`$1', shift(shift($@)))')') | |
| define(`_join', | |
| `ifelse(`$#$2', `2', `', | |
| `ifelse(`$2', `', `', ``$1$2'')$0(`$1', shift(shift($@)))')') | |
| # joinall(sep, args) - join each ARG, including empty ones, | |
| # into a single string, with each element separated by SEP | |
| define(`joinall', ``$2'_$0(`$1', shift($@))') | |
| define(`_joinall', | |
| `ifelse(`$#', `2', `', ``$1$3'$0(`$1', shift(shift($@)))')') | |
| divert`'dnl |