This patch will allow browsex 1.6.0 to compile on a Fedora Core Three system.

Rant:  The GCC developers have no place breaking perfectly good code
which used to compile fine three years ago.

diff -ur browsex.orig/dballoc/dballoc.c browsex/dballoc/dballoc.c
--- browsex.orig/dballoc/dballoc.c	2001-06-14 11:13:17.000000000 -0700
+++ browsex/dballoc/dballoc.c	2005-03-08 03:23:09.000000000 -0800
@@ -3,22 +3,21 @@
 #include <malloc.h>
 #include "dballoc.h"
 
-static char *help ="DB Alloc: Version 1.0
-   Usage: DB_ALLOC=\"N=V,N=V...\"
-     l, - logfile to write to (default stderr)
-     i, - interval to check heap for fencepost overwrites (default=0)
-     f, - fatal.  abort on error (default=1)
-     z, - ignore free null pointers (default=0)
-     n, - do not actually free memory (default=0)
-     w, - check for writes to freed if 'n' option is on. (default=1)
-     b, - bad pointers are chained to real free/realloc (default=0)
-     x, - set atexit free check routine (default=1)
-     v, - verbose, show all allocations/frees (default=0)
-     q, - quiet, don't show warnings (default=0)
-     z, - zero out freed memory blocks (default=0)
-
-  http://BrowseX.com/dballoc
-";
+/* Retarded anal GCC 3.4.2 */
+static char *help ="DB Alloc: Version 1.0\n"
+"   Usage: DB_ALLOC=\"N=V,N=V...\"\n"
+"     l, - logfile to write to (default stderr)\n"
+"     i, - interval to check heap for fencepost overwrites (default=0)\n"
+"     f, - fatal.  abort on error (default=1)\n"
+"     z, - ignore free null pointers (default=0)\n"
+"     n, - do not actually free memory (default=0)\n"
+"     w, - check for writes to freed if 'n' option is on. (default=1)\n"
+"     b, - bad pointers are chained to real free/realloc (default=0)\n"
+"     x, - set atexit free check routine (default=1)\n"
+"     v, - verbose, show all allocations/frees (default=0)\n"
+"     q, - quiet, don't show warnings (default=0)\n"
+"     z, - zero out freed memory blocks (default=0)\n"
+"\n http://BrowseX.com/dballoc\n";
 
 #define FROMPTR(ptr) (dbst*)(((char*)ptr)-sizeof(dbst)+sizeof(int)-HMEMPAD)
 #define DBSZ(siz) (sizeof(dbst)-1+siz+HMEMPAD+TMEMPAD)
Sólo en browsex/img1.2.4/compat: tclLoadNone.o
diff -ur browsex.orig/sqlite/tool/lemon.c browsex/sqlite/tool/lemon.c
--- browsex.orig/sqlite/tool/lemon.c	2001-09-15 16:07:32.000000000 -0700
+++ browsex/sqlite/tool/lemon.c	2005-03-08 03:09:42.000000000 -0800
@@ -7,7 +7,7 @@
 ** The author of this program disclaims copyright.
 */
 #include <stdio.h>
-#include <varargs.h>
+#include <stdarg.h>
 #include <string.h>
 #include <ctype.h>
 
@@ -70,7 +70,7 @@
 void Configlist_reset(/* void */);
 
 /********* From the file "error.h" ***************************************/
