inline-comment.at 4.11 KB
# This file is part of GNU Mailutils. -*- Autotest -*-
# Copyright (C) 2010-2012, 2014 Free Software Foundation, Inc.
#
# GNU Mailutils is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3, or (at
# your option) any later version.
#
# GNU Mailutils is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>.

m4_pushdef([FILTER_MODE],[decode])

dnl -------------------------------------------------------------------
dnl INLINECOM(NAME, [KW = `'], [OPTS = `'], [TEXT], [OUTPUT = `'])
dnl -------------------------------------------------------------------
m4_pushdef([INLINECOM],[
AT_SETUP([inline-comment: $1])
AT_KEYWORDS([filter FILTER_MODE inline-comment icmt $2])
sed 's/\$.*//' > input <<EOT
$4
EOT
sed 's/\$.*//' > expout <<EOT
$5
EOT

AT_CHECK([fltst inline-comment FILTER_MODE read $3 < input],
[0],
[expout])
AT_CHECK([fltst inline-comment FILTER_MODE write $3 < input],
[0],
[expout])
AT_CLEANUP
])

dnl -------------------------------------------------------------------

INLINECOM([default], [icmt-dec-00], [],
[; comment 1
text 1
; comment 2
text 2

text 3
; comment 3
],
[text 1
text 2

text 3
])

INLINECOM([change comment starter], [icmt-dec-01], [-- %],
[% comment 1
text 1
% comment 2
text 2

text 3
% comment 3
],
[text 1
text 2

text 3
])

INLINECOM([remove empty lines],[icmt-dec-02],[-- -r],
[; comment 1
text 1
; comment 2
; comment 3
text 2

	text 3

	$
text 4
     text 5
],
[text 1
text 2
	text 3
text 4
     text 5[]dnl
])	

INLINECOM([remove empty lines/squeeze whitespace],[icmt-dec-03],[-- -r -s],
[; comment 1
text 1
; comment 2
; comment 3
text 2

	text 3

	$
text 4
     text 5
],
[text 1
text 2
 text 3
text 4
 text 5[]dnl
])	

INLINECOM([multichar comment starter],[icmt-dec-04],[-- rem],
[Text line 1
rem remark text
Text line 2
remark text (sic!)
Text line 3
],
[Text line 1
Text line 2
Text line 3
])

INLINECOM([multichar comment starter; follow ws; follow ws mode],[icmt-dec-05],
[-- rem -S],
[Text line 1
rem remark text
Text line 2
remark text (sic!)
Text line 3
],
[Text line 1
Text line 2
remark text (sic!)
Text line 3
])

INLINECOM([multichar; squeeze; remove empty],[icmt-dec-06],[-- rem -S -r],
[rem comment 1
text 1
rem comment 2
rem comment 3
text 2

	text 3

	$
text 4
     text 5
],
[text 1
text 2
	text 3
text 4
     text 5[]dnl
])	

INLINECOM([line info facility],[icmt-dec-07 line-info],[-- -i ';line' ';'],
[; initial comment
this is line 2
this is line 3
; A long contiguous
; sequence
; of comments
; occupying several
; lines
this is line 9
],
[;line 2
this is line 2
this is line 3
;line 9
this is line 9
])

INLINECOM([line info: newline after comment],[icmt-dec-08 line-info],
[-- -i ';line' -S ';'],
[;
text
],
[;line 2
text
])

INLINECOM([line info with follow ws],[icmt-dec-09 line-info follow-ws],
[-- ';' -S -i ';'],
[; Comment line
;:directive=1
first line
; comment
second line
;:directive=2
;
;:directive=3
last line
],
[; 2
;:directive=1
first line
; 5
second line
;:directive=2
; 8
;:directive=3
last line
])

dnl -------------------------------------------------------------------

m4_define([FILTER_MODE],[encode])

INLINECOM([encode],[icmt-enc-00],[],
[C'est dans dix ans je m'en irai
J'entends le loup et le renard chanter
J'entends le loup, le renard et la belette
J'entends le loup et le renard chanter],
[;C'est dans dix ans je m'en irai
;J'entends le loup et le renard chanter
;J'entends le loup, le renard et la belette
;J'entends le loup et le renard chanter])

INLINECOM([encode multichar; add ws],[icmt-enc-01],[-- NB: -S],
[Tri martolod yaouank
O voned da voyagi
Gant'el oant bet kaset
Betek an douar nevez],
[NB: Tri martolod yaouank
NB: O voned da voyagi
NB: Gant'el oant bet kaset
NB: Betek an douar nevez])

m4_popdef([INLINECOM])
m4_popdef([FILTER_MODE])

# End of inline-comment.at