OSDN Git Service

man2html: Ignores .PD or comment lines just after .TP.
authorAkihiro MOTOKI <amotoki@gmail.com>
Tue, 15 May 2012 11:25:11 +0000 (20:25 +0900)
committerAkihiro MOTOKI <amotoki@gmail.com>
Tue, 15 May 2012 11:25:11 +0000 (20:25 +0900)
man2html assumes that a next line of .TP contains a TP item.
However, some manpages place .PD just after .TP.
To handle such cases, man2html  needs to ignore such .PD or comment
lines to convert .TP directive appropriately.

This bug is reported in [JM:00542].
Work around in commit bc2f0e5 turns out insuffient in [JM:00657].

This patch is by Masakazu Takahashi <emasaka@gmail.com>.

admin/man-1.6g/man2html/man2html.c
manual/LDP_man-pages/po4a/aio/po/ja.po
manual/LDP_man-pages/po4a/boot/po/ja.po

index 410dc04..3b51e70 100644 (file)
@@ -1703,6 +1703,23 @@ skip_till_newline(char *c)
     return c;
 }
 
+static char *
+skip_blank_lines(char *c)
+{
+    char *c2;
+
+    /* XXX: it's workaround */
+    while ((c[0] == '\n') ||
+         ((c[0] == '.') &&
+          ((V(c[1],c[2]) == V('\\','"')) ||
+           (V(c[1],c[2]) == V('P','D')) ))) {
+       c2 = skip_till_newline(c);
+       if (c2 == c) break;
+       c = c2;
+    }
+    return c;
+}
+
 int ifelseval=0;
 
 static char *
