# HG changeset patch # User wenzelm # Date 1739626661 -3600 # Node ID a0d1d772ccabd70e0238add4486e8a1b9db70d90 # Parent 1fad64843239a8d5e0d8d9c91463184c90d929a5 more robust jEdit Emacs Macros, based on patch #642 "bundled Emacs Macros are broken" (still open in jedit-5.7.0); diff -r 1fad64843239 -r a0d1d772ccab src/Tools/jEdit/patches/emacs_macros --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Tools/jEdit/patches/emacs_macros Sat Feb 15 14:37:41 2025 +0100 @@ -0,0 +1,66 @@ +diff -ru jedit5.7.0/jEdit/macros/Emacs/Emacs_Insert_File.bsh jedit5.7.0-patched/jEdit/macros/Emacs/Emacs_Insert_File.bsh +--- jedit5.7.0/jEdit/macros/Emacs/Emacs_Insert_File.bsh 2024-08-03 19:53:28.000000000 +0200 ++++ jedit5.7.0-patched/jEdit/macros/Emacs/Emacs_Insert_File.bsh 2025-02-14 13:36:18.460665938 +0100 +@@ -14,7 +14,7 @@ + else + path = dirname (path); + result = GUIUtilities.showVFSFileDialog(view, path, VFSBrowser.OPEN_DIALOG, false); +- if (result != null) ++ if (result.length > 0) + buffer.insertFile (view, result[0]); + } + +diff -ru jedit5.7.0/jEdit/macros/Emacs/Emacs_Next_Line.bsh jedit5.7.0-patched/jEdit/macros/Emacs/Emacs_Next_Line.bsh +--- jedit5.7.0/jEdit/macros/Emacs/Emacs_Next_Line.bsh 2024-08-03 19:53:28.000000000 +0200 ++++ jedit5.7.0-patched/jEdit/macros/Emacs/Emacs_Next_Line.bsh 2025-02-14 13:39:47.045930441 +0100 +@@ -12,16 +12,13 @@ + + void emacsNextLine(View view){ + +- // need access to textArea.lastLinePartial +- setAccessibility(true); +- + int first = textArea.getFirstLine(); + int caretLine = textArea.getScreenLineOfOffset(textArea.getCaretPosition()); + int visibleLines = textArea.getVisibleLines(); + int electricScroll = textArea.getElectricScroll(); + + if(caretLine != -1 && caretLine+1 >= +- (visibleLines - (electricScroll + (textArea.lastLinePartial ? 1 : 0)))) ++ (visibleLines - (electricScroll + (textArea.isLastLinePartial() ? 1 : 0)))) + { + int newFirst = (first + (visibleLines - electricScroll) / 2); + textArea.setFirstLine(newFirst); +diff -ru jedit5.7.0/jEdit/macros/Emacs/Emacs_Previous_Line.bsh jedit5.7.0-patched/jEdit/macros/Emacs/Emacs_Previous_Line.bsh +--- jedit5.7.0/jEdit/macros/Emacs/Emacs_Previous_Line.bsh 2024-08-03 19:53:28.000000000 +0200 ++++ jedit5.7.0-patched/jEdit/macros/Emacs/Emacs_Previous_Line.bsh 2025-02-14 13:40:14.798441955 +0100 +@@ -12,9 +12,6 @@ + + void emacsPreviousLine(View view){ + +- // need access to textArea.lastLinePartial +- setAccessibility(true); +- + int first = textArea.getFirstLine(); + int caretLine = textArea.getScreenLineOfOffset(textArea.getCaretPosition()); + int visibleLines = textArea.getVisibleLines(); +diff -ru jedit5.7.0/jEdit/macros/Emacs/EmacsUtil.bsh jedit5.7.0-patched/jEdit/macros/Emacs/EmacsUtil.bsh +--- jedit5.7.0/jEdit/macros/Emacs/EmacsUtil.bsh 2024-08-03 19:53:28.000000000 +0200 ++++ jedit5.7.0-patched/jEdit/macros/Emacs/EmacsUtil.bsh 2025-02-14 13:41:40.315946858 +0100 +@@ -31,6 +31,7 @@ + buf.append (c); + if (c == '\n') + break; ++ i++; + } + + return buf.toString(); +@@ -266,6 +267,8 @@ + int findBeginningOfSentence() + { + caret = textArea.getCaretPosition() - 1; ++ if (caret < 0) ++ caret = 0; + if (charAt (caret) == '.') + caret--; + diff -r 1fad64843239 -r a0d1d772ccab src/Tools/jEdit/patches/extended_styles_brackets --- a/src/Tools/jEdit/patches/extended_styles_brackets Sat Feb 15 14:17:38 2025 +0100 +++ b/src/Tools/jEdit/patches/extended_styles_brackets Sat Feb 15 14:37:41 2025 +0100 @@ -62,6 +62,14 @@ int count = 1; char openBracket = '\0'; char closeBracket = '\0'; +@@ -4983,6 +4988,7 @@ + final Point offsetXY; + + boolean lastLinePartial; ++ public boolean isLastLinePartial() { return lastLinePartial; } + + boolean blink; + //}}} diff -ru jedit5.7.0/jEdit/org/gjt/sp/jedit/TextUtilities.java jedit5.7.0-patched/jEdit/org/gjt/sp/jedit/TextUtilities.java --- jedit5.7.0/jEdit/org/gjt/sp/jedit/TextUtilities.java 2024-08-03 19:53:20.000000000 +0200 +++ jedit5.7.0-patched/jEdit/org/gjt/sp/jedit/TextUtilities.java 2024-10-29 11:50:54.066016546 +0100