как разбить последний символ строки в m4

Я пытаюсь создать макрос для удаления последнего символа строки в m4, я пытаюсь сделать что-то вроде:

define(`delete_last',substr(`$1',`0',eval(``len($1)'-1')))dnl

Это тот, который был ближе всего к работе, но все же я не могу добиться его должным образом. Мне нужна помощь сейчас.


m4
person Sambatyon    schedule 08.06.2011    source источник


Ответы (2)


Не знаю, это оптимальный способ сделать это, но он работает:

define(`__count_m1',`eval($1 - $2)')dnl
define(`__del_last3',`substr($1,`0',__count_m1(len($1),3))')dnl
person Sambatyon    schedule 15.06.2011

Недавно мне пришлось написать такой макрос, что у меня сработало:

define(`CHOMP',`substr($1,0,eval(len($1)-1))')dnl

YMMV.

person shabbychef    schedule 23.11.2012