-void ErrorMsg( /* char *, int, char *, ... */ );
+void ErrorMsg( char *start, ... /* char *, int, char *, ... */ );
 
 /****** From the file "option.h" ******************************************/
 struct s_options {
@@ -1092,8 +1092,7 @@
 #define ERRMSGSIZE  10000 /* Hope this is big enough.  No way to error check */
 #define LINEWIDTH      79 /* Max width of any output line */
 #define PREFIXLIMIT    30 /* Max width of the prefix on each line */
-void ErrorMsg(va_alist)
-va_dcl
+void ErrorMsg(char *start, ...) /* va_dcl */
 {
   char *filename;
   int lineno;
@@ -1106,7 +1105,7 @@
   va_list ap;
   int end, restart, base;
 
-  va_start(ap);
+  va_start(ap, start);
   filename = va_arg(ap,char*);
   lineno = va_arg(ap,int);
   format = va_arg(ap,char*);
diff -ur browsex.orig/tcl8.4/unix/tclConfig.sh browsex/tcl8.4/unix/tclConfig.sh
--- browsex.orig/tcl8.4/unix/tclConfig.sh	2001-10-06 18:13:29.000000000 -0700
+++ browsex/tcl8.4/unix/tclConfig.sh	2005-03-08 03:52:47.000000000 -0800
@@ -55,11 +55,11 @@
 
 # Top-level directory in which Tcl's platform-independent files are
 # installed.
-TCL_PREFIX='/a/browsex/1.2.5/sn/b/usr'
+TCL_PREFIX='/home/set/tech/exploded/bld/usr'
 
 # Top-level directory in which Tcl's platform-specific files (e.g.
 # executables) are installed.
-TCL_EXEC_PREFIX='/a/browsex/1.2.5/sn/b/usr'
+TCL_EXEC_PREFIX='/home/set/tech/exploded/bld/usr'
 
 # Flags to pass to cc when compiling the components of a shared library:
 TCL_SHLIB_CFLAGS='-fPIC'
@@ -110,11 +110,11 @@
 
 # String to pass to linker to pick up the Tcl library from its
 # build directory.
-TCL_BUILD_LIB_SPEC='-L/a/browsex/1.2.5/sn/b/tcl8.4/unix -ltcl8.4${TCL_DBGX}'
+TCL_BUILD_LIB_SPEC='-L/home/set/tech/exploded/bld/tcl8.4/unix -ltcl8.4${TCL_DBGX}'
 
 # String to pass to linker to pick up the Tcl library from its
 # installed directory.
-TCL_LIB_SPEC='-L/a/browsex/1.2.5/sn/b/usr/lib -ltcl8.4${TCL_DBGX}'
+TCL_LIB_SPEC='-L/home/set/tech/exploded/bld/usr/lib -ltcl8.4${TCL_DBGX}'
 
 # Indicates whether a version numbers should be used in -l switches
 # ("ok" means it's safe to use switches like -ltcl7.5;  "nodots" means
@@ -141,12 +141,12 @@
 # different place than the directory containing the source files, this
 # points to the location of the sources, not the location where Tcl was
 # compiled.
-TCL_SRC_DIR='/a/browsex/1.2.5/sn/browsex/tcl8.4'
+TCL_SRC_DIR='/home/set/tech/exploded/browsex/tcl8.4'
 
 # List of standard directories in which to look for packages during
 # "package require" commands.  Contains the "prefix" directory plus also
 # the "exec_prefix" directory, if it is different.
-TCL_PACKAGE_PATH='/a/browsex/1.2.5/sn/b/usr/lib'
+TCL_PACKAGE_PATH='/home/set/tech/exploded/bld/usr/lib'
 
 # Tcl supports stub.
 TCL_SUPPORTS_STUBS=1
@@ -159,14 +159,14 @@
 
 # String to pass to linker to pick up the Tcl stub library from its
 # build directory.
-TCL_BUILD_STUB_LIB_SPEC='-L/a/browsex/1.2.5/sn/b/tcl8.4/unix -ltclstub8.4${TCL_DBGX}'
+TCL_BUILD_STUB_LIB_SPEC='-L/home/set/tech/exploded/bld/tcl8.4/unix -ltclstub8.4${TCL_DBGX}'
 
 # String to pass to linker to pick up the Tcl stub library from its
 # installed directory.
-TCL_STUB_LIB_SPEC='-L/a/browsex/1.2.5/sn/b/usr/lib -ltclstub8.4${TCL_DBGX}'
+TCL_STUB_LIB_SPEC='-L/home/set/tech/exploded/bld/usr/lib -ltclstub8.4${TCL_DBGX}'
 
 # Path to the Tcl stub library in the build directory.
-TCL_BUILD_STUB_LIB_PATH='/a/browsex/1.2.5/sn/b/tcl8.4/unix/libtclstub8.4${TCL_DBGX}.a'
+TCL_BUILD_STUB_LIB_PATH='/home/set/tech/exploded/bld/tcl8.4/unix/libtclstub8.4${TCL_DBGX}.a'
 
 # Path to the Tcl stub library in the install directory.
-TCL_STUB_LIB_PATH='/a/browsex/1.2.5/sn/b/usr/lib/libtclstub8.4${TCL_DBGX}.a'
+TCL_STUB_LIB_PATH='/home/set/tech/exploded/bld/usr/lib/libtclstub8.4${TCL_DBGX}.a'
diff -ur browsex.orig/tkhtml/src/htmlform.c browsex/tkhtml/src/htmlform.c
--- browsex.orig/tkhtml/src/htmlform.c	2001-05-15 12:20:45.000000000 -0700
+++ browsex/tkhtml/src/htmlform.c	2005-03-08 02:35:33.000000000 -0800
@@ -443,6 +443,7 @@
     case Html_TEXTAREA:
     case Html_INPUT:
     case Html_OPTION:
+	    break; /* Stupid anal GCC 3.4.2 */
     }
   }
   return 0;
