Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm Sender: cygwin-apps-owner AT cygwin DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps AT cygwin DOT com Delivered-To: mailing list cygwin-apps AT cygwin DOT com From: "Ralf Habacker" To: "Cygwin-Apps" , "Binutils" Subject: RE: Problem with cygwin install. Date: Sun, 26 May 2002 21:08:01 +0200 Message-ID: <00b301c204e8$a83e8ab0$905f07d5@BRAMSCHE> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Importance: Normal In-Reply-To: <008d01c20356$37a97b40$905f07d5@BRAMSCHE> > > Nope. You'll need to debug it. I tested this after Nicholas's recent > > remondier and it worked for me. > > > I have tried and recognized, that there are problems with the GNU long name > extension in archive_tar.cc. The filenames which fails are always over 100 > characters long and this is the limit. > Does anyone have some informations about how this extension works ? It seems noone, so it needs a little more time to analyse this bug, but I think I've catched this bug: The problem was, that in archive_tar::next_file_name() in case of filenames with the GNU long name extension a flag "state.have_longname" is set, but never reset, which inhibits propper generating of following filenames in the archive. 2002-05-26 Ralf Habacker * archive_tar.cc (archive_tar::next_file_name()) fixed broken GNU long name extension support. Index: archive_tar.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/archive_tar.cc,v retrieving revision 2.8 diff -u -3 -p -B -b -B -p -r2.8 archive_tar.cc --- archive_tar.cc 5 May 2002 04:02:00 -0000 2.8 +++ archive_tar.cc 26 May 2002 19:00:37 -0000 @@ -168,6 +168,8 @@ archive_tar::next_file_name () memcpy (state.filename, state.tar_header.name, 100); state.filename[100] = 0; } + else if (state.have_longname) + state.have_longname = 0; sscanf (state.tar_header.size, "%o", &state.file_length); state.file_offset = 0; Any comments before submitting ? Ralf