Package-Name: xfractint
Requires: XFree86|Xorg ncurses|ncurses4
Homepage: http://spanky.fractint.org/www/fractint/fractint.html
Source: http://spanky.triumf.ca/www/fractint/getting.html/(xfrac(\d)(\d+).zip)/[\0-\377]*?xfrac(\d)(\d+).zip $1.$2 http://spanky.triumf.ca/pub/fractals/programs/unix/xfrac$1$2.zip
Zap-Before-Install: 1
Repack:
	mkdir -p xfractint-"$(VERSION)"
	cd xfractint-"$(VERSION)" && unzip "$(SOURCE)"
Compile:
	cp -p read.me "$(PREFIX)/"
	umask 022 ; mkdir -p "$(PREFIX)"/{bin,lib,man/man1}
	$(MAKE) install LIBS="-L/usr/X11/lib -lX11 -lm -lncurses" BINDIR="$(PREFIX)/bin" SRCDIR="$(PREFIX)/lib" MANDIR="$(PREFIX)/man/man1" OPTFLAGS="-O2 $(GCC_OPT_FLAGS)"
Install:
	$(MAKE) instbin BIN=xfractint
	$(MAKE) instman SECTION=1 MAN=xfractint
Patch: <<EOT
######## begin filename-buffer-overflow-fix.diff
--- ../xfractint-3.10-orig/unix.c	1999-05-10 03:38:34 +0900
+++ unix.c	2005-12-30 01:33:38 +0900
@@ -19,8 +19,10 @@
 #define FILE_MAX_PATH  256       /* max length of path+filename  */
 #define FILE_MAX_DIR   256       /* max length of directory name */
 #define FILE_MAX_DRIVE  3       /* max length of drive letter   */
-#define FILE_MAX_FNAME  9       /* max length of filename       */
-#define FILE_MAX_EXT    5       /* max length of extension      */
+//#define FILE_MAX_FNAME  9       /* max length of filename       */
+//#define FILE_MAX_EXT    5       /* max length of extension      */
+#define FILE_MAX_FNAME  _MAX_FNAME
+#define FILE_MAX_EXT    _MAX_EXT
 
 int iocount;
 
######## end filename-buffer-overflow-fix.diff
######## begin gcc331-fixes.diff
diff -ur ../xfractint-3.10-orig/editpal.c editpal.c
--- ../xfractint-3.10-orig/editpal.c	1999-09-07 00:38:10 +0900
+++ editpal.c	2003-09-28 00:43:10 +0900
@@ -107,6 +107,7 @@
  *                      overwritten them already. Undo could do this, but
  *                      this is handy.
  *   05-22-97 TIW     Replaced movedata with far_memcopy()
+ *   09-28-03 AC      Replaced varargs with stdarg.
  */
 
 #ifdef DEBUG_UNDO
@@ -114,11 +115,7 @@
 #endif
 
 #include <string.h>
-#ifndef XFRACT
 #include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
 
 #ifdef __TURBOC__
 #   include <mem.h>   /* to get mem...() declarations */
@@ -410,31 +407,14 @@
    }
 
 
-#ifndef XFRACT
 static void displayf(int x, int y, int fg, int bg, char *format, ...)