@@ -514,6 +515,7 @@
         htmlPtr->formElemLast->input.subid++;
       break;
     default:
+      break; /* Stupid anal GCC 3.4.2 */
   }
 }
 
diff -ur browsex.orig/tkhtml/src/htmlPs.c browsex/tkhtml/src/htmlPs.c
--- browsex.orig/tkhtml/src/htmlPs.c	2001-01-18 17:53:54.000000000 -0800
+++ browsex/tkhtml/src/htmlPs.c	2005-03-08 02:41:25.000000000 -0800
@@ -864,9 +864,9 @@
 
     result = TCL_OK;
     while (1) {
-     char *nxtpage = "showpage\n%%%%Page: %d %d\n%%%%BeginPageSetup
-/pagelevel save def\n54 0 translate\n%%%%EndPageSetup
-newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath\n"; 
+     char *nxtpage = "showpage\n%%%%Page: %d %d\n%%%%BeginPageSetup\n"
+"/pagelevel save def\n54 0 translate\n%%%%EndPageSetup\n"
+"newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath\n"; 
 
       for(pB=htmlPtr->firstBlock; pB; pB=pB->pNext){
 
diff -ur browsex.orig/tkhtml/src/htmlwidget.c browsex/tkhtml/src/htmlwidget.c
--- browsex.orig/tkhtml/src/htmlwidget.c	2001-10-01 20:07:28.000000000 -0700
+++ browsex/tkhtml/src/htmlwidget.c	2005-03-08 02:38:37.000000000 -0800
@@ -257,6 +257,7 @@
     fprintf(stderr,"Unknown option %s\n",argv[i]);
     return TCL_ERROR;
     foundopt:
+    	break; /* Stupid anal GCC 3.4.2 */
   }
   return TCL_OK;
 }
diff -ur browsex.orig/tml/tml.c browsex/tml/tml.c
--- browsex.orig/tml/tml.c	2001-06-15 14:17:39.000000000 -0700
+++ browsex/tml/tml.c	2005-03-08 03:18:32.000000000 -0800
@@ -159,23 +159,22 @@
   return Tml_Init(interp);
 }
 
-char *tmlcode = "
-proc insert {parm arg} {
-  if [catch {open $arg r} fp] return
-  set rc [read $fp]
-  close $fp
-  return $rc
-}
-
-# Procedure to read a file via Tcl (ie. honors SafeTcl)
-proc FileRead arg {
-  set fp [open $arg r]
-  set dat [read $fp]
-  close $fp
-  return $dat
-}
-
-";
+/* Retarded anal GCC 3.4.2 and multi-line quotes */
+char *tmlcode = "\n"
+"proc insert {parm arg} {\n"
+"  if [catch {open $arg r} fp] return\n"
+"  set rc [read $fp]\n"
+"  close $fp\n"
+"  return $rc\n"
+"}\n"
+"\n"
+"# Procedure to read a file via Tcl (ie. honors SafeTcl)\n"
+"proc FileRead arg {\n"
+"  set fp [open $arg r]\n"
+"  set dat [read $fp]\n"
+"  close $fp\n"
+"  return $dat\n"
+"}\n\n";
 
 
 /* Copy len chars from p to tml output */
diff -ur browsex.orig/tobe/src/main.c browsex/tobe/src/main.c
--- browsex.orig/tobe/src/main.c	2001-05-25 15:08:31.000000000 -0700
+++ browsex/tobe/src/main.c	2005-03-08 03:52:15.000000000 -0800
@@ -47,76 +47,77 @@
   "while 1 {vwait forever}"
 ;
 
