Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇381:
LHA1.14 との相性? [BOK] 05/15 07:08

 └◇383:Re:LHA1.14 との相性? [名無し] 05/15
  └◇385:Re[2]:LHA1.14 との相性? [BOK] 05/16
   └◇391:Re[3]:LHA1.14 との相性? [BOK] 05/20 <


381● LHA1.14 との相性?[ BOK ] 2002 05/15 07:08
初めての書き込みです。
 CygWinのいつのリリースからかLHA1.14でエラーが出るようになり使えなくなっていました(ヘッダー処理、ファイルI/O?)。
 LHAのソースをいじくって解決しましたが、環境?に起因するのでしょうか。同様の問題ある方、他に居ます?
スレッド一覧


383● Re:LHA1.14 との相性?[ 名無し ] 2002 05/15 14:22
ソースをいじくったとのことですが、どのようにいじくったのでしょう?
スレッド一覧


385● Re[2]:LHA1.14 との相性?[ BOK ] 2002 05/16 09:10
リスティングや、部分解凍でChecksumエラーが発生していました。ヘッダの取り込み部分を統一?して解消しました。
以下、変更箇所です。オリジナルソースは1.14i

では。


*** lhlist.c        2002-05-16 09:05:32+09        1.1
--- lhlist.c        2002-05-16 09:04:50+09
***************
*** 325,331 ****
                }

                if (afp != stdin)
!                         fseek(afp, hdr.packed_size, SEEK_CUR);
                else {
                        i = hdr.packed_size;
                        while (i--)
--- 325,331 ----
                }

                if (afp != stdin)
!                         fseek(afp, pos+hdr.packed_size, SEEK_SET);
                else {
                        i = hdr.packed_size;
                        while (i--)

*** lhext.c        2002-05-14 09:31:25+09        1.1
--- lhext.c        2002-05-14 09:34:26+09
***************
*** 399,415 ****
        /* extract each files */
        while (get_header(afp, &hdr)) {
                if (need_file(hdr.name)) {
-                         pos = ftell(afp);
                        extract_one(afp, &hdr);
                        fseek(afp, pos + hdr.packed_size, SEEK_SET);
!                 } else {
!                         if (afp != stdin)
!                                 fseek(afp, hdr.packed_size, SEEK_CUR);
!                         else {
!                                 int i = hdr.packed_size;
!                                 while (i--)
!                                         fgetc(afp);
!                         }
                }
        }

--- 399,415 ----
        /* extract each files */
        while (get_header(afp, &hdr)) {
                if (need_file(hdr.name)) {
                        extract_one(afp, &hdr);
+                 }
+
+                 if (afp != stdin) {
+                         pos = ftell(afp);
                        fseek(afp, pos + hdr.packed_size, SEEK_SET);
!                 }
!                 else {
!                         int i = hdr.packed_size;
!                         while (i--)
!                                 fgetc(afp);
                }
        }
スレッド一覧


391● Re[3]:LHA1.14 との相性?[ BOK ] 2002 05/20 10:55
自己レスです。
一部、不具合がありました。訂正します。すんません。

*** lhext.c        2002-05-14 09:31:25+09        1.1
--- lhext.c        2002-05-20 10:50:40+09
***************
*** 399,410 ****
        /* extract each files */
        while (get_header(afp, &hdr)) {
                if (need_file(hdr.name)) {
-                         pos = ftell(afp);
                        extract_one(afp, &hdr);
!                         fseek(afp, pos + hdr.packed_size, SEEK_SET);
!                 } else {
!                         if (afp != stdin)
!                                 fseek(afp, hdr.packed_size, SEEK_CUR);
                        else {
                                int i = hdr.packed_size;
                                while (i--)
--- 399,411 ----
        /* extract each files */
        while (get_header(afp, &hdr)) {
                if (need_file(hdr.name)) {
                        extract_one(afp, &hdr);
!                 }
!                 else {
!                         if (afp != stdin) {
!                                 pos = ftell(afp);
!                                 fseek(afp, pos + hdr.packed_size, SEEK_SET);
!                         }
                        else {
                                int i = hdr.packed_size;
                                while (i--)
スレッド一覧

早田のホームページへ
CGIROOM