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