-static char *zvfsinitstr= "
-
-proc ::zvfs_Glob args {
-  set glob glob.orig
-  set n 0
-  set arg {}
-  foreach i $args {
-    switch -- $i {
-      -directory - -join - -nocomplain - -path - -types - -- { incr n; break }
-      default break
-    }
-    lappend arg $i
-    incr n
-  }
-  set rest [lrange $args $n end]
-  set l [llength $rest]
-  set rc {}
-  foreach i $rest {
-    set cmd [concat $glob \" \" $arg]
-    set gr [$glob -nocomplain $i]
-    if {$gr == {}} {
-      set gr [::zvfs::list -glob $i]
-    }
-    set rc [concat $rc $gr]
-  }
-  return $rc
-}
-
-proc ::zvfs_Package args {
-  set cmd [concat package.orig $args]
-  if {[info commands ::glob.orig] != {} || [lindex $args 0] != {require}} {
-    return [uplevel 1 $cmd]
-  }
-  rename  ::glob ::glob.orig
-  rename  ::zvfs_Glob ::glob
-  if [catch {uplevel 1 $cmd} rc] {
-    rename  ::glob ::zvfs_Glob
-    rename ::glob.orig ::glob
-    error $rc
-  }
-  rename  ::glob ::zvfs_Glob
-  rename ::glob.orig ::glob
-}
-
-proc ::zvfs_PkgRestore {} {
-  rename ::package ::zvfs_Package
-  rename ::package.orig ::package
-}
-
-proc ::zvfs_PkgSetup {} {
-  rename ::package ::package.orig
-  rename ::zvfs_Package ::package
-}
-
-rename ::encoding ::encoding.orig
-
-proc ::encoding {cmd args} {
-  if {$cmd != {names}} {
-    return [eval [concat encoding.orig $cmd $args]]
-  }
-  set lst {}
-  foreach i [zvfs::list $::tcl_library/encoding/*.enc] {
-    lappend lst [file rootname [file tail $i]]
-  }
-  return $lst
-}
-
-::zvfs_PkgSetup
-source /zvfs/tcl8.4/msgcat1.2/msgcat.tcl
-";
+/* Anal GCC 3.4.2 developers */
+static char *zvfsinitstr= 
+"\n"
+"proc ::zvfs_Glob args {\n"
+"  set glob glob.orig\n"
+"  set n 0\n"
+"  set arg {}\n"
+"  foreach i $args {\n"
+"    switch -- $i {\n"
+"      -directory - -join - -nocomplain - -path - -types - -- { incr n; break }\n"
+"      default break\n"
+"    }\n"
+"    lappend arg $i\n"
+"    incr n\n"
+"  }\n"
+"  set rest [lrange $args $n end]\n"
+"  set l [llength $rest]\n"
+"  set rc {}\n"
+"  foreach i $rest {\n"
+"    set cmd [concat $glob \" \" $arg]\n"
+"    set gr [$glob -nocomplain $i]\n"
+"    if {$gr == {}} {\n"
+"      set gr [::zvfs::list -glob $i]\n"
+"    }\n"
+"    set rc [concat $rc $gr]\n"
+"  }\n"
+"  return $rc\n"
+"}\n"
+"\n"
+"proc ::zvfs_Package args {\n"
+"  set cmd [concat package.orig $args]\n"
+"  if {[info commands ::glob.orig] != {} || [lindex $args 0] != {require}} {\n"
+"    return [uplevel 1 $cmd]\n"
+"  }\n"
+"  rename  ::glob ::glob.orig\n"
+"  rename  ::zvfs_Glob ::glob\n"
+"  if [catch {uplevel 1 $cmd} rc] {\n"
+"    rename  ::glob ::zvfs_Glob\n"
+"    rename ::glob.orig ::glob\n"
+"    error $rc\n"
+"  }\n"
+"  rename  ::glob ::zvfs_Glob\n"
+"  rename ::glob.orig ::glob\n"
+"}\n"
+"\n"
+"proc ::zvfs_PkgRestore {} {\n"
+"  rename ::package ::zvfs_Package\n"
+"  rename ::package.orig ::package\n"
+"}\n"
+"\n"
+"proc ::zvfs_PkgSetup {} {\n"
+"  rename ::package ::package.orig\n"
+"  rename ::zvfs_Package ::package\n"
+"}\n"
+"\n"
+"rename ::encoding ::encoding.orig\n"
+"\n"
+"proc ::encoding {cmd args} {\n"
+"  if {$cmd != {names}} {\n"
+"    return [eval [concat encoding.orig $cmd $args]]\n"
+"  }\n"
+"  set lst {}\n"
+"  foreach i [zvfs::list $::tcl_library/encoding/*.enc] {\n"
+"    lappend lst [file rootname [file tail $i]]\n"
+"  }\n"
+"  return $lst\n"
+"}\n"
+"\n"
+"::zvfs_PkgSetup\n"
+"source /zvfs/tcl8.4/msgcat1.2/msgcat.tcl\n"
+"\n";
 
 extern void (*Zvfs_PostInit)(Tcl_Interp*);
 
diff -ur browsex.orig/tobe/src/zvfs.c browsex/tobe/src/zvfs.c
--- browsex.orig/tobe/src/zvfs.c	2001-01-18 17:53:28.000000000 -0800
+++ browsex/tobe/src/zvfs.c	2005-03-08 03:35:22.000000000 -0800
@@ -35,7 +35,7 @@
 **
 ** @(#) $Id: zvfs.c,v 1.1.1.1 2001/01/19 01:53:28 peter Exp $
 */
-#include "tcl.h"
+#include "../../usr/include/tcl.h"
 #include <ctype.h>
 #include <zlib.h>
 #include <errno.h>
