diff --git a/mbone/imm/Makefile b/mbone/imm/Makefile index 942d9af704bc..9cf49cf2e12a 100644 --- a/mbone/imm/Makefile +++ b/mbone/imm/Makefile @@ -1,49 +1,45 @@ # New ports collection makefile for: imm # Date created: 13 October 1994 # Whom: wollman # # $FreeBSD$ # PORTNAME= imm PORTVERSION= 3.5a1 CATEGORIES= mbone tk82 MASTER_SITES= ftp://ftp.hawaii.edu/paccom/imm-3.5a1/ DISTNAME= imm.source EXTRACT_SUFX= .tar.Z MAINTAINER= fenner@FreeBSD.org COMMENT= Internet Image(or other data) Multicaster (and receiver) LIB_DEPENDS= tk82.1:${PORTSDIR}/x11-toolkits/tk82 WRKSRC= ${WRKDIR}/mnm USE_X_PREFIX= yes .include -.if ${OSVERSION} >= 501000 -BROKEN= "Does not compile on FreeBSD ${OSVERSION}" -.endif - post-extract: @${MKDIR} ${WRKSRC}/freebsd @${CP} ${FILESDIR}/Makefile.work ${WRKSRC}/Makefile @${CP} ${FILESDIR}/Makefile.freebsd ${WRKSRC}/src # The included makefile doesn't have an "install" target. do-install: ${INSTALL_PROGRAM} ${WRKSRC}/freebsd/imm ${PREFIX}/bin ${INSTALL_PROGRAM} ${WRKSRC}/freebsd/immserv ${PREFIX}/bin ${INSTALL_PROGRAM} ${WRKSRC}/freebsd/lscomp ${PREFIX}/bin # and no man pages at all yet. # But include the very limited documentation ${MKDIR} ${PREFIX}/share/doc/imm .if !defined(NOPORTDOCS) ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/imm ${INSTALL_DATA} ${WRKSRC}/imm_readme.txt ${PREFIX}/share/doc/imm .endif # The sdr plugin is pretty much required. ${INSTALL_DATA} ${WRKSRC}/sdr2.plugin.S53.image.imm ${PREFIX}/share/doc/imm .include diff --git a/mbone/imm/files/patch-src::utils.c b/mbone/imm/files/patch-src::utils.c new file mode 100644 index 000000000000..a7db5d4e2d04 --- /dev/null +++ b/mbone/imm/files/patch-src::utils.c @@ -0,0 +1,200 @@ +--- src/utils.c.orig Thu Jul 15 12:37:25 2004 ++++ src/utils.c Thu Jul 15 13:36:09 2004 +@@ -20,7 +20,7 @@ + * These notices must be retained in any copies of any part of this software. + ******************************************************************************/ + #include +-#include ++#include + #include + #include + #ifdef __NetBSD__ +@@ -40,47 +40,118 @@ + + /*----------------------------------------------------------------------------*/ + +-void warn( va_alist ) +-va_dcl ++/* Allocate memory for format string buffers */ ++int ++vfsalloc(char *fmt, va_list ap) + { +- va_list args; +- char *fmt; ++ char *s; ++ int i, n = 0, len = 0; + +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( stderr, "Warning: " ); +- vfprintf( stderr, fmt, args ); +- va_end( args ); ++ if (!fmt) ++ return 0; ++ ++ s = strchr(fmt, '%'); ++ ++ while (s) { ++ ++s; ++ ++n; ++ ++ switch (*s) { ++ case 'd': ++ i = va_arg(ap, int); ++ len += 1 + sizeof(int)<<1; ++ break; ++ case 's': ++ len += strlen(va_arg(ap, char *)); ++ break; ++ } ++ s = strchr(s, '%'); ++ } ++ ++ len += strlen(fmt) - (2 * n); ++ ++ return len; ++} ++ ++void warn( char *fmt, ... ) ++{ ++ va_list ap; ++ char *buf, *s; ++ int len; ++ ++ if (!fmt) ++ return; ++ ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; ++ ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(stderr, "Warning: %s\n", buf); ++ free(buf); + } + + /*----------------------------------------------------------------------------*/ + +-void die( va_alist ) +-va_dcl ++void die(char *fmt, ... ) + { +- va_list args; +- char *fmt; ++ va_list ap; ++ char *buf, *s; ++ int len; ++ ++ if (!fmt) ++ return; ++ ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; + +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( stderr, "Error: " ); +- vfprintf( stderr, fmt, args ); +- exit( 1 ); ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(stderr, "Error: %s\n", buf); ++ free(buf); ++ exit(1); + } + + /*----------------------------------------------------------------------------*/ + +-void fatal( va_alist ) +-va_dcl ++void fatal(char *fmt, ... ) + { +- va_list args; +- char *fmt; ++ va_list ap; ++ char *buf, *s; ++ int len; ++ ++ if (!fmt) ++ return; + +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( stderr, "Internal Error: " ); +- vfprintf( stderr, fmt, args ); +- exit( 2 ); ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; ++ ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(stderr, "Internal error: %s\n", buf); ++ free(buf); ++ exit(2); + } + + /*----------------------------------------------------------------------------*/ +@@ -142,21 +213,34 @@ + + /*----------------------------------------------------------------------------*/ + +-void mailmessage( va_alist ) +-va_dcl ++void mailmessage(char *fmt, ... ) + { +- va_list args; +- char *fmt; ++ va_list ap; ++ char *buf, s; ++ int len; + FILE *popen(), *fp; + char cmdline[80]; + if (whome == NULL) whome = getlogin(); + sprintf(cmdline,"%s %s",mailprog,whome); + fp = popen(cmdline,"w"); +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( fp, "MNM Warning: " ); +- vfprintf( fp, fmt, args ); +- va_end( args ); ++ ++ if (!fmt) ++ return; ++ ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; ++ ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(fp, "MNM Warning: %s", buf); ++ free(buf); + pclose(fp); + } diff --git a/net/imm/Makefile b/net/imm/Makefile index 942d9af704bc..9cf49cf2e12a 100644 --- a/net/imm/Makefile +++ b/net/imm/Makefile @@ -1,49 +1,45 @@ # New ports collection makefile for: imm # Date created: 13 October 1994 # Whom: wollman # # $FreeBSD$ # PORTNAME= imm PORTVERSION= 3.5a1 CATEGORIES= mbone tk82 MASTER_SITES= ftp://ftp.hawaii.edu/paccom/imm-3.5a1/ DISTNAME= imm.source EXTRACT_SUFX= .tar.Z MAINTAINER= fenner@FreeBSD.org COMMENT= Internet Image(or other data) Multicaster (and receiver) LIB_DEPENDS= tk82.1:${PORTSDIR}/x11-toolkits/tk82 WRKSRC= ${WRKDIR}/mnm USE_X_PREFIX= yes .include -.if ${OSVERSION} >= 501000 -BROKEN= "Does not compile on FreeBSD ${OSVERSION}" -.endif - post-extract: @${MKDIR} ${WRKSRC}/freebsd @${CP} ${FILESDIR}/Makefile.work ${WRKSRC}/Makefile @${CP} ${FILESDIR}/Makefile.freebsd ${WRKSRC}/src # The included makefile doesn't have an "install" target. do-install: ${INSTALL_PROGRAM} ${WRKSRC}/freebsd/imm ${PREFIX}/bin ${INSTALL_PROGRAM} ${WRKSRC}/freebsd/immserv ${PREFIX}/bin ${INSTALL_PROGRAM} ${WRKSRC}/freebsd/lscomp ${PREFIX}/bin # and no man pages at all yet. # But include the very limited documentation ${MKDIR} ${PREFIX}/share/doc/imm .if !defined(NOPORTDOCS) ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/imm ${INSTALL_DATA} ${WRKSRC}/imm_readme.txt ${PREFIX}/share/doc/imm .endif # The sdr plugin is pretty much required. ${INSTALL_DATA} ${WRKSRC}/sdr2.plugin.S53.image.imm ${PREFIX}/share/doc/imm .include diff --git a/net/imm/files/patch-src::utils.c b/net/imm/files/patch-src::utils.c new file mode 100644 index 000000000000..a7db5d4e2d04 --- /dev/null +++ b/net/imm/files/patch-src::utils.c @@ -0,0 +1,200 @@ +--- src/utils.c.orig Thu Jul 15 12:37:25 2004 ++++ src/utils.c Thu Jul 15 13:36:09 2004 +@@ -20,7 +20,7 @@ + * These notices must be retained in any copies of any part of this software. + ******************************************************************************/ + #include +-#include ++#include + #include + #include + #ifdef __NetBSD__ +@@ -40,47 +40,118 @@ + + /*----------------------------------------------------------------------------*/ + +-void warn( va_alist ) +-va_dcl ++/* Allocate memory for format string buffers */ ++int ++vfsalloc(char *fmt, va_list ap) + { +- va_list args; +- char *fmt; ++ char *s; ++ int i, n = 0, len = 0; + +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( stderr, "Warning: " ); +- vfprintf( stderr, fmt, args ); +- va_end( args ); ++ if (!fmt) ++ return 0; ++ ++ s = strchr(fmt, '%'); ++ ++ while (s) { ++ ++s; ++ ++n; ++ ++ switch (*s) { ++ case 'd': ++ i = va_arg(ap, int); ++ len += 1 + sizeof(int)<<1; ++ break; ++ case 's': ++ len += strlen(va_arg(ap, char *)); ++ break; ++ } ++ s = strchr(s, '%'); ++ } ++ ++ len += strlen(fmt) - (2 * n); ++ ++ return len; ++} ++ ++void warn( char *fmt, ... ) ++{ ++ va_list ap; ++ char *buf, *s; ++ int len; ++ ++ if (!fmt) ++ return; ++ ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; ++ ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(stderr, "Warning: %s\n", buf); ++ free(buf); + } + + /*----------------------------------------------------------------------------*/ + +-void die( va_alist ) +-va_dcl ++void die(char *fmt, ... ) + { +- va_list args; +- char *fmt; ++ va_list ap; ++ char *buf, *s; ++ int len; ++ ++ if (!fmt) ++ return; ++ ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; + +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( stderr, "Error: " ); +- vfprintf( stderr, fmt, args ); +- exit( 1 ); ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(stderr, "Error: %s\n", buf); ++ free(buf); ++ exit(1); + } + + /*----------------------------------------------------------------------------*/ + +-void fatal( va_alist ) +-va_dcl ++void fatal(char *fmt, ... ) + { +- va_list args; +- char *fmt; ++ va_list ap; ++ char *buf, *s; ++ int len; ++ ++ if (!fmt) ++ return; + +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( stderr, "Internal Error: " ); +- vfprintf( stderr, fmt, args ); +- exit( 2 ); ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; ++ ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(stderr, "Internal error: %s\n", buf); ++ free(buf); ++ exit(2); + } + + /*----------------------------------------------------------------------------*/ +@@ -142,21 +213,34 @@ + + /*----------------------------------------------------------------------------*/ + +-void mailmessage( va_alist ) +-va_dcl ++void mailmessage(char *fmt, ... ) + { +- va_list args; +- char *fmt; ++ va_list ap; ++ char *buf, s; ++ int len; + FILE *popen(), *fp; + char cmdline[80]; + if (whome == NULL) whome = getlogin(); + sprintf(cmdline,"%s %s",mailprog,whome); + fp = popen(cmdline,"w"); +- va_start( args ); +- fmt = va_arg( args, char * ); +- fprintf( fp, "MNM Warning: " ); +- vfprintf( fp, fmt, args ); +- va_end( args ); ++ ++ if (!fmt) ++ return; ++ ++ va_start(ap, fmt); ++ if (!(len = vfsalloc(fmt, ap))) ++ return; ++ va_end(ap); ++ ++ if (!(buf = malloc(len))) ++ return; ++ ++ va_start(ap, fmt); ++ vsprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ fprintf(fp, "MNM Warning: %s", buf); ++ free(buf); + pclose(fp); + }