| 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 |