@@ -2200,6 +2217,7 @@ scan_request(char *c) {
        case V('T','P'):
            dl_begin();
            c=skip_till_newline(c);
+           c=skip_blank_lines(c);
            /* somewhere a definition ends with '.TP' */
            if (!*c) still_dd=1; else {
                c=scan_troff(c,1,NULL);
index d334f93..9c346fd 100644 (file)
@@ -1,19 +1,21 @@
 # SOME DESCRIPTIVE TITLE
 # Copyright (C) YEAR Free Software Foundation, Inc.
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
+# Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: man-pages-ja\n"
 "POT-Creation-Date: 2012-05-01 04:37+0900\n"
-"PO-Revision-Date: 2012-05-05 01:39+0900\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"PO-Revision-Date: 2012-05-12 19:50+0000\n"
+"Last-Translator: Akihiro MOTOKI <amotoki@gmail.com>\n"
+"Language-Team: Japanese (http://www.transifex.net/projects/p/man-pages-ja/"
+"language/ja/)\n"
+"Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
 
 #. type: TH
 #: build/C/man7/aio.7:24
@@ -3289,68 +3291,3 @@ msgid ""
 msgstr ""
 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_return>(3), "
 "B<aio_suspend>(3), B<aio_write>(3), B<aio>(7)"
-
-#~ msgid ""
-#~ "This function returns B<AIO_CANCELED> if all requests were successfully "
-#~ "canceled.  It returns B<AIO_NOTCANCELED> when at least one of the "
-#~ "requests specified was not canceled because it was in progress.  In this "
-#~ "case one may check the status of individual requests using B<aio_error>"
-#~ "(3).  This function returns B<AIO_ALLDONE> if all requests had already "
-#~ "been completed before this call.  When some error occurs, -1 is returned, "
-#~ "and I<errno> is set appropriately."
-#~ msgstr ""
-#~ "全てのリクエストのキャンセルが成功した場合、この関数は B<AIO_CANCELED> を"
-#~ "返す。 指定されたリクエストのうち少なくとも 1 つが進行中であるために キャ"
-#~ "ンセルできなかった場合は、 B<AIO_NOTCANCELED> が返される。 この場合は、 "
-#~ "B<aio_error>(3)  を使って個々のリクエストの状態をチェックすることができ"
-#~ "る。 呼び出される前に全てのリクエストが完了していた場合、 この関数は "
-#~ "B<AIO_ALLDONE> を返す。 何らかのエラーが起こった場合は、-1 が返されて、 "
-#~ "I<errno> が適切に設定される。"
-
-#~ msgid ""
-#~ "This function returns B<EINPROGRESS> if the request has not been "
-#~ "completed yet.  It returns B<ECANCELED> if the request was canceled.  It "
-#~ "returns 0 if the request completed successfully.  Otherwise an error "
-#~ "value is returned, the same value that would have been stored in the "
-#~ "I<errno> variable in case of a synchronous I<read>, I<write>, I<fsync>, "
-#~ "or I<fdatasync> request.  On error, the error value is returned."
-#~ msgstr ""
-#~ "リクエストがまだ完了していない場合、この関数は B<EINPROGRESS> を返す。リク"
-#~ "エストがキャンセルされた場合、この関数は B<ECANCELED> を返す。リクエストが"
-#~ "成功して完了した場合、この関数は 0 を返す。 それ以外の場合はエラー値が返さ"
-#~ "れる。 このエラー値は、同期 I<read>, I<write>, I<fsync>, I<fdatasync> リク"
-#~ "エストの場合に I<errno> に格納されるのと同じ値である。 エラーの場合はエ"
-#~ "ラー値が返される。"
-
-#~ msgid ""
-#~ "The B<aio_read>()  function requests an asynchronous \"n = read(fd, buf, "
-#~ "count)\" with fd, buf, count given by I<aiocbp-E<gt>aio_fildes>, I<aiocbp-"
-#~ "E<gt>aio_buf>, I<aiocbp-E<gt>aio_nbytes>, respectively.  The return "
-#~ "status n can be retrieved upon completion using B<aio_return>(3)."
-#~ msgstr ""
-#~ "B<aio_read>()  関数は非同期の \"n = read(fd, buf, count)\" をリクエストす"
-#~ "る。 ここで fd, buf, count は、それぞれ I<aiocbp-E<gt>aio_fildes>, "
-#~ "I<aiocbp-E<gt>aio_buf>, I<aiocbp-E<gt>aio_nbytes> で与えられる。 返り値 "
-#~ "(return status) n は、完了時に B<aio_return>(3)  を使って取得できる。"
-
-#~ msgid ""
-#~ "The B<aio_suspend>()  function suspends the calling process until at "
-#~ "least one of the asynchronous I/O requests in the list I<cblist> of "
-#~ "length I<n> have completed, a signal is delivered, or I<timeout> is not "
-#~ "NULL and the time interval it indicates has passed."
-#~ msgstr ""
-#~ "B<aio_suspend>()  関数は、長さ I<n> のリスト I<cblist> に含まれる非同期 I/"
-#~ "O リクエストのうち少なくとも 1 つが完了するか、 シグナルが配送されるか、 "
-#~ "I<timeout> が NULL でなく、かつその時間が過ぎるまで、 呼び出したプロセスを"
-#~ "停止 (suspend) する。"
-
-#~ msgid ""
-#~ "The B<aio_write>()  function requests an asynchronous \"n = write(fd, "
-#~ "buf, count)\" with fd, buf, count given by I<aiocbp-E<gt>aio_fildes>, "
-#~ "I<aiocbp-E<gt>aio_buf>, I<aiocbp-E<gt>aio_nbytes>, respectively.  The "
-#~ "return status n can be retrieved upon completion using B<aio_return>(3)."
-#~ msgstr ""
-#~ "B<aio_write>()  関数は非同期の \"n = write(fd, buf, count)\" をリクエスト"
-#~ "する。 ここで fd, buf, count は、それぞれ I<aiocbp-E<gt>aio_fildes>, "
-#~ "I<aiocbp-E<gt>aio_buf>, I<aiocbp-E<gt>aio_nbytes> で与えられる。 返り値 "
-#~ "(return status) n は、完了時に B<aio_return>(3)  を使って取得できる。"
index e3337d4..8567885 100644 (file)
@@ -1,19 +1,21 @@
 # SOME DESCRIPTIVE TITLE
 # Copyright (C) YEAR Free Software Foundation, Inc.
 # This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
+# Translators:
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: man-pages-ja\n"
 "POT-Creation-Date: 2012-05-01 04:37+0900\n"
-"PO-Revision-Date: 2012-05-01 04:42+0900\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"PO-Revision-Date: 2012-05-12 19:42+0000\n"
+"Last-Translator: Akihiro MOTOKI <amotoki@gmail.com>\n"
+"Language-Team: Japanese (http://www.transifex.net/projects/p/man-pages-ja/"
+"language/ja/)\n"
+"Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
 
 #. type: TH
 #: build/C/man2/bdflush.2:28
@@ -4186,9 +4188,3 @@ msgstr ""
 #: build/C/man8/sync.8:85
 msgid "B<sync>(2), B<halt>(8), B<reboot>(8), B<update>(8)"
 msgstr "B<sync>(2), B<halt>(8), B<reboot>(8), B<update>(8)"
-
-#~ msgid ""
-#~ "B<sync>()  first commits inodes to buffers, and then buffers to disk."
-#~ msgstr ""
-#~ "B<sync>()  はまず inode をバッファへ書き込み、 それからバッファ(buffer)を"
-#~ "ディスクへ書き込む。"