1

m4の文字列の最後の文字を削除するためのマクロを作成しようとしていますが、次のようなことをしようとしています。

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

これは最も仕事に近いものですが、それでも私はそれを適切に達成することができません。今、助けが必要です。

4

2 に答える 2

1

私は最近そのようなマクロを書かなければなりませんでした、私のために働いたのは:

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

YMMV。

于 2012-11-23T18:38:55.307 に答える
1

これが最適な方法であるかどうかはわかりませんが、機能します。

define(`__count_m1',`eval($1 - $2)')dnl
define(`__del_last3',`substr($1,`0',__count_m1(len($1),3))')dnl
于 2011-06-15T10:08:22.893 に答える