Annotation of nono/po/format.pl, revision 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.