Compare commits
8 Commits
Author | SHA256 | Date | |
---|---|---|---|
f2730f10e2 | |||
|
898d87fd7f | ||
207b12affc | |||
|
eb66793208 | ||
b24f3515a2 | |||
|
6c3253cf33 | ||
|
b1a413b870 | ||
|
27aeb8607e |
3
grutatxt.tar.gz
Normal file
3
grutatxt.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:823beeca2d2edf31d6c9320c8e460b9aede90e004078aef6e35be77d5de0b843
|
||||
size 20751
|
@@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
GenericName=Text Editor
|
||||
Name=Minimum Profit (GTK+3 version)
|
||||
MimeType=text/plain;
|
||||
Exec=mp-5-gtk3 %U
|
||||
Icon=mp-5
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Categories=GTK;TextEditor;
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be1c486657105a6cdb0b2fc4c1efdee93f1f63aeec42ab6b1c0d97ba7a891c58
|
||||
size 512269
|
@@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iHEEABECADEWIQQg4w2h98nE3MPhGDhDDuMZQjiouAUCWpRAARMcYW5nZWxAdHJp
|
||||
cHRpY28uY29tAAoJEEMO4xlCOKi4eKUAn360C01H26R/q0U1+CP2lsbtvOqBAKCb
|
||||
IY+puFasmkoRTdFr1Lwg67FFtQ==
|
||||
=vrEl
|
||||
-----END PGP SIGNATURE-----
|
15
mp-5.62-config-msgfmt.patch
Normal file
15
mp-5.62-config-msgfmt.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
fix unconditional setting of WITHOUT_MSGFMT that results in always
|
||||
building without msgfmt
|
||||
|
||||
--- a/config.sh 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/config.sh 2025-05-27 13:20:44.129796033 +0200
|
||||
@@ -25,7 +25,7 @@
|
||||
WITHOUT_KDE4=1
|
||||
|
||||
# No msgfmt by default
|
||||
-WITHOUT_MSGFMT=1
|
||||
+WITHOUT_MSGFMT=${WITHOUT_MSGFMT:=1}
|
||||
|
||||
WITH_EXTERNAL_ARCH=0
|
||||
|
21
mp-5.62-config-qt6.patch
Normal file
21
mp-5.62-config-qt6.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
Qt5 is out of support as of 2025-05-26. usage of Qt in mp sources
|
||||
seems simple enough to just replace Qt5Widgets by Qt6Widgets.
|
||||
Older Qt6Widgets.pc files are missing "Requires: Qt6Core Qt6Gui".
|
||||
|
||||
--- a/config.sh 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/config.sh 2025-05-26 10:23:37.309979419 +0200
|
||||
@@ -449,10 +449,10 @@
|
||||
if [ "$WITHOUT_QT5" = "1" ] ; then
|
||||
echo "Disabled"
|
||||
else
|
||||
- if chk_pkgconfig Qt5Widgets
|
||||
+ if chk_pkgconfig Qt6Widgets
|
||||
then
|
||||
- TMP_CFLAGS="$(${PKG_CONFIG} --cflags Qt5Widgets 2>/dev/null) -fPIC"
|
||||
- TMP_LDFLAGS="$(${PKG_CONFIG} --libs Qt5Widgets 2>/dev/null)"
|
||||
+ TMP_CFLAGS="$(${PKG_CONFIG} --cflags Qt6Widgets Qt6Core Qt6Gui 2>/dev/null) -fPIC"
|
||||
+ TMP_LDFLAGS="$(${PKG_CONFIG} --libs Qt6Widgets Qt6Core Qt6Gui 2>/dev/null)"
|
||||
|
||||
if USE_CXX=true chk_compiles "$(cat <<EOF
|
||||
#include <QtWidgets>
|
40
mp-5.62-installdirs.patch
Normal file
40
mp-5.62-installdirs.patch
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
fix / adapt installation directories to opensuse habits
|
||||
|
||||
--- a/makefile.in 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/makefile.in 2025-05-26 13:26:01.945038290 +0200
|
||||
@@ -141,22 +141,24 @@
|
||||
install -m 644 $(ARCH_FILE) $(PREFIX)/share/$(APPNAME)/ || true
|
||||
|
||||
install: $(INSTALL_MSG) installdoc $(INSTALLMO) $(MORE_INSTALL_TARGETS)
|
||||
+ ./mkinstalldirs -m 755 $(PREFIX)/bin
|
||||
install -m 755 $(APPNAME) $(PREFIX)/bin/$(APPNAME)
|
||||
- ./mkinstalldirs $(PREFIX)/share/man/man1
|
||||
+ ./mkinstalldirs -m 755 $(PREFIX)/share/man/man1
|
||||
[ -f $(APPNAME).1 ] && install -m 644 $(APPNAME).1 $(PREFIX)/share/man/man1/$(APPNAME).1 || true
|
||||
- [ -d /usr/share/applications ] && install -m 644 minimum-profit.desktop /usr/share/applications || true
|
||||
- [ -d /usr/share/metainfo ] && install -m 644 metainfo.xml /usr/share/metainfo/com.triptico.minimum_profit.metainfo.xml || true
|
||||
- [ -d /usr/share/icons/hicolor/48x48/apps/ ] && install -m 644 minimum-profit.png /usr/share/icons/hicolor/48x48/apps/ || true
|
||||
+ ./mkinstalldirs -m 755 $(PREFIX)/share/applications
|
||||
+ install -m 644 minimum-profit.desktop $(PREFIX)/share/applications
|
||||
+ ./mkinstalldirs -m 755 $(PREFIX)/share/metainfo
|
||||
+ install -m 644 metainfo.xml $(PREFIX)/share/metainfo/com.triptico.minimum_profit.metainfo.xml
|
||||
+ ./mkinstalldirs -m 755 $(PREFIX)/share/icons/hicolor/48x48/apps
|
||||
+ install -m 644 minimum-profit.png $(PREFIX)/share/icons/hicolor/48x48/apps
|
||||
|
||||
installdoc:
|
||||
- ./mkinstalldirs $(PREFIX)/share/doc/$(APPNAME)
|
||||
- chmod 755 $(PREFIX)/share/doc/
|
||||
- chmod 755 $(PREFIX)/share/doc/$(APPNAME)
|
||||
+ ./mkinstalldirs -m 755 $(PREFIX)/share/doc/packages/$(APPNAME)
|
||||
( cd $(MPDM); $(MAKE) installdoc )
|
||||
( cd $(MPSL); $(MAKE) installdoc )
|
||||
- install -m 644 doc/* $(PREFIX)/share/doc/$(APPNAME)
|
||||
- install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/$(APPNAME)
|
||||
- [ -f doc/mp_index.html ] && install -m 644 doc/mp_index.html $(PREFIX)/share/doc/$(APPNAME)/index.html || true
|
||||
+ install -m 644 doc/* $(PREFIX)/share/doc/packages/$(APPNAME)
|
||||
+ install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/packages/$(APPNAME)
|
||||
+ [ -f doc/mp_index.html ] && install -m 644 doc/packages/mp_index.html $(PREFIX)/share/doc/packages/$(APPNAME)/index.html || true
|
||||
|
||||
uninstall: $(UNINSTALLMO)
|
||||
rm -f $(PREFIX)/bin/$(APPNAME)
|
14
mp-5.62-mpdm-config.patch
Normal file
14
mp-5.62-mpdm-config.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
fix failing mp_doccer detection
|
||||
|
||||
--- a/mpdm/config.sh 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/mpdm/config.sh 2025-05-26 22:59:11.465842766 +0200
|
||||
@@ -657,7 +657,7 @@
|
||||
|
||||
# test for mp_doccer
|
||||
echo -n "Testing if mp_doccer is installed... "
|
||||
-MP_DOCCER=$(which mp_doccer > /dev/null 2>&1||which mp-doccer > /dev/null 2>&1)
|
||||
+MP_DOCCER=$(which mp_doccer 2>/dev/null || which mp-doccer 2>/dev/null)
|
||||
|
||||
if [ $? = 0 ] ; then
|
||||
|
23
mp-5.62-mpsl-make-quickref.patch
Normal file
23
mp-5.62-mpsl-make-quickref.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
fix building of doc/mpsl_quickref.ps, and add it to docsclean target
|
||||
|
||||
--- a/mpsl/makefile.in 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/mpsl/makefile.in 2025-05-26 17:09:43.643633225 +0200
|
||||
@@ -78,7 +78,7 @@
|
||||
.txt.html:
|
||||
grutatxt < $< > $@
|
||||
|
||||
-doc/mpsl_quickref.ps: doc/mpsl_quickref.txt
|
||||
+doc/mpsl_quickref.ps: doc/mpsl_quickref.txt mpsl
|
||||
-./mpsl scripts/mkquickref.mpsl < doc/mpsl_quickref.txt > $@
|
||||
|
||||
doc/mpsl_api.txt: mpsl_c.c mpsl.y
|
||||
@@ -96,7 +96,7 @@
|
||||
docs: $(DOCS)
|
||||
|
||||
docsclean:
|
||||
- rm -f $(MP_DOCCER_DOCS) doc/*.html
|
||||
+ rm -f $(MP_DOCCER_DOCS) doc/*.html doc/*.ps
|
||||
|
||||
distcopy: distclean
|
||||
mkdir -p $(DIST_TARGET) ; \
|
14
mp-5.62-qt6-isnull.patch
Normal file
14
mp-5.62-qt6-isnull.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
fix test that still worked in Qt5 but does not in Qt6
|
||||
|
||||
--- a/mpv_qk_common.cpp 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/mpv_qk_common.cpp 2025-05-26 10:39:15.220655492 +0200
|
||||
@@ -70,7 +70,7 @@
|
||||
{
|
||||
mpdm_t r = NULL;
|
||||
|
||||
- if (s != NULL) {
|
||||
+ if (!s.isNull()) {
|
||||
int t = s.size();
|
||||
wchar_t *wptr = (wchar_t *) calloc((t + 1), sizeof(wchar_t));
|
||||
|
39
mp-5.62-qt6-weight.patch
Normal file
39
mp-5.62-qt6-weight.patch
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
reflect Qt6 changes to QFont::Weight enumeration and setWeight()
|
||||
|
||||
--- a/mpv_qk_common.cpp 2024-12-07 08:52:47.000000000 +0100
|
||||
+++ b/mpv_qk_common.cpp 2025-05-28 16:10:32.584350324 +0200
|
||||
@@ -168,10 +168,16 @@
|
||||
else
|
||||
mpdm_set_wcs(c, MPDM_I(font_size), L"font_size");
|
||||
|
||||
+#if QT_VERSION_MAJOR<6
|
||||
+#define WEIGHT_FACTOR 100.0
|
||||
+#else
|
||||
+#define WEIGHT_FACTOR 1000.0
|
||||
+#endif
|
||||
+
|
||||
if ((v = mpdm_get_wcs(c, L"font_weight")) != NULL)
|
||||
- font_weight = mpdm_rval(v) * 100.0;
|
||||
+ font_weight = mpdm_rval(v) * WEIGHT_FACTOR;
|
||||
else
|
||||
- mpdm_set_wcs(c, MPDM_R(font_weight / 100.0), L"font_weight");
|
||||
+ mpdm_set_wcs(c, MPDM_R(font_weight / WEIGHT_FACTOR), L"font_weight");
|
||||
|
||||
if ((v = mpdm_get_wcs(c, L"font_face")) != NULL) {
|
||||
w = mpdm_ref(MPDM_2MBS(mpdm_string(v)));
|
||||
@@ -187,7 +193,14 @@
|
||||
font->setFixedPitch(true);
|
||||
|
||||
if (font_weight > 0.0)
|
||||
+ {
|
||||
+#if QT_VERSION_MAJOR<6
|
||||
font->setWeight((int) font_weight);
|
||||
+#else
|
||||
+ if (font_weight < 1.0) { font_weight = 1.0; }
|
||||
+ font->setWeight(static_cast<QFont::Weight>(font_weight));
|
||||
+#endif
|
||||
+ }
|
||||
|
||||
mpdm_unref(w);
|
||||
|
748
mp-5.62-releasenotes.patch
Normal file
748
mp-5.62-releasenotes.patch
Normal file
@@ -0,0 +1,748 @@
|
||||
|
||||
release notes for versions prior to 5.31, cf. github.com/rofl0r/mp-5.x
|
||||
|
||||
--- a/RELEASE_NOTES 2024-12-07 08:52:00.000000000 +0100
|
||||
+++ b/RELEASE_NOTES 2025-05-27 16:07:11.957738688 +0200
|
||||
@@ -562,3 +562,742 @@
|
||||
The ANSI driver now accepts alt-letter keycodes.
|
||||
|
||||
The execute MPSL code function always dumps its output to the dump window.
|
||||
+
|
||||
+5.3.0
|
||||
+-----
|
||||
+
|
||||
+ - Architectural changes:
|
||||
+ - Major refactoring; old code pruned and cleaned, memory
|
||||
+ management improved.
|
||||
+ - MPSL code is no longer deployed as separate files, but
|
||||
+ embedded in a tar file or inside the program binary itself.
|
||||
+ - Some MPSL code is loaded on demand.
|
||||
+ - New "portable" (i.e. no installation needed) versions for
|
||||
+ MS Windows.
|
||||
+ - New features:
|
||||
+ - New action `insert_m_dash', bound by default to `alt-minus'.
|
||||
+ - New action `replace_tabs_with_spaces'.
|
||||
+ - New action `replace_spaces_with_tabs'.
|
||||
+ - New action `open_recent', to pick the file to open from
|
||||
+ the previosly opened ones.
|
||||
+ - Other changes:
|
||||
+ - Versioning have changed from x.x.x to x.yyy.
|
||||
+ - The coloring theme for GUI drivers has changed to something
|
||||
+ with dark background and softer colors. If you want to revert
|
||||
+ the classic, bright colors on white background theme, copy
|
||||
+ and paste the following into the configuration file:
|
||||
+
|
||||
+ /* Minimum Profit Classic */
|
||||
+ mp.colors.normal.gui = [ 0x000000, 0xffffff ];
|
||||
+ mp.colors.cursor.gui = mp.colors.normal.gui;
|
||||
+ mp.colors.selection.gui = [ 0xff0000, 0xffffff ];
|
||||
+ mp.colors.comments.gui = [ 0x00cc77, 0xffffff ];
|
||||
+ mp.colors.documentation.gui = [ 0x8888ff, 0xffffff ];
|
||||
+ mp.colors.quotes.gui = [ 0x0000ff, 0xffffff ];
|
||||
+ mp.colors.matching.gui = [ 0x000000, 0xffff00 ];
|
||||
+ mp.colors.word1.gui = [ 0x00aa00, 0xffffff ];
|
||||
+ mp.colors.word2.gui = [ 0xff6666, 0xffffff ];
|
||||
+ mp.colors.word3.gui = [ 0x000088, 0xffffff ];
|
||||
+ mp.colors.tag.gui = [ 0x8888ff, 0xffffff ];
|
||||
+ mp.colors.spell.gui = [ 0xff8888, 0xffffff ];
|
||||
+ mp.colors.search.gui = [ 0x000000, 0x00cc77 ];
|
||||
+
|
||||
+5.2.15
|
||||
+------
|
||||
+
|
||||
+ - Fixes:
|
||||
+ - A severe bug in the GTK driver. Sometimes comboboxes
|
||||
+ in forms do not correctly show the default value. This
|
||||
+ can be specially troublesome in the "Line options"
|
||||
+ form because the end-of-line separator can be
|
||||
+ accidentally set to an empty string and destroy
|
||||
+ newly created files.
|
||||
+
|
||||
+5.2.14
|
||||
+------
|
||||
+
|
||||
+ - Fixes:
|
||||
+ - In Qt5, as there is no equivalent of Qt4's
|
||||
+ QApplication() creator with an X11 Display object as
|
||||
+ argument, there is no other way of detecting a
|
||||
+ non-functioning X11 environment than checking the
|
||||
+ existence of the DISPLAY environment variable, so that
|
||||
+ is what is used to fall back to text mode.
|
||||
+ - Cancellation of the opening of hexadecimal dumps
|
||||
+ works again.
|
||||
+ - The "git checkout" option in the VCS has been removed,
|
||||
+ as I keep constantly hitting it by error.
|
||||
+ - The `scroll_up' and `scroll_down' actions has been
|
||||
+ swapped, so they make much more sense.
|
||||
+ - After a word-wrapping is done, the horizontal visual
|
||||
+ column is set to 0, as it's expected to do.
|
||||
+ - Makefile output is left at the end of the file (where
|
||||
+ fail / success information is most probably found instead
|
||||
+ of the beginning of the file).
|
||||
+ - GTK driver uses GDK_SELECTION_CLIPBOARD instead of
|
||||
+ GDK_SELECTION_PRIMARY for copy / paste.
|
||||
+ - GTK form lists are correctly scrolled to show the
|
||||
+ selected item.
|
||||
+ - Text in GTK is correctly copied to the clipboard as
|
||||
+ utf-8 encoded.
|
||||
+- New features:
|
||||
+ - A new `export_as_rtf' action, to write current text
|
||||
+ as a very basic RTF file. Words surrounded by asterisks
|
||||
+ are written as strong text and surrounded by underscores
|
||||
+ as emphasized text. Also, form feeds (ascii 0C) are
|
||||
+ converted to page breaks.
|
||||
+ - A new `insert_page_break' action, to insert an ASCII
|
||||
+ page break character (FF, 0x0C).
|
||||
+
|
||||
+5.2.13
|
||||
+------
|
||||
+
|
||||
+ - New features:
|
||||
+ - This release includes Qt5 support.
|
||||
+
|
||||
+5.2.12
|
||||
+------
|
||||
+
|
||||
+ - New features:
|
||||
+ - This version includes a new driver for raw ANSI terminals,
|
||||
+ for systems who don't (want to) have libncursesw.
|
||||
+ - The cursor position for every file is remembered from
|
||||
+ session to session.
|
||||
+ - Fixed bugs:
|
||||
+ - Fixed action `open_under_cursor' (again).
|
||||
+ - Fixed behaviour inconsistency between actions `seek' and
|
||||
+ `seek-next'.
|
||||
+ - Fixed action `sync' (save all modified files).
|
||||
+ - Other features:
|
||||
+ - Version numbering convention has changed: development
|
||||
+ versions shall no longer have (CURRENTVERSION+1)-dev,
|
||||
+ but (CURRENTVERSION)-patch.
|
||||
+
|
||||
+5.2.11
|
||||
+------
|
||||
+
|
||||
+ - This version includes the following lot of features by
|
||||
+ fellow developer X-Ryl669:
|
||||
+ - New cut line action (copy and delete line), bound by
|
||||
+ default to ctrl-k.
|
||||
+ - New key assignation to document list (ctrl-e).
|
||||
+ - Fix ncurses detection for recent distributions.
|
||||
+ - Added suspension (bound to ctrl-l) for curses driver.
|
||||
+ - Added word selection with mouse double-click.
|
||||
+ - Paste in ncurses prompt.
|
||||
+ - New seek matching brace feature, bound to ctrl-j.
|
||||
+ - Text search wraps to the top of the document as many
|
||||
+ other text editors do.
|
||||
+ - Several miscellaneous fixes.
|
||||
+ - Other features:
|
||||
+ - Window position and size is saved in all GUI interfaces.
|
||||
+
|
||||
+5.2.10
|
||||
+------
|
||||
+
|
||||
+ - New features:
|
||||
+ - New configuration directive mp.config.show_line_numbers,
|
||||
+ to show line numbers to the left of each line.
|
||||
+
|
||||
+5.2.9
|
||||
+-----
|
||||
+
|
||||
+ - New features:
|
||||
+ - New configuration directive mp.config.emacs_scrolling, to
|
||||
+ enable/disable emacs-like scrolling (half screen jumps
|
||||
+ instead of line-by-line).
|
||||
+ - New actions `scroll_up' and `scroll_down', bound by
|
||||
+ default to `alt-cursor-up' and `alt-cursor-down'.
|
||||
+ - New syntax highlight for JSON files.
|
||||
+
|
||||
+5.2.8
|
||||
+-----
|
||||
+
|
||||
+ - New features:
|
||||
+ - Mouse support on text interfaces (it can be disabled by
|
||||
+ setting mp.config.no_text_mouse to 1).
|
||||
+ - Support for the MS Windows console. Two win32 binaries are
|
||||
+ now deployed: the classic, windowed mp-5.exe and the new,
|
||||
+ console-based, mp-5c.exe.
|
||||
+ - Added column to action `grep'.
|
||||
+
|
||||
+5.2.7
|
||||
+-----
|
||||
+
|
||||
+ - New features:
|
||||
+ - File format dependent build targets (to be used if a Makefile
|
||||
+ is not found in the current directory).
|
||||
+ - `open_under_cursor' also works over diff file marks (those
|
||||
+ starting with @@).
|
||||
+ - New configuration directive `make_opts', for command line
|
||||
+ options to be added to `make'.
|
||||
+ - Search and replace accepts Unicode chars in \x{HHHH} format.
|
||||
+ - The status line format string can also include the %u token
|
||||
+ to show the Unicode codepoint of the character under the cursor.
|
||||
+ - Fixed bugs:
|
||||
+ - Fixed hexdump search.
|
||||
+ - Avoid having zero-size marks.
|
||||
+
|
||||
+5.2.6
|
||||
+-----
|
||||
+
|
||||
+ - Fixed grep.
|
||||
+
|
||||
+5.2.5
|
||||
+-----
|
||||
+
|
||||
+ - New features:
|
||||
+ - Hex view is searchable.
|
||||
+ - New syntax highlight for JavaScript.
|
||||
+ - Fixed bugs:
|
||||
+ - Avoid crashes in `play_macro' action.
|
||||
+ - Fixed failing menus on Qt4.
|
||||
+ - Fixed file renaming errors in the directory editor.
|
||||
+ - Important changes:
|
||||
+ - Default tab settings has been changed to convert to 4 spaces.
|
||||
+
|
||||
+5.2.4
|
||||
+-----
|
||||
+
|
||||
+ - New features:
|
||||
+ - A new directory editor, linked to the new `open_folder'
|
||||
+ action, that allows file deletion and renaming.
|
||||
+ - New configuration directive `font_weight'.
|
||||
+ - New action `insert_time_stamp', that inserts the current
|
||||
+ timestamp according to the format in the
|
||||
+ `mp.config.time_stamp_format' configuration directive.
|
||||
+ - Changes:
|
||||
+ - mp.add_keyseq() has been reimplemented and no longer needs
|
||||
+ the initial [, as it already assumes it's used only for ANSI
|
||||
+ sequences (so you may need to tweak your own definitions).
|
||||
+ - Fixes:
|
||||
+ - Dynamic tab tweking.
|
||||
+ - Avoid hangups when trying to highlight 0 size regexes.
|
||||
+ - Minor VCS fixes.
|
||||
+ - Revert can be undone.
|
||||
+
|
||||
+5.2.3
|
||||
+-----
|
||||
+
|
||||
+ - New improvements:
|
||||
+ - New actions `move_section_up' and `move_section_down'
|
||||
+ (bound by default to `alt-cursor-up' and `alt-cursor-down').
|
||||
+ - VCS commands can have a common or private log.
|
||||
+ - The menu has been reorganized.
|
||||
+ - Keycode targets can also be other keycodes (not only editor
|
||||
+ actions), so they can be used as aliases.
|
||||
+ - Encodings are now selected from a list.
|
||||
+ - The Curses interface now includes a read-only scrollbar.
|
||||
+ - A much faster hexadecimal viewer.
|
||||
+ - Other changes:
|
||||
+ - Al MP code has been refactored to use new MPSL object-oriented
|
||||
+ capabilities.
|
||||
+
|
||||
+5.2.2
|
||||
+-----
|
||||
+
|
||||
+ - Major improvements:
|
||||
+ - Added Version Control commands (bound by default to `ctrl-p').
|
||||
+ The supported systems are (adding new ones is very easy):
|
||||
+ - Git
|
||||
+ - Subversion
|
||||
+ - Mercurial
|
||||
+ - If any file being edited is modified externally, the situation
|
||||
+ is detected and the user is prompted for file reloading.
|
||||
+ - GTK library detection: Uses 3.x if available, then 2.x.
|
||||
+ - Special information gathering on help: if the file being edited
|
||||
+ is C/C++ and asking for help (by pressing `F1') do not return
|
||||
+ a `man' page, a special routine inspects all source files and
|
||||
+ headers looking for structures, variables and function prototypes
|
||||
+ to be shown as help.
|
||||
+ - If a template name starts with #!, the template body is assumed
|
||||
+ to be MPSL code, that will be executed and its value returned
|
||||
+ as the template to be inserted.
|
||||
+ - New "Pipes" game.
|
||||
+ - New `check_for_updates' action.
|
||||
+ - Fixed bugs:
|
||||
+ - Make `keep_eol' behaviour more intuitive (bug #1294).
|
||||
+
|
||||
+5.2.1
|
||||
+-----
|
||||
+
|
||||
+ - New actions:
|
||||
+ - `indent_block': Indents the current line or the selected block.
|
||||
+ - `unindent_block': Reverse of `indent_block'.
|
||||
+ - New features:
|
||||
+ - ~/.mp_templates can be a directory. If it is, the `global' file
|
||||
+ there is always read (and those templates put at the top) and it
|
||||
+ will also read a file named like the current syntax highlight
|
||||
+ definition (so different templates appear if your editing C, Perl,
|
||||
+ etc.).
|
||||
+ - New configuration options:
|
||||
+ - `mp.config.smart_bol': if set to nonzero, the `move_bol' action
|
||||
+ now moves to the first non-blank character in the line instead of
|
||||
+ to column 0 (unless the cursor is already on the first non-blank).
|
||||
+ - Other improvements:
|
||||
+ - The following actions accept additional arguments when called
|
||||
+ as functions (and do not ask for them, if present):
|
||||
+ - `goto'
|
||||
+ - `save_as'
|
||||
+ - `exec_command'
|
||||
+ - `filter_selection'
|
||||
+
|
||||
+5.2.0
|
||||
+-----
|
||||
+
|
||||
+ - New actions:
|
||||
+ - `filter_selection': to filter the selection (or the
|
||||
+ full document if no selection is done) through a system command.
|
||||
+ - `exec_action': that shows a list of actions to execute
|
||||
+ on the current document.
|
||||
+ - `cut_lines_with_string': that cuts to the clipboard all lines
|
||||
+ in a document or block that matches a regular expression.
|
||||
+ - `insert_real_tab': bound to `shift-tab', to insert a tab
|
||||
+ character (\t) regardless of whatever is set in the
|
||||
+ `tabs_as_spaces' configuration variable.
|
||||
+ - `insert_next_item': to insert a new enumeration item in
|
||||
+ a document.
|
||||
+ - Bugfixes:
|
||||
+ - Fixed insert / overwrite mode.
|
||||
+ - If a selection is invisible (incomplete or with the start and end
|
||||
+ in the same character), a new keystroke does not jump to it.
|
||||
+ - New configuration options:
|
||||
+ - `mp.config.hw_cursor': to activate the hardware cursor in
|
||||
+ text environments (disabled by default).
|
||||
+ - Text user interface improvements:
|
||||
+ - File opening list is fully navegable (directories up and down),
|
||||
+ - Selection lists accept letter keys to jump to elements,
|
||||
+ - If a text mode menu panel do not fit vertically on the screen,
|
||||
+ menu items are scrolled as needed.
|
||||
+ - New command line options:
|
||||
+ - `-txt': force text mode (instead of GUI).
|
||||
+ - General improvements:
|
||||
+ - If a block is selected, actions `word_wrap_paragraph',
|
||||
+ `join_paragraph' and `eval_doc' act only on it.
|
||||
+ - The internal engine has been partly rewritten, so it requires
|
||||
+ less memory and it's a bit faster.
|
||||
+
|
||||
+5.1.4
|
||||
+-----
|
||||
+
|
||||
+ * If a block is selected, any keystroke substitutes it.
|
||||
+ * Support for Alt + keys (ASCII and movement) has been added,
|
||||
+ and mostly left unbound to be used by the user for his own
|
||||
+ keybindings.
|
||||
+ * A new tab mode, which uses the previous line as a template
|
||||
+ for tab columns.
|
||||
+ * Fixed action `open_under_cursor'.
|
||||
+ * The `mp.paste()' function returns the clipboard content
|
||||
+ as a string if called without arguments.
|
||||
+ * New Grutatxt syntax highlighter.
|
||||
+ * Fix F10 in Win32.
|
||||
+ * Fix a bug when calculating the drawing position in the
|
||||
+ selected block, that were leading to crashes.
|
||||
+
|
||||
+5.1.3
|
||||
+-----
|
||||
+
|
||||
+ * A new Qt4 driver (adapted from the KDE4 driver).
|
||||
+ * A new hexadecimal viewer.
|
||||
+ * New action `open_dropped_files', to open files dropped from
|
||||
+ the underlying system GUI.
|
||||
+ * Improved file encoding autodetection by looking at the
|
||||
+ UTF BOM marks.
|
||||
+ * New configuration option `keep_eol', to keep the original
|
||||
+ end of line sequence each document had.
|
||||
+ * Fixed some clipboard issues, as replacing the selected block
|
||||
+ when pasting and some crashes.
|
||||
+ * win32 executable has been renamed to `mp-5.exe'.
|
||||
+ * The status line format string can also include the %e token
|
||||
+ to show the encoding used by the document.
|
||||
+ * Fixed win32 input processing in non-latin environments.
|
||||
+ * Setting an empty encoding (to fall back to system defaults)
|
||||
+ always work.
|
||||
+
|
||||
+5.1.2
|
||||
+-----
|
||||
+
|
||||
+ * The `grep' action can now be recursive.
|
||||
+ * New syntax color for special documentation blocks.
|
||||
+ * Fix searching into empty selected blocks (this was bug #1269).
|
||||
+ * New action `section_list', that shows a list of _sections_
|
||||
+ in the current document to jump to. Sections are usually
|
||||
+ function definitions and special marks in programming
|
||||
+ languages.
|
||||
+ * New action `seek_misspelled', to search the next
|
||||
+ misspelled word. It has been assigned to keycode `f5'.
|
||||
+ * New action `ignore_last_misspell', to add the last misspelled
|
||||
+ word found by `seek_misspelled' to a whitelist so it won't
|
||||
+ be found again.
|
||||
+ * New action `seek_repeated_word', to search for words starting
|
||||
+ or ending with the same number of letters up to a maximum
|
||||
+ distance. It's controlled by the new configuration directives
|
||||
+ `mp.config.rw_num_chars' and `mp.config.rw_max_dist'.
|
||||
+ It has been assigned to keycode `f6' (this keycode was
|
||||
+ previously assigned to `join_paragraph', which has no
|
||||
+ keybinding now).
|
||||
+ * The action `open_templates_file' has been fixed.
|
||||
+ * Several GTK interface updates by fellow developer Sebastian Vöcking.
|
||||
+ * New command line option `-d', to change the working directory.
|
||||
+ * Several fixes to the win32 driver; word wrapping, combobox
|
||||
+ drop-down sizes, underlined text.
|
||||
+ * Avoid hanging if the external ispell program is broken.
|
||||
+ * The `dump()' function now dumps its argument as MPSL code.
|
||||
+
|
||||
+5.1.1
|
||||
+-----
|
||||
+
|
||||
+ * Internationalization works in all platforms (including KDE4,
|
||||
+ were it was faulty, and win32, where it was non-existent since
|
||||
+ the 3.x series).
|
||||
+ * The status line format string can also include the %w token
|
||||
+ to show the number of words in the current document or selection
|
||||
+ (can be slow).
|
||||
+ * Search and replace is now limited to the selected block, if any.
|
||||
+
|
||||
+5.1.0
|
||||
+-----
|
||||
+
|
||||
+Fixes to the KDE4 driver:
|
||||
+
|
||||
+ * Underlined text works.
|
||||
+ * Text fields in forms now have history.
|
||||
+ * If no xserver can be contacted, fall back to the curses interface.
|
||||
+
|
||||
+5.1.0-rc1
|
||||
+---------
|
||||
+
|
||||
+ * KDE4 support.
|
||||
+ * Rectangular block copy/paste support.
|
||||
+ * New syntax highlight for the Euphoria language.
|
||||
+
|
||||
+5.0.3
|
||||
+-----
|
||||
+
|
||||
+ * New action `open_under_cursor', that picks the word in the
|
||||
+ current document under the cursor, accepts it as a document
|
||||
+ name and tries to open it. If it's in the format string:number,
|
||||
+ is accepted as a file name and a line number. It's bound by
|
||||
+ default to `ctrl-enter' (`alt-enter' under Curses).
|
||||
+ * The `grep' action bevahaviour has changed; instead of in a form,
|
||||
+ matches are shown in a read-only document that is only closed
|
||||
+ explicitly. Each change can be moved to by using the new
|
||||
+ `open_under_cursor' (`ctrl-enter' or `alt-enter') action shown above.
|
||||
+ * In a similar way, the `build' action also shows its output in a
|
||||
+ read-only document instead of a form that is not automatically closed,
|
||||
+ making the browsing and editing of compilation errors more useful.
|
||||
+ * Forms in the Curses driver have changed their look. All fields in a
|
||||
+ form are shown simultaneously on screen. This is one step to close
|
||||
+ bug #1249.
|
||||
+ * A set of character encoding converters have been natively implemented,
|
||||
+ improving those platforms where the 'iconv' library is not available
|
||||
+ (i.e. Windows and old Unix systems). The available encodings can be
|
||||
+ shown by executing
|
||||
+
|
||||
+ dump(EMBEDDED_ENCODINGS);
|
||||
+
|
||||
+5.0.2
|
||||
+-----
|
||||
+
|
||||
+ * New option to mark end of line characters, with its associated
|
||||
+ configuration directive (mp.config.mark_eol).
|
||||
+ * The end of line string (mp.config.eol) is now system-dependent (so,
|
||||
+ on win32, it's set by default to \r\n).
|
||||
+ * Copy and paste on GTK has been fixed (this was bug #1205).
|
||||
+ * Fixed some redrawing issues (bug #1236 and others).
|
||||
+ * Ctrl-keys no longer fail on GTK (bug #1252).
|
||||
+ * New document _Minimum Profit Action Reference_.
|
||||
+ * New action `build', for building Makefile-based projects. See the
|
||||
+ action reference for details.
|
||||
+
|
||||
+5.0.1
|
||||
+-----
|
||||
+
|
||||
+ * Improved line edition in the Curses interface (full edition plus file
|
||||
+ expansion using the `tab' key in open / save file prompts).
|
||||
+ * Auto-indenting is temporarily disabled while pasting (bug #1250).
|
||||
+ * New document _Minimum Profit Function Reference_ (contributed by Lee Page).
|
||||
+
|
||||
+5.0.0
|
||||
+-----
|
||||
+
|
||||
+ * The search hit is highlighted.
|
||||
+ * When invoked from the menu, the `record_macro' action dropped
|
||||
+ the last key (bug #1245).
|
||||
+ * A Curses configuration detection has been fixed that made
|
||||
+ some things behave strangely, as the drop-down menu not
|
||||
+ responding under some terminal configurations (bug #1247).
|
||||
+ * The Curses menu no longer crashes if it doesn't fit on
|
||||
+ the screen (bug #1195).
|
||||
+ * The -f (execute script) command line argument really works
|
||||
+ (bug #1240).
|
||||
+ * New manual page (bug #1219) and README files (bug #1218).
|
||||
+ * Updated documents, _MPSL Overview_ and _Minimum Profit Cookbook_.
|
||||
+ * New documents, _Minimum Profit Data Model_ and
|
||||
+ _Creating interactive dialog boxes_.
|
||||
+
|
||||
+5.0.0-rc3
|
||||
+---------
|
||||
+
|
||||
+ * New session support. All open documents and its current position
|
||||
+ can be stored / retrieved with the new `save_session' and
|
||||
+ `load_session' actions. Two new configuration flags has
|
||||
+ been added: `mp.config.auto_sessions', to automatically load / save
|
||||
+ sessions, and `mp.config.local_sessions', to save sessions in the
|
||||
+ currently active directory instead of in the home directory.
|
||||
+ * Multiple key sequences for invoking actions (ala Emacs) are
|
||||
+ now possible. To create them, just assign a hash to a keycode
|
||||
+ instead of an action. For example, to assign the key sequence
|
||||
+ Ctrl-x Ctrl-f to `open' and Ctrl-x Ctrl-s to `save', you can use
|
||||
+
|
||||
+ mp.keycodes['ctrl-x'] = {
|
||||
+ 'ctrl-f' => 'open',
|
||||
+ 'ctrl-s' => 'save'
|
||||
+ };
|
||||
+
|
||||
+ * In the curses version, confirmations now have default values
|
||||
+ (shown in brackets), activated with the ENTER key.
|
||||
+ * New action `close_all', that closes all documents.
|
||||
+
|
||||
+5.0.0-rc2
|
||||
+---------
|
||||
+
|
||||
+ * New `complete' action, that asks for completion on the current
|
||||
+ word using any of the words found in the same document.
|
||||
+ * New `redo' action, to revert undo operations.
|
||||
+ * The global configuration file `/etc/mp.mpsl' is also executed.
|
||||
+ * In the `replace' action, the substitution string can contain
|
||||
+ the special character &, that will be replaced by the matched
|
||||
+ string (as in the `sed' command line tool).
|
||||
+
|
||||
+5.0.0-rc1
|
||||
+---------
|
||||
+
|
||||
+ * New support for translating key sequences into MP keycodes, mainly
|
||||
+ for redefining ANSI sequences not supported by current terminfo /
|
||||
+ termcap. For example, if your terminal sends the ANSI sequence [6;5~
|
||||
+ whenever you press Ctrl+page down, you can add to your config file
|
||||
+ the following line:
|
||||
+
|
||||
+ mp.add_keyseq("[6;5~", 'ctrl-page-down');
|
||||
+
|
||||
+ * A new `system_command' action, to pipe from and to system commands
|
||||
+ (Closed bug #1120).
|
||||
+ * A new `word_count' action, to count the number of lines and words
|
||||
+ in a document (or in the selected block).
|
||||
+ * Incorrect word wrapping has been fixed (Closed bug #1137).
|
||||
+ * Search and replace expand backslashed characters like \n and \t
|
||||
+ (Closed bug #1214).
|
||||
+ * New timer functionality has been added; a user function can be called
|
||||
+ each time a specified period of milliseconds have elapsed. If, for
|
||||
+ example, you want to print a string on standard output each two
|
||||
+ seconds, you can run
|
||||
+
|
||||
+ mp.timer(2000, sub { print("Hi, world!\n"); });
|
||||
+
|
||||
+5.0.0-pre1
|
||||
+----------
|
||||
+
|
||||
+ * Password-protected files fully work.
|
||||
+ * Moving to next / previous instance of character (bound to ctrl-page-down
|
||||
+ and ctrl-page-up) works (Closed bug #1131).
|
||||
+ * Files open MUCH faster.
|
||||
+ * Selection can be done by pressing shift + any movement key (Closed bug #1182).
|
||||
+ * Dialog boxes work under Windows 98 (Closed bugs #1196, #1197).
|
||||
+ * Block selection can be done by dragging the mouse (Closed bugs #1200, #1201).
|
||||
+ * New `grep' functionality (Closed bug #1116).
|
||||
+ * New action `sync' (save all modified documents, closed bug #1206).
|
||||
+ * New action `document_list' (show a box with all open documents, allowing
|
||||
+ the selection of the active one; closed bug #1211).
|
||||
+ * Translations ported from mp 3.x (closed bug #1169).
|
||||
+ * Most syntax highlight definitions ported from mp 3.x (closed bug #1168).
|
||||
+
|
||||
+4.99.12
|
||||
+-------
|
||||
+
|
||||
+ * The menu in the Curses interface has been (finally) implemented.
|
||||
+ * Interfaces have changed internally; a new driver function, mp.drv.form()
|
||||
+ serves as a dialog box generic generator, resulting in more useful queries
|
||||
+ for data (for example, all data required for a `replace' operation is
|
||||
+ queried in only one dialog box). The Curses implementation, though
|
||||
+ functional, is still just a wrapper to the old interface functions
|
||||
+ and fields are queried one-by-one (which is annoying). This is an example
|
||||
+ of a call to mp.drv.form(); the r variable will contain an array of 5
|
||||
+ elements (one per widget) containing the values, or NULL if user cancelled:
|
||||
+
|
||||
+ local r = mp.drv.form( [
|
||||
+
|
||||
+ /* a 'text' widget */
|
||||
+ { 'label' => "Replace this:",
|
||||
+ 'type' => 'text',
|
||||
+ 'history' => 'search',
|
||||
+ 'value' => 'THIS' },
|
||||
+
|
||||
+ /* another one */
|
||||
+ { 'label' => "With:",
|
||||
+ 'type' => 'text',
|
||||
+ 'history' => 'replace',
|
||||
+ 'value' => 'THAT' },
|
||||
+
|
||||
+ /* a 'password' widget */
|
||||
+ { 'label' => 'Password:',
|
||||
+ 'type' => 'password' },
|
||||
+
|
||||
+ /* a 'checkbox' widget */
|
||||
+ { 'label' => "Case sensitive:",
|
||||
+ 'type' => 'checkbox',
|
||||
+ 'value' => mp.config.case_sensitive_search },
|
||||
+
|
||||
+ /* a 'list' widget */
|
||||
+ { 'label' => 'All C files:',
|
||||
+ 'type' => 'list',
|
||||
+ 'list' => glob('*.c'),
|
||||
+ 'value' => 10 }
|
||||
+ ] );
|
||||
+
|
||||
+ * Password protecting files works (but they cannot be opened yet, so this
|
||||
+ is far from useful, unless you use mp 3.x to open them).
|
||||
+ * Case sensitivity in searches can be controlled with the new
|
||||
+ config flag mp.config.case_sensitive_search.
|
||||
+ * Replace (and global replace by use of the new config flag
|
||||
+ `mp.config.global_replace') works.
|
||||
+
|
||||
+4.99.11
|
||||
+-------
|
||||
+
|
||||
+ * Syntax highlight definition have changed (again, hopefully for the last
|
||||
+ time). Definitions are now an array of attribute name / regexes in which
|
||||
+ the order is significative.
|
||||
+ * Template insertion works.
|
||||
+ * Tag selection (open the file where a symbol is defined) works.
|
||||
+ * Symbol completion (using tags) works.
|
||||
+ * Closed bugs #1159, #1158, #1153, #1161.
|
||||
+
|
||||
+4.99.10
|
||||
+-------
|
||||
+
|
||||
+ * A big advance in the Curses interface; alerts, confirmations, and open
|
||||
+ file, save file, search and generic prompts are working. Still lacking
|
||||
+ the selection lists (as the rest of interfaces) and the menu.
|
||||
+ * Improved menus; if an invalid action is added to a menu, it's shown
|
||||
+ followed by a ?; if a key is bound to that action, it's shown between
|
||||
+ square brackets.
|
||||
+ * For systems lacking iconv support (MS Windows), a crappy, ad-hoc utf-8
|
||||
+ converter has been added. This means that hitting `escape' and typing
|
||||
+ `encoding('utf-8');' makes reading and writing utf-8 encoded files
|
||||
+ possible on every system.
|
||||
+ * New action `join_paragraph', to join current paragraph all in one line.
|
||||
+ * New action `word_wrap_paragraph', that re-word-wraps current paragraph.
|
||||
+ Word wrapping must be set ('mp.config.word_wrap = number;') for this to
|
||||
+ work.
|
||||
+
|
||||
+4.99.9
|
||||
+------
|
||||
+
|
||||
+ * The GTK and win32 drivers now include a native open/save file dialog.
|
||||
+ * Interactive help (help for the word under the cursor, triggered by
|
||||
+ pressing `f1') works.
|
||||
+ * The menu in GTK and win32 works.
|
||||
+ * New icon!
|
||||
+ * Some bugs that caused random crashes has been fixed.
|
||||
+ * New action `exec-doc', that executes the active open document as
|
||||
+ MPSL code.
|
||||
+
|
||||
+4.99.8
|
||||
+------
|
||||
+
|
||||
+ * New configuration option `mp.config.tabs_as_spaces', to store tabs
|
||||
+ as spaces.
|
||||
+ * Each syntax highlight definition can contain an optional function
|
||||
+ called detect() that receives the document as argument and can be used
|
||||
+ to tailor special detection rules.
|
||||
+ * A big part of the internal storage of colors and attributes have
|
||||
+ been rewritten to make it more dynamic.
|
||||
+ * Tag target for the word over the cursor is shown in the status line.
|
||||
+ * Move word left works.
|
||||
+ * Opening an already open file makes it the active one instead of
|
||||
+ re-opening it.
|
||||
+ * The `execute code' action has been remapped from `ctrl-f1' to escape.
|
||||
+ * Spellchecking via ispell works (though it's SLOW!). Activate it by
|
||||
+ hitting escape and typing:
|
||||
+
|
||||
+ mp.ispell(1);
|
||||
+
|
||||
+ * By default, files are now unlinked before (re)written. File permissions
|
||||
+ and ownership are restored if available. This behaviour can be disabled
|
||||
+ by setting `mp.config.unlink' to zero.
|
||||
+ * The GTK driver drawing code has been optimized, so it's much more
|
||||
+ responsive now.
|
||||
+
|
||||
+4.99.7
|
||||
+------
|
||||
+
|
||||
+ * The `modified' flag of documents is maintained, so now closing files
|
||||
+ with pending modifications ask for confirmation. Also, the %m status
|
||||
+ line directive works (marking modified files with an asterisk).
|
||||
+ * Flex and bison are no longer needed to build.
|
||||
+ * The `close window' button in GUIs (win32 and GTK) now generate the
|
||||
+ special keycode `close-window'.
|
||||
+ * The `exit' action now closes all open documents, asking for saving
|
||||
+ confirmation on those modified.
|
||||
+ * Temporary versions of the `open' ans `save' actions (using
|
||||
+ mp.drv.readline() instead of an ad-hoc open file dialog) have
|
||||
+ been implemented.
|
||||
+ * The GUI interfaces now can have their font preferences configured
|
||||
+ by using mp.config.font_face and mp.config.font_size.
|
||||
+ * The actions `zoom-in' and `zoom-out' (font size rescaling, bound to
|
||||
+ `f11/f12' and `ctrl-kp-minus/ctrl-kp-plus') have been implemented.
|
||||
+ * New mouse-related actions; `move-to-mouse-position', `move-mouse-wheel-up'
|
||||
+ and `move-mouse-wheel-down'.
|
||||
+
|
||||
+4.99.6
|
||||
+------
|
||||
+
|
||||
+This is an EXPERIMENTAL version for evaluation purposes only. There are
|
||||
+many things that aren't implemented, others fail miserably and many more
|
||||
+do it incorrectly. Basically, what is known to work is:
|
||||
+
|
||||
+ * Basic text editing fully works. I've been using it for six months or so
|
||||
+ to maintain itself, and there has not been a crash in three months,
|
||||
+ more or less.
|
||||
+ * Scripting works fine (90% of Minimum Profit 5.x itself is implemented
|
||||
+ in MPSL, its internal scripting language).
|
||||
+ * Undo works fine. It's bound to ctrl-z.
|
||||
+ * Works cleanly in an UTF-8 environment.
|
||||
+
|
||||
+I do development on the GTK version, so it's where it works best. The
|
||||
+curses version lacks many of the interface (alerts, confirmations,
|
||||
+asking for text, etc.), so it's barely usable. The win32 version seem
|
||||
+to work, but it needs to be manually installed and probably need some
|
||||
+tweaking.
|
||||
+
|
||||
+What it doesn't work:
|
||||
+
|
||||
+ * The dialogs to open or save a file by its name aren't implemented.
|
||||
+ There are workarounds for this: files can be opened from the command
|
||||
+ line and save works correctly if the edited file has a name. Also,
|
||||
+ files can be opened by hitting `ctrl-f1' (execute script code) and
|
||||
+ typing:
|
||||
+
|
||||
+ mp.open("file-to-be-opened");
|
||||
+
|
||||
+ * There is no menu.
|
||||
+ * No ispell support.
|
||||
+ * No password protected files.
|
||||
+ * No grep.
|
||||
+ * No external commands (so no support for help, tags, etc.).
|
||||
+ * Some movement commands as moving a word left, moving to matching
|
||||
+ brackets, etc. are still not implemented.
|
||||
+ * Only a few syntax highlight definitions are implemented.
|
||||
+ * Many other things I cannot remember.
|
||||
+
|
||||
+Documentation is still scarce: the more interesting bits are inside the
|
||||
+mpsl/doc directory. This is where the scripting language is documented,
|
||||
+with some basic overviews and implementation notes (there is even an
|
||||
+embryo of a PostScript quick reference guide).
|
||||
+
|
||||
+Customizing can be done by writing MPSL commands in the ~/.mp.mpsl file,
|
||||
+which is read on startup.
|
||||
+
|
||||
+I have not tried to optimize the internal engine, so it's probably some
|
||||
+magnitudes slower than the 3.x version.
|
3
mp-5.62.tar.gz
Normal file
3
mp-5.62.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9727068c4bf5e052227a608dc72ae4225a1e07b6a192116efc2a559b4fe4e206
|
||||
size 472107
|
10
mp-5.desktop
10
mp-5.desktop
@@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
GenericName=Text Editor
|
||||
Name=Minimum Profit
|
||||
MimeType=text/plain;
|
||||
Exec=mp-5 %U
|
||||
Icon=mp-5
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Categories=GTK;TextEditor;
|
3
mp-5.png
3
mp-5.png
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8d60e68d3665e1adcbf8b4ccd2e01767a79c9bac5d37af99e7a65933eb26609e
|
||||
size 1531
|
@@ -1,21 +0,0 @@
|
||||
Index: mp-5.2.10/makefile.in
|
||||
===================================================================
|
||||
--- mp-5.2.10.orig/makefile.in
|
||||
+++ mp-5.2.10/makefile.in
|
||||
@@ -144,12 +144,12 @@ install: $(INSTALL_MSG) installdoc $(INS
|
||||
( cd $(MPSL) ; make install )
|
||||
|
||||
installdoc:
|
||||
- ./mkinstalldirs $(PREFIX)/share/doc/$(APPNAME)
|
||||
+ ./mkinstalldirs $(PREFIX)/share/doc/packages/$(APPNAME)
|
||||
( cd $(MPDM); $(MAKE) installdoc )
|
||||
( cd $(MPSL); $(MAKE) installdoc )
|
||||
- install -m 644 doc/* $(PREFIX)/share/doc/$(APPNAME)
|
||||
- install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/$(APPNAME)
|
||||
- [ -f doc/mp_index.html ] && install -m 644 doc/mp_index.html $(PREFIX)/share/doc/$(APPNAME)/index.html || true
|
||||
+ install -m 644 doc/* $(PREFIX)/share/doc/packages/$(APPNAME)
|
||||
+ install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/packages/$(APPNAME)
|
||||
+ [ -f doc/mp_index.html ] && install -m 644 doc/mp_index.html $(PREFIX)/share/doc/packages/$(APPNAME)/index.html || true
|
||||
|
||||
uninstall: $(UNINSTALLMO)
|
||||
rm -f $(PREFIX)/bin/$(APPNAME)
|
21
mp-rpmlintrc
21
mp-rpmlintrc
@@ -1,23 +1,2 @@
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_core.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_crypt.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_session.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_move.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_writing.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_toys.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_misc.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_syntax.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_vcs.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_spell.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_edit.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_macro.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_templates.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_clipboard.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_tui.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_search.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_drv.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_build.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_tags.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_dir.mpsl")
|
||||
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_file.mpsl")
|
||||
addFilter("no-manual-page-for-binary .*mpsl")
|
||||
|
||||
|
36
mp.changes
36
mp.changes
@@ -1,3 +1,39 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 2 11:23:04 UTC 2025 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||
|
||||
- Add reproducibledocs.patch and reproducibletar.patch
|
||||
to make package build reproducible
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 28 15:49:58 UTC 2025 - Friedrich Haubensak <hsk17@mail.de>
|
||||
|
||||
- Update to 5.62
|
||||
- See RELEASE_NOTES for notes on releases since 5.31, and
|
||||
mp-5.62-releasenotes.patch for notes on releases prior to 5.31
|
||||
- Drop mp-docdir.patch, add mp-5.62-installdirs.patch
|
||||
- Drop mp-scrollevent.patch, upstreamed
|
||||
- Drop desktop and icon source files in favour of upstream
|
||||
provided files
|
||||
- Add mp-5.62-config-msgfmt.patch to fix install of lang files
|
||||
- To build docs and man page, add grutatxt and mp_doccer, add
|
||||
mp-5.62-mpdm-config.patch, mp-5.62-mpsl-make-quickref.patch
|
||||
- Qt5 is EOL, replace Qt5Widgets by Qt6Widgets: add
|
||||
mp-5.62-config-qt6.patch, mp-5.62-qt6-isnull.patch,
|
||||
mp-5.62-qt6-weight.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 4 08:23:42 UTC 2024 - Martin Pluskal <mpluskal@suse.com>
|
||||
|
||||
- Modernise spec file and remove obsolete rpmlintrc filters
|
||||
- Do not use source urls for download as they are not available
|
||||
anymore
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 3 13:35:57 UTC 2024 - Friedrich Haubensak <hsk17@mail.de>
|
||||
|
||||
- Add mp-scrollevent.patch to fix type issue found by gcc14 compile
|
||||
time error.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 22 14:04:01 UTC 2024 - pgajdos@suse.com
|
||||
|
||||
|
64386
mp.keyring
64386
mp.keyring
File diff suppressed because it is too large
Load Diff
96
mp.spec
96
mp.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package mp
|
||||
#
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -12,35 +12,35 @@
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: mp
|
||||
Version: 5.2.13
|
||||
Version: 5.62
|
||||
Release: 0
|
||||
Summary: A text editor for programmers
|
||||
License: GPL-2.0
|
||||
Group: Productivity/Text/Editors
|
||||
Url: http://triptico.com/software/mp.html
|
||||
Source0: http://triptico.com/download/mp/mp-%{version}.tar.gz
|
||||
Source1: http://triptico.com/download/mp/mp-%{version}.tar.gz.asc
|
||||
Source2: %{name}.keyring
|
||||
Source3: %{name}-5.desktop
|
||||
Source4: %{name}-5.png
|
||||
License: GPL-2.0-only
|
||||
URL: https://triptico.com/software/mp.html
|
||||
Source0: https://github.com/ttcdt/mp-5.x/archive/refs/tags/%{version}.tar.gz#/mp-%{version}.tar.gz
|
||||
Source5: %{name}-rpmlintrc
|
||||
Source6: %{name}-5-gtk3.desktop
|
||||
Patch0: %{name}-docdir.patch
|
||||
Source101: https://triptico.com/download/grutatxt.tar.gz
|
||||
Source102: https://triptico.com/download/mp_doccer-1.2.2.tar.gz
|
||||
Source103: reproducibledocs.patch
|
||||
Patch2: mp-5.62-releasenotes.patch
|
||||
Patch3: mp-5.62-installdirs.patch
|
||||
Patch4: mp-5.62-config-msgfmt.patch
|
||||
Patch5: mp-5.62-mpdm-config.patch
|
||||
Patch6: mp-5.62-mpsl-make-quickref.patch
|
||||
Patch7: mp-5.62-config-qt6.patch
|
||||
Patch8: mp-5.62-qt6-isnull.patch
|
||||
Patch9: mp-5.62-qt6-weight.patch
|
||||
Patch10: reproducibletar.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: pkgconfig(Qt5Widgets)
|
||||
BuildRequires: pkgconfig(Qt6Widgets)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
%if 0%{?suse_version} < 1500
|
||||
Requires(post): update-desktop-files
|
||||
Requires(postun): update-desktop-files
|
||||
%endif
|
||||
|
||||
%description
|
||||
Minimum Profit
|
||||
@@ -73,7 +73,6 @@ Features
|
||||
|
||||
%package gtk3
|
||||
Summary: A text editor for programmers (GTK+3 version)
|
||||
Group: Productivity/Text/Editors
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description gtk3
|
||||
@@ -106,55 +105,62 @@ Features
|
||||
* It helps you abandon vi, emacs and other six-legged freaks definitely.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
## helper tools needed to build docs and man page
|
||||
%setup -q -T -c -n helpers -a 101
|
||||
cd ..
|
||||
%setup -q -T -D -c -n helpers -a 102
|
||||
cd ..
|
||||
mv helpers/Grutatxt*/{Grutatxt.pm,grutatxt} helpers/mp_doccer*/mp_doccer helpers
|
||||
sed -e "s:use lib '.':use lib '%{_builddir}/helpers':" -i helpers/grutatxt
|
||||
patch -p1 < %{S:103}
|
||||
|
||||
%autosetup -p1 -n mp-5.x-%{version}
|
||||
|
||||
%build
|
||||
## nneded for Qt6, see qt6-base / qt6-core-devel
|
||||
%if 0%{?suse_version} == 1500
|
||||
export CC=gcc-13
|
||||
export CPP=g++-13
|
||||
%endif
|
||||
export CFLAGS="%{optflags}"
|
||||
./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5
|
||||
make %{?_smp_mflags}
|
||||
export PATH=${PATH}:%{_builddir}/helpers
|
||||
./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5 --with-moc=%{_libexecdir}/qt6/moc
|
||||
%make_build
|
||||
mv mp-5 mp-5-qt5
|
||||
WITHOUT_QT5=1 WITHOUT_QT4=1 ./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5
|
||||
make %{?_smp_mflags}
|
||||
WITHOUT_MSGFMT=0 WITHOUT_QT5=1 ./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5
|
||||
%make_build
|
||||
%make_build docs
|
||||
sed -e 's/^Exec=mp-5/&-gtk3/' -e 's/^Name=.*/& (GTK+3 version)/' <minimum-profit.desktop >minimum-profit.desktop-gtk3
|
||||
mv mp-5 mp-5-gtk3
|
||||
mv mp-5-qt5 mp-5
|
||||
|
||||
%install
|
||||
%make_install
|
||||
%make_install install-arch
|
||||
%make_install -C mpsl
|
||||
|
||||
install -D -p -m 644 %{SOURCE3} %{buildroot}/%{_datadir}/applications/%{name}-5.desktop
|
||||
install -D -p -m 644 %{SOURCE4} %{buildroot}/%{_datadir}/pixmaps/%{name}-5.png
|
||||
install -p -m 644 %{SOURCE6} %{buildroot}/%{_datadir}/applications/%{name}-5-gtk3.desktop
|
||||
install -m 755 mp-5-gtk3 %{buildroot}%{_bindir}/mp-5-gtk3
|
||||
install -m 644 mp-5.1 %{buildroot}/%{_mandir}/man1/mp-5-gtk3.1
|
||||
|
||||
%suse_update_desktop_file %{name}-5 TextEditor
|
||||
install -m 644 minimum-profit.desktop-gtk3 %{buildroot}/%{_datadir}/applications/minimum-profit-gtk3.desktop
|
||||
|
||||
%find_lang minimum-profit
|
||||
rm %{buildroot}%{_datadir}/doc/packages/mp-5/mpsl_quickref.ps
|
||||
rm %{buildroot}%{_docdir}/mp-5/mpsl_quickref.ps
|
||||
%fdupes -s %{buildroot}
|
||||
|
||||
%if 0%{?suse_version} < 1500
|
||||
%post
|
||||
%desktop_database_post
|
||||
|
||||
%postun
|
||||
%desktop_database_postun
|
||||
%endif
|
||||
|
||||
%files -f minimum-profit.lang
|
||||
%{_bindir}/%{name}-5
|
||||
%{_bindir}/%{name}sl
|
||||
%dir %{_docdir}/%{name}-5
|
||||
%{_docdir}/%{name}-5/*
|
||||
%{_mandir}/man1/%{name}-5.1%{ext_man}
|
||||
%{_mandir}/man1/%{name}-5.1%{?ext_man}
|
||||
%dir %{_datadir}/%{name}-5
|
||||
%{_datadir}/%{name}-5/*
|
||||
%{_datadir}/applications/%{name}-5.desktop
|
||||
%{_datadir}/pixmaps/%{name}-5.png
|
||||
%{_datadir}/applications/minimum-profit.desktop
|
||||
%{_datadir}/icons/hicolor/48x48/apps/*
|
||||
%{_datadir}/metainfo/*
|
||||
|
||||
%files gtk3
|
||||
%{_bindir}/%{name}-5-gtk3
|
||||
%{_datadir}/applications/%{name}-5-gtk3.desktop
|
||||
%{_mandir}/man1/%{name}-5-gtk3.1%{ext_man}
|
||||
%{_datadir}/applications/minimum-profit-gtk3.desktop
|
||||
%{_mandir}/man1/%{name}-5-gtk3.1%{?ext_man}
|
||||
|
||||
%changelog
|
||||
|
3
mp_doccer-1.2.2.tar.gz
Normal file
3
mp_doccer-1.2.2.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:359c699830fa3b9545500dbe1f8d40967bd06b8e8054eff3c67a3c41ecb6f55e
|
||||
size 16275
|
35
reproducibledocs.patch
Normal file
35
reproducibledocs.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||
Date: 2025-06-02
|
||||
|
||||
Patch Grutatxt to not add varying timestamps
|
||||
into .html files and man-pages, if $SOURCE_DATE_EPOCH is set
|
||||
so that we can have reproducible-builds.
|
||||
|
||||
This patch was done while working on reproducible builds for openSUSE.
|
||||
|
||||
diff --git a/grutatxt b/grutatxt
|
||||
index 78e4327..6a68dcf 100755
|
||||
--- a/grutatxt
|
||||
+++ b/helpers/grutatxt
|
||||
@@ -167,7 +167,7 @@ unless ($no_body) {
|
||||
print O "<title>$title</title>\n";
|
||||
|
||||
printf O "<!-- converted from text by grutatxt $VERSION on %s -->\n", scalar(localtime)
|
||||
- unless $no_time_sig;
|
||||
+ unless $no_time_sig or $ENV{SOURCE_DATE_EPOCH};
|
||||
|
||||
if ($css) {
|
||||
if ($embed_css) {
|
||||
diff --git a/Grutatxt.pm b/Grutatxt.pm
|
||||
index cc0834d..7352fdd 100644
|
||||
--- a/Grutatxt.pm
|
||||
+++ b/helpers/Grutatxt.pm
|
||||
@@ -1426,7 +1426,7 @@ sub _prefix
|
||||
{
|
||||
my ($gh) = @_;
|
||||
|
||||
- $gh->_push(".TH \"$gh->{'page-name'}\" \"$gh->{'section'}\" \"" . localtime() . "\"");
|
||||
+ $gh->_push(".TH \"$gh->{'page-name'}\" \"$gh->{'section'}\" \"" . localtime($ENV{SOURCE_DATE_EPOCH} || time) . "\"");
|
||||
}
|
||||
|
||||
|
29
reproducibletar.patch
Normal file
29
reproducibletar.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||
Date: 2025-06-02
|
||||
|
||||
Make tar-file creation fully deterministic
|
||||
using the snippet from
|
||||
https://reproducible-builds.org/docs/archives/
|
||||
|
||||
note: will fail if SOURCE_DATE_EPOCH is not set.
|
||||
If mtime does not matter, we can use '1' there instead.
|
||||
|
||||
This patch was done while working on reproducible builds for openSUSE.
|
||||
|
||||
diff --git a/makefile.in b/makefile.in
|
||||
index 8ee95fd..289f849 100644
|
||||
--- a/makefile.in
|
||||
+++ b/makefile.in
|
||||
@@ -37,7 +37,11 @@ dep:
|
||||
-e 's;$(MPSL)/;$$(MPSL)/;g' > makefile.depend
|
||||
|
||||
mp.tar: $(ARCHFILES)
|
||||
- $(TAR) cvf $@ $(ARCHFILES)
|
||||
+ $(TAR) --sort=name \
|
||||
+ --mtime="@${SOURCE_DATE_EPOCH}" \
|
||||
+ --owner=0 --group=0 --numeric-owner \
|
||||
+ --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
|
||||
+ -cvf $@ $(ARCHFILES)
|
||||
|
||||
mp.tar.o: mp.tar
|
||||
$(LD) -r -b binary mp.tar -o $@
|
Reference in New Issue
Block a user