This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

setup.exe crashs / setup.ini patch for perl


Hi,

I will be OOO (out of office:) the next week, unfortunately I will not
be able to do more debugging on setup.exe <-> choose.cc, it just starts
making fun:)

But some hints:
===============
The original (CVS) setup.exe crashes only if you have some packages with
dependencies NOT installed.

Another (the same?) problem causes that not all categories gets into the 
list.  I never saw entries for 'Doc' or 'Mail' up to now.
The package 'newlib-man' never shows up (also not in 'full' list mode), 
I think there is the 'setup.hint' file in latest/cygwin is wrong.

The setup choose dialog pops up with some categories in and some packages
in this categories, with the tree expanded.  After collapsing Shells or
Interpreters (both entries), it was not able to open this part again, 
just like there were no packages in this category.
See attached .jpeg for details.

It crashes not if I remove one line, but then there are not all packages
categories listed.  I removed line 814:
	  if (n == nlines)
	    {
	      /* the category wasn't visible - insert at the end */
	      insert_category (cat, CATEGORY_COLLAPSED);
	      insert_pkg (pkg);
	    }
So it looks like:
	  if (n == nlines)
	    {
	      /* the category wasn't visible - insert at the end */
	      insert_category (cat, CATEGORY_COLLAPSED);
	    }
But that is no solution, was only a help for me to see what is happening
inside the program if it doesn't crash.

With the last change from Robert Collins, there are no more crashes:-)
but still the same other problems:-(

New problem: there are some category duplicates.

So I think, there is a problem in the logic somewhere I did not found yet.

Rob Collins wrote:
>> 		  {
>       insert_under (n, line);
>strange. ok, well how about this then...
>
>- 	        n++;
>+		n = nlines;
>
>        }
>> 	      n++;

That is a step forward now. It seems to work better. No more crashes.

The 'no crash'-patch for this is also attached.

I'm no C++ programmer, so I hope this helps someone who is a better coder.

The patch for the perl entry is attached.

Gerrit


-- 
=^..^=

--- choose.cc.orig	Wed Sep 26 09:18:13 2001
+++ choose.cc	Wed Sep 26 09:20:36 2001
@@ -802,8 +802,12 @@
 	    {
 	      /* this should be a generic call to list_sort_cmp */
 	      if (lines[n].get_category ()
-		  && cat->name == lines[n].get_category ()->name)
-		  insert_under (n, line);
+		    && cat->name == lines[n].get_category ()->name)
+		  {
+			insert_under (n, line);
+			/* does this help? */
+			n = nlines;
+		  }
 	      n++;
 	    }
 	  if (n == nlines)
--- setup.ini.orig	Wed Sep 26 08:11:30 2001
+++ setup.ini	Wed Sep 26 08:13:17 2001
@@ -590,7 +590,21 @@
 source: latest/pcre/pcre-3.4-1-src.tar.gz 315560
 
 @ perl
-sdesc: "Larry Wall's Practical Extracting and Report Language"
+sdesc: "perl: Practical Extraction and Report Language"
+ldesc: "Perl is a language optimized for scanning arbitrary
+text files, extracting information from those text files, and
+printing reports based on that information.  It's also a good
+language for many system management tasks.  The language is
+intended to be practical (easy to use, efficient, complete)
+rather than beautiful (tiny, elegant, minimal).
+If you have a problem that would ordinarily use sed or awk or
+sh, but it exceeds their capabilities or must run a little
+faster, and you don't want to write the silly thing in C, then
+Perl may be for you.  There are also translators to turn your
+sed and awk scripts into Perl scripts.  Perl actually stands
+for Pathologically Eclectic Rubbish Lister, but don't tell
+anyone I said that.  Larry Wall <larry@wall.org>.  See also: 
+the perl(1) manpage"
 category: Interpreters
 requires: cygwin gdbm
 version: 5.6.1-2

seethis.jpg


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]