summaryrefslogtreecommitdiff
path: root/editors/nano
diff options
context:
space:
mode:
authorChristian Weisgerber <naddy@FreeBSD.org>2003-10-06 13:36:39 +0000
committerChristian Weisgerber <naddy@FreeBSD.org>2003-10-06 13:36:39 +0000
commit0a34781d2974d9df5c7fd48de1cd527fb08c4aed (patch)
tree7ef1bdcac654f19ecb83af324c0ac8481c7bb1e3 /editors/nano
parent Update runtime to latest versions. (diff)
Fix fatal memory allocation bug.
Diffstat (limited to 'editors/nano')
-rw-r--r--editors/nano/Makefile10
-rw-r--r--editors/nano/files/patch-files.c56
-rw-r--r--editors/nano/files/patch-search.c19
3 files changed, 77 insertions, 8 deletions
diff --git a/editors/nano/Makefile b/editors/nano/Makefile
index 2931a0d03565..5afeff3ff109 100644
--- a/editors/nano/Makefile
+++ b/editors/nano/Makefile
@@ -7,7 +7,7 @@
PORTNAME= nano
PORTVERSION= 1.2.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= editors
MASTER_SITES= http://www.nano-editor.org/dist/v1.2/
@@ -29,10 +29,4 @@ post-install:
${MKDIR} ${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/nanorc.sample ${EXAMPLESDIR}
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} > 500000
-BROKEN= "memory allocation bug"
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/editors/nano/files/patch-files.c b/editors/nano/files/patch-files.c
new file mode 100644
index 000000000000..b77ce3705488
--- /dev/null
+++ b/editors/nano/files/patch-files.c
@@ -0,0 +1,56 @@
+
+$FreeBSD$
+
+--- files.c.orig Sun Oct 5 02:30:55 2003
++++ files.c Sun Oct 5 02:35:06 2003
+@@ -1701,16 +1701,17 @@
+ #ifdef NANO_EXTRA
+ static int did_cred = 0;
+ #endif
++ static char *writepath = NULL;
+
+ #if !defined(DISABLE_BROWSER) || (!defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION))
+ currshortcut = writefile_list;
+ #endif
+
+- answer = mallocstrcpy(answer, path);
++ writepath = mallocstrcpy(writepath, path);
+
+ if (exiting && ISSET(TEMP_OPT)) {
+ if (filename[0] != '\0') {
+- i = write_file(answer, 0, 0, 0);
++ i = write_file(writepath, 0, 0, 0);
+ display_main_list();
+ return i;
+ } else {
+@@ -1751,24 +1752,24 @@
+ "%s%s%s", _("Write Selection to File"), formatstr, backupstr);
+ } else {
+ if (append == 2)
+- i = statusq(1, writefile_list, answer, 0,
++ i = statusq(1, writefile_list, writepath, 0,
+ "%s%s%s", _("File Name to Prepend to"), formatstr, backupstr);
+ else if (append == 1)
+- i = statusq(1, writefile_list, answer, 0,
++ i = statusq(1, writefile_list, writepath, 0,
+ "%s%s%s", _("File Name to Append to"), formatstr, backupstr);
+ else
+- i = statusq(1, writefile_list, answer, 0,
++ i = statusq(1, writefile_list, writepath, 0,
+ "%s%s%s", _("File Name to Write"), formatstr, backupstr);
+ }
+ #else
+ if (append == 2)
+- i = statusq(1, writefile_list, answer,
++ i = statusq(1, writefile_list, writepath,
+ "%s", _("File Name to Prepend to"));
+ else if (append == 1)
+- i = statusq(1, writefile_list, answer,
++ i = statusq(1, writefile_list, writepath,
+ "%s", _("File Name to Append to"));
+ else
+- i = statusq(1, writefile_list, answer,
++ i = statusq(1, writefile_list, writepath,
+ "%s", _("File Name to Write"));
+ #endif /* !NANO_SMALL */
+
diff --git a/editors/nano/files/patch-search.c b/editors/nano/files/patch-search.c
new file mode 100644
index 000000000000..b2472c023d5e
--- /dev/null
+++ b/editors/nano/files/patch-search.c
@@ -0,0 +1,19 @@
+
+$FreeBSD$
+
+--- search.c.orig Sun Oct 5 02:38:32 2003
++++ search.c Sun Oct 5 02:40:32 2003
+@@ -769,8 +769,12 @@
+
+ int do_gotoline(int line, int save_pos)
+ {
++ static char *linestr = NULL;
++
++ linestr = mallocstrcpy(linestr, answer);
++
+ if (line <= 0) { /* Ask for it */
+- int st = statusq(FALSE, goto_list, line != 0 ? answer : "",
++ int st = statusq(FALSE, goto_list, line != 0 ? linestr : "",
+ #ifndef NANO_SMALL
+ NULL,
+ #endif