Annotation of nono/po/format.pl, revision 1.1.1.1

1.1       root        1: #
                      2: # nono
                      3: # Copyright (C) 2020 nono project
                      4: # Licensed under nono-license.txt
                      5: #
                      6: 
                      7: #
                      8: # xgettext の出力を整形する
                      9: #
                     10: 
                     11: # ヘッダをこっちのものに差し替える
                     12: for ($i = 0; $i < 5; $i++) {
                     13:        <>;
                     14: }
                     15: print "#\n";
                     16: print "# nono\n";
                     17: print "# Copyright (C) 2020 nono project\n";
                     18: print "# Licensed under nono-license.txt\n";
                     19: print "#\n";
                     20: print "\n";
                     21: 
                     22: # コメント中のファイル名はほしいけど行番号はいらない
                     23: $in_comment = 0;
                     24: $buffered = "";
                     25: for ($lines = 0; <>; $lines++) {
                     26:        if ($in_comment == 0) {
                     27:                # 地文中
                     28:                if (/^#: (.*)/) {
                     29:                        # コメントが来た
                     30:                        $in_comment = 1;
                     31:                        $buffered = $1;
                     32:                } else {
                     33:                        # 地文の続き
                     34:                        print $_;
                     35:                }
                     36:        } else {
                     37:                # コメント中
                     38:                if (/^#: (.*)/) {
                     39:                        # コメント継続
                     40:                        $buffered .= " $1";
                     41:                } else {
                     42:                        # コメント終わり
                     43:                        $in_comment = 0;
                     44:                        $orig = $_;
                     45: 
                     46:                        # ここまでに出てきたファイル名を uniq | sort
                     47:                        $buffered =~ s/:\d+//g;
                     48:                        my @list = split(/\s+/, $buffered);
                     49:                        my @list2 = ();
                     50:                        my $prev = "";
                     51:                        foreach my $f (sort @list) {
                     52:                                if ($f ne $prev) {
                     53:                                        push @list2, $f;
                     54:                                        $prev = $f;
                     55:                                }
                     56:                        }
                     57: 
                     58:                        # 出力 (手抜きにより行折り返しは考慮しない)
                     59:                        print "#:";
                     60:                        foreach my $f (@list2) {
                     61:                                print " $f";
                     62:                        }
                     63:                        print "\n";
                     64: 
                     65:                        print $orig;
                     66:                }
                     67:        }
                     68: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.