-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcommout
executable file
·97 lines (76 loc) · 2.07 KB
/
commout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/env perl
#=======================================================================
# commout
# File ID: 998d8948-5d37-11df-86c9-90e6ba3022ac
# Kommenterer ut stdin.
#=======================================================================
use strict;
use warnings;
my $comm_pattern = "";
my $is_c = 0;
my $is_l = 0;
my $is_html = 0;
my $is_pre = 0;
my $is_re = 0;
my $prog_name = "commout";
my $spc_str = "";
my $Kommentar = "";
if ($#ARGV > -1) {
$_ = $ARGV[0];
/^--h/ && &print_help(0) ||
/^html$/i && ($is_html = 1) ||
/^pre$/i && ($is_pre = 1) ||
/^re$/i && ($is_re = 1, $is_pre = 1) ||
/^c$/i && ($is_c = 1) ||
/^l$/i && ($is_l = 1) ||
($comm_pattern = $ARGV[0]);
} else {
$comm_pattern = '#';
}
if ($is_l) {
my $Element = defined($ARGV[1]) ? $ARGV[1] : "l";
while (<STDIN>) {
chomp;
print("<$Element>$_</$Element>\n");
}
exit 0;
}
defined($ARGV[1]) && ($spc_str = " ", $Kommentar = $ARGV[1]);
$is_html && print("<!--$spc_str" . $Kommentar . " \x7B\x7B\x7B\n") ||
$is_pre && printf("%s<pre>\n", $is_re ? "" : "<p>") ||
$is_c && printf("/*$spc_str" . $Kommentar . "\n");
my $Bck = "";
while (<STDIN>) {
($is_html || $is_pre || $is_c) || s/^([\t ]*)/$1$comm_pattern /;
print;
$Bck = $_;
}
if ($is_html || $is_c) {
# Hvis stdin ikke slutta med newline, skrives en space.
$Bck =~ /\n$/ || print(" ");
}
$is_html && print("\x7D\x7D\x7D -->\n") ||
$is_pre && print("</pre>\n") ||
$is_c && print(" */\n");
sub print_help {
my $Retval = shift;
print <<END;
Syntax:
$prog_name
For bruk i bl.a. perl og sh. Setter '#' foran hver linje.
$prog_name html ["Overskrift"]
HTML-source.
$prog_name pre
Også til html, men <p><pre> brukes istedenfor.
$prog_name re
Som "pre", men uten <p> i begynnelsen.
$prog_name c
C-kode. Setter inn /* */ .
$prog_name l [tag]
XML-elementer. Setter inn <l> hvis ingenting skrives som parametere.
$prog_name [andre_ting]
Setter [andre_ting] foran hver linje.
END
exit($Retval);
} # print_help()
# vim: set ts=4 sw=4 sts=4 et fenc=utf8 fo+=w2 :