head 1.3; access; symbols pkgsrc-2026Q1:1.3.0.54 pkgsrc-2026Q1-base:1.3 pkgsrc-2025Q4:1.3.0.52 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.3.0.50 pkgsrc-2025Q3-base:1.3 pkgsrc-2025Q2:1.3.0.48 pkgsrc-2025Q2-base:1.3 pkgsrc-2025Q1:1.3.0.46 pkgsrc-2025Q1-base:1.3 pkgsrc-2024Q4:1.3.0.44 pkgsrc-2024Q4-base:1.3 pkgsrc-2024Q3:1.3.0.42 pkgsrc-2024Q3-base:1.3 pkgsrc-2024Q2:1.3.0.40 pkgsrc-2024Q2-base:1.3 pkgsrc-2024Q1:1.3.0.38 pkgsrc-2024Q1-base:1.3 pkgsrc-2023Q4:1.3.0.36 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.34 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.32 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.30 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.28 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.26 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.24 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.22 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.3.0.20 pkgsrc-2021Q4-base:1.3 pkgsrc-2021Q3:1.3.0.18 pkgsrc-2021Q3-base:1.3 pkgsrc-2021Q2:1.3.0.16 pkgsrc-2021Q2-base:1.3 pkgsrc-2021Q1:1.3.0.14 pkgsrc-2021Q1-base:1.3 pkgsrc-2020Q4:1.3.0.12 pkgsrc-2020Q4-base:1.3 pkgsrc-2020Q3:1.3.0.10 pkgsrc-2020Q3-base:1.3 pkgsrc-2020Q2:1.3.0.8 pkgsrc-2020Q2-base:1.3 pkgsrc-2020Q1:1.3.0.4 pkgsrc-2020Q1-base:1.3 pkgsrc-2019Q4:1.3.0.6 pkgsrc-2019Q4-base:1.3 pkgsrc-2019Q3:1.3.0.2 pkgsrc-2019Q3-base:1.3 pkgsrc-2019Q2:1.2.0.140 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.138 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.136 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.134 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.132 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.130 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.128 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.126 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.122 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.120 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.118 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.116 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.114 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.112 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.110 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.108 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.106 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.104 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.102 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.2.0.100 pkgsrc-2014Q3-base:1.2 pkgsrc-2014Q2:1.2.0.98 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.96 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.94 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.2.0.92 pkgsrc-2013Q3-base:1.2 pkgsrc-2013Q2:1.2.0.90 pkgsrc-2013Q2-base:1.2 pkgsrc-2013Q1:1.2.0.88 pkgsrc-2013Q1-base:1.2 pkgsrc-2012Q4:1.2.0.86 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.84 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.82 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.80 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.78 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.76 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.74 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.72 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.70 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.68 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.66 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.64 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.62 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.60 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.2.0.58 pkgsrc-2009Q2-base:1.2 pkgsrc-2009Q1:1.2.0.56 pkgsrc-2009Q1-base:1.2 pkgsrc-2008Q4:1.2.0.54 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.52 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.50 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.48 pkgsrc-2008Q2-base:1.2 cwrapper:1.2.0.46 pkgsrc-2008Q1:1.2.0.44 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.42 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.40 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.38 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.36 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.34 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.32 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.30 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.28 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.26 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.24 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.22 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.20 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.18 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.16 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.14 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.2.0.12 pkgsrc-2004Q1-base:1.2 pkgsrc-2003Q4:1.2.0.10 pkgsrc-2003Q4-base:1.2 netbsd-1-6-1:1.2.0.6 netbsd-1-6-1-base:1.2 netbsd-1-6:1.2.0.8 netbsd-1-6-RELEASE-base:1.2 pkgviews:1.2.0.4 pkgviews-base:1.2 buildlink2:1.2.0.2 buildlink2-base:1.2 netbsd-1-5-PATCH003:1.2 netbsd-1-5-PATCH001:1.2 netbsd-1-5-RELEASE:1.2 netbsd-1-4-PATCH003:1.2 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.3 date 2019.09.02.21.41.40; author nia; state Exp; branches; next 1.2; commitid smwXNAj7wPpb5uBB; 1.2 date 2000.07.10.18.26.54; author tron; state Exp; branches; next 1.1; 1.1 date 2000.04.01.00.21.27; author dmcmahill; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2000.04.01.00.21.27; author dmcmahill; state Exp; branches; next ; desc @@ 1.3 log @mg2a: make this prehistoric C not fail with modern compilers don't define our own strncpy/strncat, include the header instead. @ text @$NetBSD: patch-ac,v 1.2 2000/07/10 18:26:54 tron Exp $ --- sys/bsd/fileio.c.orig 1988-07-03 17:50:24.000000000 +0000 +++ sys/bsd/fileio.c @@@@ -2,15 +2,25 @@@@ * bsd (4.2, others?), Sun (3.2, ?) and Ultrix-32 (?) file I/O. */ #include "def.h" +#include /* refling added this per compiler */ +#include +#include +#include +#include static FILE *ffp; -extern char *getenv(), *strncpy(); char *adjustname(); /* * Open a file for reading. */ ffropen(fn) char *fn; { + // prevent opening non-regular files - refling + struct stat st; + if (fn == NULL || 0 == strlen(fn) || (0 == stat(fn, &st) && ((st.st_mode & S_IFMT) != S_IFREG))) { + ewprintf("not a regular file"); + return(FIOERR); + } if ((ffp=fopen(fn, "r")) == NULL) return (FIOFNF); return (FIOSUC); @@@@ -22,6 +32,12 @@@@ ffropen(fn) char *fn; { * FALSE on error (cannot create). */ ffwopen(fn) char *fn; { + // prevent opening non-regular files - refling + struct stat st; + if (fn == NULL || 0 == strlen(fn) || (0 == stat(fn, &st) && ((st.st_mode & S_IFMT) != S_IFREG))) { + ewprintf("not a regular file"); + return(FIOERR); + } if ((ffp=fopen(fn, "w")) == NULL) { ewprintf("Cannot open file for writing"); return (FIOERR); @@@@ -276,7 +292,7 @@@@ char *suffix; if ((file = getenv("HOME")) == NULL) goto notfound; if (strlen(file)+7 >= NFILEN - 1) goto notfound; (VOID) strcpy(home, file); - (VOID) strcat(home, "/.mg"); + (VOID) strcat(home, "/.mgrc"); if (suffix != NULL) { (VOID) strcat(home, "-"); (VOID) strcat(home, suffix); @@@@ -295,6 +311,18 @@@@ notfound: if (access(file, F_OK ) == 0) return file; #endif + +/* refling - try to open a file name given by MGRC env var */ + if ((file = getenv("MGRC")) == NULL) return NULL; + if (strlen(file)+7 >= NFILEN - 1) goto notfound; + (VOID) strcpy(home, file); + if (suffix != NULL) { + (VOID) strcat(home, "-"); + (VOID) strcat(home, suffix); + } + if (access(home, F_OK ) == 0) return home; + + return NULL; } #endif @@@@ -318,7 +346,8 @@@@ char *frname, *toname; execve("cp", eargv, (char **)NULL); _exit(1); /* shouldn't happen */ } - while(wait(&status) != pid) {} +/* while(wait(&status) != pid) {} refling, was this */ + while(wait((int *)&status) != pid) {} return status.w_status == 0; } @ 1.2 log @Update "mg2a" package to version to version 1.11: Don't attempt to edit non regular files. Patches supplied by John Refling in PR pkg/10536. @ text @d1 1 a1 1 $NetBSD: patch-ac 00/05/31 16:39:51 refling $ d3 3 a5 3 --- sys/bsd/fileio.c.orig Sun Jul 3 10:50:24 1988 +++ sys/bsd/fileio.c Wed May 31 16:38:11 2000 @@@@ -2,6 +2,9 @@@@ d10 2 d16 4 a19 2 extern char *getenv(), *strncpy(); @@@@ -11,6 +14,12 @@@@ d32 1 a32 1 @@@@ -22,6 +31,12 @@@@ d45 1 a45 1 @@@@ -276,7 +291,7 @@@@ d54 1 a54 1 @@@@ -295,6 +310,18 @@@@ d73 1 a73 1 @@@@ -318,7 +345,8 @@@@ @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD$ d3 3 a5 3 --- ./sys/bsd/fileio.c.orig Sun Jul 3 10:50:24 1988 +++ ./sys/bsd/fileio.c Thu Mar 30 08:35:33 2000 @@@@ -2,6 +2,7 @@@@ d10 2 d15 27 a41 1 @@@@ -276,7 +277,7 @@@@ d50 1 a50 1 @@@@ -295,6 +296,18 @@@@ d69 1 a69 1 @@@@ -318,7 +331,8 @@@@ @ 1.1.1.1 log @initial import of mg2a-1.10. Mg (mg) is a Public Domain EMACS style editor. It is "broadly" compatible with GNU Emacs. Mg was formerly named MicroGnuEmacs, but is not associated with the GNU project. This program is intended to be a small, fast, and portable editor for people who can't (or don't want to) run real Emacs. @ text @@