I notice a BETA-5-6 branch in Berg Wesarg's repo created about a year
ago, but they seemed to be no plan to release it. Just wondering
what's the development/background on this.
I commited two missing version number updates to 5.6. After we have brought
MAIN over to BETA-5-6 we need to generate the help files with:
$ cd doc
$ make VERSION='NEdit 5.6 (November 2009)' all
After that the BETA-5-6 should be ready to be tagged as REL-5-6.
I also attached a propoes diff for the merge of missing MAIN commits to the
BETA-5-6 branch.
Bert
---
diff --git i/ReleaseNotes w/ReleaseNotes
index 9fb8378..63fd64c 100644
--- i/ReleaseNotes
+++ w/ReleaseNotes
@@ -23,6 +23,8 @@ New Features in 5.6
Bugs fixed in 5.6
+ - Fix for SF bug #2858723: off-by-one error causing a crash
+
- Fix for SF bug #2687525: tipsfile parser error wrt to eof
- Fix for SF bug #2222159: File was not reload when type was changed
diff --git i/source/interpret.c w/source/interpret.c
index e2eee38..822ddb2 100644
--- i/source/interpret.c
+++ w/source/interpret.c
@@ -450,9 +450,9 @@ void FillLoopAddrs(Inst *breakAddr, Inst *continueAddr)
if (*LoopStackPtr == NULL)
break;
if ((*LoopStackPtr)->value == NEEDS_BREAK)
- **(Inst ***)LoopStackPtr = (Inst *)(breakAddr - *LoopStackPtr);
+ (*LoopStackPtr)->value = breakAddr - *LoopStackPtr;
else if ((*LoopStackPtr)->value == NEEDS_CONTINUE)
- **(Inst ***)LoopStackPtr = (Inst *)(continueAddr - *LoopStackPtr);
+ (*LoopStackPtr)->value = continueAddr - *LoopStackPtr;
else
fprintf(stderr, "NEdit: internal error (uat) in macro parser\n");
}
diff --git i/source/preferences.c w/source/preferences.c
index 5b1cd67..637b759 100644
--- i/source/preferences.c
+++ w/source/preferences.c
@@ -1519,9 +1519,8 @@ void ImportPrefFile(const char *filename, int convertOld)
ImportedFile = XtNewString(filename);
} else
{
- fprintf(stderr, "Could not read additional preferences file: ");
- fprintf(stderr, filename);
- fprintf(stderr, "\n");
+ fprintf(stderr, "Could not read additional preferences file: %s\n",
+ filename);
}
}
diff --git i/source/regularExp.c w/source/regularExp.c
index 12afade..0d0de6e 100644
--- i/source/regularExp.c
+++ w/source/regularExp.c
@@ -2656,7 +2656,7 @@ static struct brace_counts *Brace;
/* Default table for determining whether a character is a word delimiter. */
-static unsigned char Default_Delimiters [UCHAR_MAX] = {0};
+static unsigned char Default_Delimiters [UCHAR_MAX+1] = {0};
static unsigned char *Current_Delimiters; /* Current delimiter table */
diff --git i/source/smartIndent.c w/source/smartIndent.c
index fd27750..3f7836a 100644
--- i/source/smartIndent.c
+++ w/source/smartIndent.c
@@ -749,6 +749,7 @@ void BeginSmartIndent(WindowInfo *window, int warn)
winData->newlineMacro = ParseMacro(indentMacros->newlineMacro, &errMsg,
&stoppedAt);
if (winData->newlineMacro == NULL) {
+ XtFree((char *)winData);
ParseError(window->shell, indentMacros->newlineMacro, stoppedAt,
"newline macro", errMsg);
return;
@@ -759,6 +760,8 @@ void BeginSmartIndent(WindowInfo *window, int warn)
winData->modMacro = ParseMacro(indentMacros->modMacro, &errMsg,
&stoppedAt);
if (winData->modMacro == NULL) {
+ FreeProgram(winData->newlineMacro);
+ XtFree((char *)winData);
ParseError(window->shell, indentMacros->modMacro, stoppedAt,
"smart indent modify macro", errMsg);
return;
diff --git i/util/utils.h w/util/utils.h
index 78d842b..7885f69 100644
--- i/util/utils.h
+++ w/util/utils.h
@@ -29,6 +29,7 @@
#define NEDIT_UTILS_H_INCLUDED
#include <sys/utsname.h>
+#include <sys/types.h>
#ifdef VMS
#include "vmsparam.h"