-#else
-static void displayf(va_alist)
-va_dcl
-#endif
    {
    char buff[81];
    int  ctr;
 
    va_list arg_list;
 
-#ifndef XFRACT
    va_start(arg_list, format);
-#else
-   int x,y,fg,bg;
-   char *format;
-
-   va_start(arg_list);
-   x = va_arg(arg_list,int);
-   y = va_arg(arg_list,int);
-   fg = va_arg(arg_list,int);
-   bg = va_arg(arg_list,int);
-   format = va_arg(arg_list,char *);
-#endif
    vsprintf(buff, format, arg_list);
    va_end(arg_list);
 
diff -ur ../xfractint-3.10-orig/fracsubr.c fracsubr.c
--- ../xfractint-3.10-orig/fracsubr.c	1999-09-07 00:38:10 +0900
+++ fracsubr.c	2003-09-28 00:40:19 +0900
@@ -4,11 +4,9 @@
 */
 
 #ifndef XFRACT
-#include <stdarg.h>
 #include <sys/timeb.h>
-#else
-#include <varargs.h>
 #endif
+#include <stdarg.h>
 #include <sys/types.h>
 #include <time.h>
   /* see Fractint.c for a description of the "include"  hierarchy */
@@ -1050,27 +1048,14 @@
 
    */
 
-#ifndef XFRACT
 int put_resume(int len, ...)
-#else
-int put_resume(va_alist)
-va_dcl
-#endif
 {
    va_list arg_marker;  /* variable arg list */
    BYTE *source_ptr;
-#ifdef XFRACT
-   int len;
-#endif
 
    if (resume_info == 0)
       return(-1);
-#ifndef XFRACT
    va_start(arg_marker,len);
-#else
-   va_start(arg_marker);
-   len = va_arg(arg_marker,int);
-#endif
    while (len)
    {
       source_ptr = (BYTE *)va_arg(arg_marker,char *);
@@ -1101,27 +1086,14 @@
    return(0);
 }
 
-#ifndef XFRACT
 int get_resume(int len, ...)
-#else
-int get_resume(va_alist)
-va_dcl
-#endif
 {
    va_list arg_marker;  /* variable arg list */
    BYTE *dest_ptr;
-#ifdef XFRACT
-   int len;
-#endif
 
    if (resume_info == 0)
       return(-1);
-#ifndef XFRACT
    va_start(arg_marker,len);
-#else
-   va_start(arg_marker);
-   len = va_arg(arg_marker,int);
-#endif
    while (len)
    {
       dest_ptr = (BYTE *)va_arg(arg_marker,char *);
diff -ur ../xfractint-3.10-orig/fractint.c fractint.c
--- ../xfractint-3.10-orig/fractint.c	1999-09-07 00:38:10 +0900
+++ fractint.c	2003-09-28 00:39:33 +0900
@@ -6,11 +6,9 @@
 #include <string.h>
 #include <time.h>
 #include <signal.h>
+#include <stdarg.h>
 #ifndef XFRACT
 #include <io.h>
-#include <stdarg.h>
-#else
-#include <varargs.h>
 #endif
 #include <ctype.h>
 
@@ -540,12 +538,7 @@
      timer(1,NULL,int width)            decoder
      timer(2)                           encoder
   */
-#ifndef XFRACT
 int timer(int timertype,int(*subrtn)(),...)
-#else
-int timer(va_alist)
-va_dcl
-#endif
 {
    va_list arg_marker;  /* variable arg list */
    char *timestring;
@@ -555,15 +548,7 @@
    int i;
    int do_bench;
 
-#ifndef XFRACT
    va_start(arg_marker,subrtn);
-#else
-   int timertype;
-   int (*subrtn)();
-   va_start(arg_marker);
-   timertype = va_arg(arg_marker, int);
-   subrtn = (int (*)())va_arg(arg_marker, int *);
-#endif
 
    do_bench = timerflag; /* record time? */
    if (timertype == 2)   /* encoder, record time only if debug=200 */
diff -ur ../xfractint-3.10-orig/framain2.c framain2.c
--- ../xfractint-3.10-orig/framain2.c	1999-09-07 00:38:10 +0900
+++ framain2.c	2003-09-28 00:55:08 +0900
@@ -2,9 +2,6 @@
 #include <time.h>
 #ifndef XFRACT
 #include <io.h>
-#include <stdarg.h>
-#else
-#include <varargs.h>
 #endif
 #include <ctype.h>
   /* see Fractint.c for a description of the "include"  hierarchy */
diff -ur ../xfractint-3.10-orig/hc.c hc.c
--- ../xfractint-3.10-orig/hc.c	1999-09-07 00:38:10 +0900
+++ hc.c	2003-09-28 00:41:47 +0900
@@ -43,6 +43,7 @@
  *                    Fixed tables to flow down instead of across the page.
  *                       Makes no allowances for page breaks within tables.
  *   11-03-94 TIW     Increased buffer size.
+ *   09-28-03 AC      Replaced varargs with stdarg.
  *
  */
 
@@ -54,11 +55,10 @@
 
 #ifndef XFRACT
 #include <io.h>
-#include <stdarg.h>
 #else
-#include <varargs.h>
 #define strupr strlwr
 #endif
+#include <stdarg.h>
 #include <fcntl.h>
 #include <string.h>
 #include <ctype.h>
@@ -295,24 +295,11 @@
    }
 
 
-#ifndef XFRACT
 void fatal(int diff, char *format, ...)
-#else
-void fatal(va_alist)
-    va_dcl
-#endif
    {
    va_list arg;
 
-#ifndef XFRACT
    va_start(arg, format);
-#else
-   int diff;
-   char *format;
-   va_start(arg);
-   diff = va_arg(arg,int);
-   format = va_arg(arg,char *);
-#endif
 
    print_msg("Fatal", srcline-diff, format, arg);
    va_end(arg);
@@ -324,24 +311,11 @@
    }
 
 
-#ifndef XFRACT
 void error(int diff, char *format, ...)
-#else
-void error(va_alist)
-    va_dcl
-#endif
    {
    va_list arg;
 
-#ifndef XFRACT
    va_start(arg, format);
-#else
-   int diff;
-   char *format;
-   va_start(arg);
-   diff = va_arg(arg,int);
-   format = va_arg(arg,char *);
-#endif
    print_msg("Error", srcline-diff, format, arg);
    va_end(arg);
 
@@ -350,23 +324,10 @@
    }
 
 
-#ifndef XFRACT
 void warn(int diff, char *format, ...)
-#else
-void warn(va_alist)
-   va_dcl
-#endif
    {
    va_list arg;
-#ifndef XFRACT
    va_start(arg, format);
-#else
-   int diff;
-   char *format;
-   va_start(arg);
-   diff = va_arg(arg, int);
-   format = va_arg(arg, char *);
-#endif
    print_msg("Warning", srcline-diff, format, arg);
    va_end(arg);
 
@@ -375,47 +336,22 @@
    }
 
 
-#ifndef XFRACT
 void notice(char *format, ...)
-#else
-void notice(va_alist)
-    va_dcl
-#endif
    {
    va_list arg;
-#ifndef XFRACT
    va_start(arg, format);
-#else
-   char *format;
-
-   va_start(arg);
-   format = va_arg(arg,char *);
-#endif
    print_msg("Note", srcline, format, arg);
    va_end(arg);
    }
 
 
-#ifndef XFRACT
 void msg(char *format, ...)
-#else
-void msg(va_alist)
-va_dcl
-#endif
    {
    va_list arg;
-#ifdef XFRACT
-   char *format;
-#endif
 
    if (quiet_mode)
       return;
-#ifndef XFRACT
    va_start(arg, format);
-#else
-   va_start(arg);
-   format = va_arg(arg,char *);
-#endif
    print_msg(NULL, 0, format, arg);
    va_end(arg);
    }
diff -ur ../xfractint-3.10-orig/jiim.c jiim.c
--- ../xfractint-3.10-orig/jiim.c	1999-09-07 00:38:10 +0900
+++ jiim.c	2003-09-28 00:56:18 +0900
@@ -35,17 +35,12 @@
  *                           connecting orbits points.
  *        12-18-93      TIW  Removed use of float only for orbits, fixed a
  *                           helpmode bug.
+ *        09-28-03      AC   Removed unneeded stdarg/varargs includes.
  *
  */
 
 #include <string.h>
 
-#ifndef XFRACT
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
 #ifdef __TURBOC__
 #   include <mem.h>   /* to get mem...() declarations */
 #endif
diff -ur ../xfractint-3.10-orig/memory.c memory.c
--- ../xfractint-3.10-orig/memory.c	1999-09-07 00:38:10 +0900
+++ memory.c	2003-09-28 00:56:26 +0900
@@ -3,9 +3,6 @@
 #include <malloc.h>
 #ifndef XFRACT
 #include <io.h>
-#include <stdarg.h>
-#else
-#include <varargs.h>
 #endif
 #include <ctype.h>
 
diff -ur ../xfractint-3.10-orig/miscovl.c miscovl.c
--- ../xfractint-3.10-orig/miscovl.c	1999-09-07 00:38:10 +0900
+++ miscovl.c	2003-09-28 01:00:23 +0900
@@ -5,13 +5,11 @@
 #include <string.h>
 #include <ctype.h>
 #include <time.h>
+#include <stdarg.h>
 #ifndef XFRACT
 #include <malloc.h>
 #include <process.h>
-#include <stdarg.h>
 #include <io.h>
-#else
-#include <varargs.h>
 #endif
   /* see Fractint.c for a description of the "include"  hierarchy */
 #include "port.h"
@@ -24,11 +22,7 @@
 static void write_batch_parms(char *colorinf,int colorsonly, int maxcolor,int i, int j);
 static void expand_comments(char far *target, char far *source);
 
-#ifndef XFRACT
 static void put_parm(char *parm,...);
-#else
-static void put_parm();
-#endif
 
 static void put_parm_line(void);
 static int getprec(double,double,double);
@@ -1175,24 +1169,12 @@
       }
 }
 
-#ifndef XFRACT
 static void put_parm(char *parm,...)
-#else
-static void put_parm(va_alist)
-va_dcl
-#endif
 {
    char *bufptr;
    va_list args;
 
-#ifndef XFRACT
    va_start(args,parm);
-#else
-   char * parm;
-
-   va_start(args);
-   parm = va_arg(args,char *);
-#endif
    if (*parm == ' '             /* starting a new parm */
      && wbdata->len == 0)       /* skip leading space */
       ++parm;
diff -ur ../xfractint-3.10-orig/miscres.c miscres.c
--- ../xfractint-3.10-orig/miscres.c	1999-09-07 00:38:10 +0900
+++ miscres.c	2003-09-28 00:56:47 +0900
@@ -7,10 +7,7 @@
 #include <time.h>
 #include <malloc.h>
 #ifndef XFRACT
-#include <stdarg.h>
 #include <io.h>
-#else
-#include <varargs.h>
 #endif
 /*#ifdef __TURBOC__
 #include <dir.h>
diff -ur ../xfractint-3.10-orig/printer.c printer.c
--- ../xfractint-3.10-orig/printer.c	1999-09-07 00:38:10 +0900
+++ printer.c	2003-09-28 01:00:50 +0900
@@ -86,12 +86,10 @@
 #include <fcntl.h>
 #include <sys/types.h>
 #include <errno.h>
+#include <stdarg.h>
 
 #ifndef XFRACT
 #include <conio.h>
-#include <stdarg.h>
-#else
-#include <varargs.h>
 #endif
 
 #include <string.h>
@@ -136,11 +134,7 @@
 
 /********      PROTOTYPES     ********/
 
-#ifndef XFRACT
 static void Printer_printf(char far *fmt,...);
-#else
-static void Printer_printf();
-#endif
 static int  _fastcall printer(int c);
 static void _fastcall print_title(int,int,char *);
 static void printer_reset(void);
@@ -1335,25 +1329,14 @@
 
 /* This function prints a string to the the printer with BIOS calls. */
 
-#ifndef XFRACT
 static void Printer_printf(char far *fmt,...)
-#else
-static void Printer_printf(va_alist)
-va_dcl
-#endif
 {
 int i;
 char s[500];
 int x=0;
 va_list arg;
 
-#ifndef XFRACT
 va_start(arg,fmt);
-#else
-char far *fmt;
-va_start(arg);
-fmt = va_arg(arg,char far *);
-#endif
 
 {
    /* copy far to near string */
diff -ur ../xfractint-3.10-orig/prototyp.h prototyp.h
--- ../xfractint-3.10-orig/prototyp.h	1999-09-07 00:38:10 +0900
+++ prototyp.h	2003-09-28 00:52:24 +0900
@@ -372,13 +372,8 @@
 
 extern void calcfracinit(void);
 extern void adjust_corner(void);
-#ifndef XFRACT
 extern int put_resume(int ,... );
 extern int get_resume(int ,... );
-#else
-extern int put_resume();
-extern int get_resume();
-#endif
 extern int alloc_resume(int ,int );
 extern int start_resume(void);
 extern void end_resume(void);
@@ -604,11 +599,10 @@
 extern int pot_line(BYTE *,int );
 extern int sound_line(BYTE *,int );
 extern int sound_line(unsigned char *pixels,int linelen);
-#ifndef XFRACT
 extern int timer(int,int (*subrtn)(),...);
+#ifndef XFRACT
 extern int _cdecl _matherr(struct exception *);
 #else
-extern int timer();
 extern int XZoomWaiting;
 #endif
 
######## end gcc331-fixes.diff
######## remainder is local stuff
--- ../xfractint-3.10-orig/Makefile	1999-09-12 10:32:16 +0900
+++ Makefile	2003-09-28 00:46:38 +0900
@@ -51,7 +51,9 @@
 #For Solaris, use CFLAGS = -I. -I/usr/openwin/include $(DEFINES) -g
 
 #CFLAGS = -I. -D_CONST $(DEFINES)
-CFLAGS = -I. $(DEFINES) -g -DBIG_ANSI_C -DLINUX 
+OPTFLAGS = -g
+#OPTFLAGS = -O2
+CFLAGS = -I. -I/usr/include/ncurses $(DEFINES) $(OPTFLAGS) -DBIG_ANSI_C -DLINUX 
 
 # Gcc is often the only compiler that works for this
 # For HPUX, use CC = cc -Aa -D_HPUX_SOURCE
EOT

/pkg/xfractint/
/usr/bin/xfractint
/usr/man/man1/xfractint.1.gz
