summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scite-fedora/README.md9
-rw-r--r--scite-fedora/scite.spec5
-rw-r--r--scite/debian/changelog11
-rw-r--r--scite/debian/scite+devuan.dsc2
-rw-r--r--scite/stackrpms-2022-04-05.diff539
-rw-r--r--scite/stackrpms-5.2.3-1.diff1163
6 files changed, 1182 insertions, 547 deletions
diff --git a/scite-fedora/README.md b/scite-fedora/README.md
index 766ff41..a095bba 100644
--- a/scite-fedora/README.md
+++ b/scite-fedora/README.md
@@ -11,9 +11,9 @@ Distro | scite version
------------ | ---------------
CentOS 6 | 3.7.6
CentOS 7 | 3.7.6
-CentOS 8 | 5.2.2
-Fedora 34 | 5.2.2
-Devuan Ceres | 5.2.2
+CentOS 8 | 5.2.3
+Fedora 35 | 5.2.3
+Devuan Ceres | 5.2.3
# References
void linux [scite](https://github.com/void-linux/void-packages/blob/master/srcpkgs/scite/template) package guided me at version 5.0.1.
@@ -21,10 +21,11 @@ void linux [scite](https://github.com/void-linux/void-packages/blob/master/srcpk
# Differences
## From upstream for Fedora
See file [stackrpms-scite.spec.diff](stackrpms-scite.spec.diff)
+Customized SciTEGlobal.properties, to use my settings and also my custom lua script.
## Between scite-fedora and scite-el
Run file [fc-el-scite-diff.sh](fc-el-scite-diff.sh).
scite-fedora/fc-el-scite-diff.sh | vi -
## From upstream for Devuan
-
+Customized SciTEGlobal.properties, to use my settings and also my custom lua script.
diff --git a/scite-fedora/scite.spec b/scite-fedora/scite.spec
index 1cc96e7..2145880 100644
--- a/scite-fedora/scite.spec
+++ b/scite-fedora/scite.spec
@@ -1,6 +1,6 @@
# Tunables
# el7 is on 3.x, el8/fc is on 5.x
-%global pkgversion 5.2.2
+%global pkgversion 5.2.3
# Use lua
%define with_lua 1
# Use bundled lua. If 0, then use distro lua
@@ -147,6 +147,9 @@ install -D -p -m 666 %{SOURCE2} %{buildroot}%{_datadir}/scite/SciTEGlobal.proper
%{_libdir}/*
%changelog
+* Tue May 31 2022 B. Stack <bgstack15@gmail.com> - 5.2.3-1/3.7.6-1
+- Update version
+
* Mon Apr 04 2022 B. Stack <bgstack15@gmail.com> - 5.2.2-2/3.7.6-1
- Update version
- Add tunables: gtk, lua, bundled lua, add stackrpms.lua
diff --git a/scite/debian/changelog b/scite/debian/changelog
index 9ff6ecc..fc5ebf7 100644
--- a/scite/debian/changelog
+++ b/scite/debian/changelog
@@ -1,9 +1,16 @@
-scite (5.2.2-2+devuan) obs; urgency=medium
+scite (5.2.3-1+devuan) obs; urgency=medium
* Add stackrpms lua script and customized global.properties
* Use lua 5.4.4
- -- B. Stack <bgstack15@gmail.com> Mon, 04 Apr 2022 09:51:24 -0400
+ -- B. Stack <bgstack15@gmail.com> Tue, 31 May 2022 10:31:51 -0400
+
+scite (5.2.3-1) unstable; urgency=medium
+
+ * New upstream version 5.2.3
+ - Fixes scrolllbars not being updated properly (Closes: #857540)
+
+ -- Andreas Rönnquist <gusnan@debian.org> Sun, 22 May 2022 12:49:35 +0200
scite (5.2.2-1) unstable; urgency=medium
diff --git a/scite/debian/scite+devuan.dsc b/scite/debian/scite+devuan.dsc
index 3586cb2..8bb7a97 100644
--- a/scite/debian/scite+devuan.dsc
+++ b/scite/debian/scite+devuan.dsc
@@ -2,7 +2,7 @@ Format: 3.0 (quilt)
Source: scite
Binary: scite
Architecture: any
-Version: 5.2.2-2+devuan
+Version: 5.2.3-1+devuan
Maintainer: B. Stack <bgstack15@gmail.com>
Homepage: https://scintilla.org/SciTE.html
Standards-Version: 4.6.0.1
diff --git a/scite/stackrpms-2022-04-05.diff b/scite/stackrpms-2022-04-05.diff
deleted file mode 100644
index e25c61d..0000000
--- a/scite/stackrpms-2022-04-05.diff
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -x '.*.swp' -Naur scite.salsa/debian/changelog stackrpms/scite/debian/changelog
---- scite.salsa/debian/changelog 2022-04-05 09:49:25.955774896 -0400
-+++ stackrpms/scite/debian/changelog 2022-04-04 19:51:15.109951844 -0400
-@@ -1,3 +1,10 @@
-+scite (5.2.2-1+devuan) obs; urgency=medium
-+
-+ * Add emitUnicode lua script, Ctrl+U
-+ * Use lua 5.4.4
-+
-+ -- B. Stack <bgstack15@gmail.com> Mon, 04 Apr 2022 09:51:24 -0400
-+
- scite (5.2.2-1) unstable; urgency=medium
-
- * New upstream version 5.2.2
-diff -x '.*.swp' -Naur scite.salsa/debian/control stackrpms/scite/debian/control
---- scite.salsa/debian/control 2022-04-05 09:49:25.955774896 -0400
-+++ stackrpms/scite/debian/control 2022-04-05 08:32:40.007194419 -0400
-@@ -1,14 +1,13 @@
- Source: scite
--Maintainer: Michael Vogt <mvo@debian.org>
--Uploaders: Antonio Valentino <antonio.valentino@tiscali.it>,
-- Andreas Rönnquist <gusnan@debian.org>
-+Maintainer: B. Stack <bgstack15@gmail.com>
-+XSBC-Original-Maintainer: Michael Vogt <mvo@debian.org>
- Section: editors
- Priority: optional
- Rules-Requires-Root: no
- Build-Depends: debhelper-compat (= 13),
- libgtk-3-dev,
- libglib2.0-dev,
-- liblua5.3-dev
-+ liblua5.4-dev
- Standards-Version: 4.6.0.1
- Vcs-Browser: https://salsa.debian.org/debian/scite
- Vcs-Git: https://salsa.debian.org/debian/scite.git
-diff -x '.*.swp' -Naur scite.salsa/debian/emitUnicode.lua stackrpms/scite/debian/emitUnicode.lua
---- scite.salsa/debian/emitUnicode.lua 1969-12-31 19:00:00.000000000 -0500
-+++ stackrpms/scite/debian/emitUnicode.lua 2022-04-04 19:08:15.295488065 -0400
-@@ -0,0 +1,247 @@
-+-- DESCRIPTION:
-+-- Unicode hexadecimal table: https://example.com/copied/unicode.html
-+-- Source: http://lua-users.org/wiki/SciteUnicodeInput http://sourceforge.net/projects/emitunicodeinscite/
-+-- Future reference: http://lua-users.org/wiki/SciteScripts
-+--
-+-- This lua script adds utf8 unicode input, to the scite text editor.
-+--
-+-- The scite text editor should be set to use the UTF-8 encoding
-+-- , because this script adds utf8, into the text buffer of the
-+-- scite editor. Select File->Encoding->UTF-8, from the
-+-- menu bar of scite.
-+--
-+-- For example, it will be possible that you type 2200 CTRL+U
-+-- , and 2200 is replaced to &#8704;; (U+2200), in the scite editor.
-+--
-+-- ______________________________________________________________________________
-+--
-+-- INSTALL:
-+--
-+-- To have scite running this script each time you press Ctrl+U, add next lines
-+-- into your ~/SciTEUser.properties file, where ~ is your home directory.
-+-- FILE ~/SciTEUser.properties:
-+--[[
-+ext.lua.startup.script=$(SciteUserHome)/emitUtf8UnicodeIntoTheSciteEditor.lua
-+command.name.8.*=Emit UTF8 Unicode
-+command.subsystem.8.*=3
-+command.8.*=emitUtf8UnicodeIntoTheSciteEditor
-+command.mode.8.*=savebefore:no
-+command.shortcut.8.*=Ctrl+U
-+--]]
-+-- ______________________________________________________________________________
-+-- THE LUA CODE:
-+--
-+-- Next is the definition of the lua function that is called by scite
-+-- when CTRL+U is pressed, to replace unicode endpoint encoding, with
-+-- utf8 encoding of the unicode endpoint.
-+-- ______________________________________________________________________________
-+
-+
-+-- Computes the utf8 encoding for a unicode codepoint u
-+-- , when 0 <= u <= 0x7f
-+--
-+-- @param unicodeValue the unicode codepoint u
-+--
-+-- @return the utf8 encoding of the unicode codepoint u
-+function case1UnicodeToUtf8(unicodeValue)
-+ --print('case 1')
-+ local u = unicodeValue
-+ local byte0 = (u % 0x80)
-+ local utf8 = string.char(byte0)
-+ return utf8
-+end
-+
-+-- ______________________________________________________________________________
-+-- Computes the utf8 encoding for a unicode codepoint u
-+-- , when 0x80 <= u <= 0x7ff
-+--
-+-- @param unicodeValue the unicode codepoint u
-+--
-+-- @return the utf8 encoding of the unicode codepoint u
-+function case2UnicodeToUtf8(unicodeValue)
-+ --print('case 2')
-+ local u = unicodeValue
-+ local byte1 = (0x80 + (u % 0x40) )
-+ u = math.floor(u / 0x40)
-+ local byte0 = (0xc0 + (u % 0x20) )
-+ local utf8 = string.char(byte0, byte1)
-+ return utf8
-+end
-+
-+-- ______________________________________________________________________________
-+-- Computes the utf8 encoding for a unicode codepoint u
-+-- , when 0x800 <= u <= 0xffff.
-+--
-+-- @param unicodeValue the unicode codepoint u
-+--
-+-- @return the utf8 encoding of the unicode codepoint u
-+function case3UnicodeToUtf8(unicodeValue)
-+ local u = unicodeValue
-+ local byte2 = (0x80 + (u % 0x40))
-+ -- print('byte2: '..byte2)
-+ u = math.floor(u / 0x40)
-+ local byte1 = (0x80 + (u % 0x40))
-+ -- print('byte1: '..byte1)
-+ u = math.floor(u / 0x40)
-+ local byte0 = (0xe0 + (u % 0x10))
-+ -- print('byte0: '..byte0)
-+ local utf8 = string.char(byte0, byte1, byte2)
-+ return utf8
-+end
-+
-+-- ______________________________________________________________________________
-+-- Computes the utf8 encoding for a unicode codepoint u
-+-- , when 0x10000 <= u <= 0x10ffff.
-+--
-+-- @param unicodeValue the unicode codepoint u
-+--
-+-- @return the utf8 encoding of the unicode codepoint u
-+function case4UnicodeToUtf8(unicodeValue)
-+ local u = unicodeValue
-+ local byte3 = (0x80 + (u % 0x40))
-+ u = math.floor(u / 0x40)
-+ local byte2 = (0x80 + (u % 0x40))
-+ u = math.floor(u / 0x40)
-+ local byte1 = (0x80 + (u % 0x40))
-+ u = math.floor(u / 0x40)
-+ local byte0 = (0xf0 + (u % 0x8))
-+ local utf8 = string.char(byte0, byte1, byte2, byte3)
-+ return utf8
-+end
-+
-+-- ______________________________________________________________________________
-+-- Converts a unicode integer value, into a utf8 string value.
-+--
-+-- The unicode integer value is an integer that
-+-- is greater than or equal to zero.
-+--
-+-- The utf8 string value is a string that is a sequence of
-+-- 8 bits characters that give the utf8 encoding of the
-+-- unicode codepoint given by the unicode integer value.
-+--
-+-- @param unicodeValue the unicode integer value;
-+-- a unicode codepoint
-+--
-+-- @return the utf8 encoding of the unicode codepoint
-+-- provided by the unicodeValue input argument
-+function unicodeToUtf8(unicodeValue)
-+ local u = unicodeValue
-+ if ((0x800 <= u) and (0xffff >= u))
-+ then
-+ return case3UnicodeToUtf8(u)
-+ end
-+ if ((0x80 <= u) and (0x7fff >= u))
-+ then
-+ return case2UnicodeToUtf8(u)
-+ end
-+ if ((0x0 <= u) and (0x7f >= u))
-+ then
-+ return case1UnicodeToUtf8(u)
-+ end
-+ if( (0x10000 <= u) and (0x10ffff >= u) )
-+ then
-+ return case4UnicodeToUtf8(u)
-+ end
-+ return nil
-+end
-+
-+-- ______________________________________________________________________________
-+-- Peeks (reads) the character at position i, in the Scite Editor.
-+-- If the character is the ascii name of a hex digit, it returns
-+-- the corresponding hex digit, otherwise it returns nil.
-+--
-+-- @param i position in the Scite Editor
-+-- @return hex digit at position i, or nil
-+function peekHexdigit(i)
-+ local e = editor
-+ local asciiCode = e.CharAt[i]
-+ if((0>asciiCode) or (0xff < asciiCode))
-+ then
-+ return nil
-+ end
-+ local charValue = string.char(asciiCode)
-+ local hexDigit = tonumber(charValue,0x10)
-+ return hexDigit -- may be nil
-+end
-+
-+-- ______________________________________________________________________________
-+-- Reads the sequence of maximum length at most 5, at the left of the cursor
-+-- in the Scite Editor.
-+-- Encodes the longest suffix of this sequence, that is a hex number, into
-+-- the utf encoding of this hex number.
-+-- Replaces this longest suffix, with the utf8 sequence.
-+--
-+-- @return true a suffix of length greater than zero, at most 5 existed
-+-- and was replaced with the utf8 encoding of the number it
-+-- represented
-+--
-+-- false , when no such suffix existed
-+function emitUtf8Unicode()
-+ local e = editor
-+ local n = e.TextLength
-+ local i = e.CurrentPos
-+ local maxlen = 5
-+ if ((0 == n) or (1 > i))
-+ then
-+ return nil -- Success. No request
-+ end
-+ local len = 1
-+ local len2 = 0
-+ local u = 0
-+ local thePower = 1
-+ while ( (len <= maxlen)
-+ and (0 <= (i - len) )
-+ )
-+ do
-+ local hexDigit = peekHexdigit(i-len,u)
-+ if (nil == hexDigit)
-+ then
-+ break -- out of the while loop
-+ end
-+ u = ( u + (thePower * hexDigit) )
-+ thePower = (0x10 * thePower )
-+ len2 = len
-+ --print("u: "..u)
-+ len = len + 1
-+ end
-+ if (0 == len2)
-+ then
-+ return nil -- Failure. No unicode
-+ end
-+ utf8 = unicodeToUtf8(u)
-+ if(nil == utf8)
-+ then
-+ return nil -- Failure. Unicode to utf8 conversion failed.
-+ end
-+ e:SetSel(i-len2,i)
-+ e:ReplaceSel(utf8)
-+ --print("utf8: "..utf8)
-+ return true -- Success.
-+end
-+
-+-- ______________________________________________________________________________
-+-- Emits utf8 encoding in the place of the unicode codepoint
-+-- in the editor, at the left of the cursor.
-+--
-+-- Writes a message to the Output pane, if no codepoint existed
-+-- at the left of the cursor.
-+--
-+function emitUtf8UnicodeIntoTheSciteEditor()
-+ local ok = emitUtf8Unicode()
-+ if not ok
-+ then
-+ --print("Failed to encode unicode into text editor.")
-+ end
-+end
-+
-+-- ______________________________________________________________________________
-+--
-+-- Following web pages were useful in writing the lua scite script.
-+--
-+-- http://lua-users.org/wiki/UsingLuaWithScite
-+-- http://www.scintilla.org/PaneAPI.html
-+-- http://www.lua.org/manual/5.1/manual.html#pdf-tonumber
-+-- https://en.wikipedia.org/wiki/UTF-8
-+--
-+-- http://lua-users.org/lists/lua-l/2007-08/msg00276.html
-+-- http://keplerproject.github.io/luadoc/
-diff -x '.*.swp' -Naur scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch
---- scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-05 09:49:25.955774896 -0400
-+++ stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-04 20:56:01.431094606 -0400
-@@ -33,8 +33,8 @@
- -CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION))
- -CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0)
- +# For the Lua and Gnome desktop stuff to work, prefix must point to where Lua and Gnome thinks it is.
--+CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.3)
--+CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.3)
-++CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.4)
-++CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.4)
- gnomeprefix:=$(shell $(PKG_CONFIG) --variable=prefix $(GTK_VERSION) 2>/dev/null)
- ifndef prefix
- ifdef gnomeprefix
-diff -x '.*.swp' -Naur scite.salsa/debian/patches/add-emitUnicode.patch stackrpms/scite/debian/patches/add-emitUnicode.patch
---- scite.salsa/debian/patches/add-emitUnicode.patch 1969-12-31 19:00:00.000000000 -0500
-+++ stackrpms/scite/debian/patches/add-emitUnicode.patch 2022-04-04 19:08:15.295488065 -0400
-@@ -0,0 +1,16 @@
-+--- a/scite/src/SciTEGlobal.properties 2022-03-30 20:48:24.000000000 -0400
-++++ b/scite/src/SciTEGlobal.properties 2022-04-04 10:14:32.803893680 -0400
-+@@ -550,6 +550,13 @@
-+ # The set of imports allowed can be set with
-+ #imports.include=ave
-+
-++ext.lua.startup.script=$(SciteDefaultHome)/emitUnicode.lua
-++command.name.8.*=Emit UTF8 Unicode
-++command.subsystem.8.*=3
-++command.8.*=emitUtf8UnicodeIntoTheSciteEditor
-++command.mode.8.*=savebefore:no
-++command.shortcut.8.*=Ctrl+U
-++
-+ # Import all the language specific properties files in this directory
-+ import *
-+
-diff -x '.*.swp' -Naur scite.salsa/debian/patches/series stackrpms/scite/debian/patches/series
---- scite.salsa/debian/patches/series 2022-04-05 09:49:25.955774896 -0400
-+++ stackrpms/scite/debian/patches/series 2022-04-04 22:12:35.852188087 -0400
-@@ -2,3 +2,5 @@
- 0003-reproducible_build.patch
- 0005-scite-desktop.patch
- 0007-Build-with-Debian-packaged-Lua.patch
-+use-lua5.4.4.patch
-+add-emitUnicode.patch
-diff -x '.*.swp' -Naur scite.salsa/debian/patches/use-lua5.4.4.patch stackrpms/scite/debian/patches/use-lua5.4.4.patch
---- scite.salsa/debian/patches/use-lua5.4.4.patch 1969-12-31 19:00:00.000000000 -0500
-+++ stackrpms/scite/debian/patches/use-lua5.4.4.patch 2022-04-04 19:15:01.427643169 -0400
-@@ -0,0 +1,187 @@
-+Name: Patch scite to use distro package of lua, Devuan
-+Version: 5.2.2
-+Lua Version: 5.4.4
-+Author: bgstack15@gmail.com
-+Date: 2022-04-04
-+diff -aur scite/gtk/deps.mak scite/gtk/deps.mak
-+--- a/scite/gtk/deps.mak 2022-03-30 20:48:24.000000000 -0400
-++++ b/scite/gtk/deps.mak 2022-04-04 14:47:39.110529717 -0400
-+@@ -469,13 +469,6 @@
-+ ../lua/src/luaconf.h \
-+ ../lua/src/lauxlib.h \
-+ ../lua/src/lualib.h
-+-lbitlib.o: \
-+- ../lua/src/lbitlib.c \
-+- ../lua/src/lprefix.h \
-+- ../lua/src/lua.h \
-+- ../lua/src/luaconf.h \
-+- ../lua/src/lauxlib.h \
-+- ../lua/src/lualib.h
-+ lcode.o: \
-+ ../lua/src/lcode.c \
-+ ../lua/src/lprefix.h \
-+diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx
-+--- a/scite/src/LuaExtension.cxx 2022-03-30 20:48:24.000000000 -0400
-++++ b/scite/src/LuaExtension.cxx 2022-04-04 14:46:35.097978533 -0400
-+@@ -237,7 +237,7 @@
-+
-+ const int paneIndex = lua_upvalueindex(1);
-+ check_pane_object(L, paneIndex);
-+- const int message = luaL_checkint(L, 1);
-++ const int message = luaL_checkinteger(L, 1);
-+
-+ lua_pushvalue(L, paneIndex);
-+ lua_replace(L, 1);
-+@@ -276,7 +276,7 @@
-+ }
-+
-+ static int cf_scite_constname(lua_State *L) {
-+- const int message = luaL_checkint(L, 1);
-++ const int message = luaL_checkinteger(L, 1);
-+ const char *prefix = luaL_optstring(L, 2, nullptr);
-+ const std::string constName = IFaceTable::GetConstantName(message, prefix);
-+ if (constName.length() > 0) {
-+@@ -307,7 +307,7 @@
-+ }
-+
-+ static int cf_scite_menu_command(lua_State *L) {
-+- const int cmdID = luaL_checkint(L, 1);
-++ const int cmdID = luaL_checkinteger(L, 1);
-+ if (cmdID) {
-+ host->DoMenuCommand(cmdID);
-+ }
-+@@ -329,7 +329,7 @@
-+ }
-+
-+ static int cf_scite_strip_set(lua_State *L) {
-+- const int control = luaL_checkint(L, 1);
-++ const int control = luaL_checkinteger(L, 1);
-+ const char *value = luaL_checkstring(L, 2);
-+ if (value) {
-+ host->UserStripSet(control, value);
-+@@ -338,7 +338,7 @@
-+ }
-+
-+ static int cf_scite_strip_set_list(lua_State *L) {
-+- const int control = luaL_checkint(L, 1);
-++ const int control = luaL_checkinteger(L, 1);
-+ const char *value = luaL_checkstring(L, 2);
-+ if (value) {
-+ host->UserStripSetList(control, value);
-+@@ -347,7 +347,7 @@
-+ }
-+
-+ static int cf_scite_strip_value(lua_State *L) {
-+- const int control = luaL_checkint(L, 1);
-++ const int control = luaL_checkinteger(L, 1);
-+ std::string value = host->UserStripValue(control);
-+ push_string(L, value);
-+ return 1;
-+@@ -437,7 +437,7 @@
-+ SA::Position rangeStart = 0;
-+ SA::Position rangeEnd = 0;
-+
-+- const int flags = (nArgs > 2) ? luaL_checkint(L, 3) : 0;
-++ const int flags = (nArgs > 2) ? luaL_checkinteger(L, 3) : 0;
-+ hasError = (flags == 0 && lua_gettop(L) > nArgs);
-+
-+ if (!hasError) {
-+@@ -514,7 +514,7 @@
-+
-+ SA::ScintillaCall &sc = host->PaneCaller(pmo->pane);
-+ sc.SetTarget(pmo->range);
-+- sc.ReplaceTarget(lua_strlen(L, 2), replacement);
-++ sc.ReplaceTarget(lua_rawlen(L, 2), replacement);
-+ pmo->range.end = sc.TargetEnd();
-+ return 0;
-+ }
-+@@ -600,7 +600,7 @@
-+ pmo->endPosOrig = 0;
-+ pmo->flags = 0;
-+ if (nargs >= 3) {
-+- pmo->flags = luaL_checkint(L, 3);
-++ pmo->flags = luaL_checkinteger(L, 3);
-+ if (nargs >= 4) {
-+ pmo->range.end = pmo->endPosOrig = luaL_checkinteger(L, 4);
-+ if (pmo->range.end < 0) {
-+@@ -765,7 +765,7 @@
-+ const int nargs = lua_gettop(L);
-+ const char *code = luaL_checkstring(L, 1);
-+ const char *name = luaL_optstring(L, 2, code);
-+- if (0 == luaL_loadbuffer(L, code, lua_strlen(L, 1), name)) {
-++ if (0 == luaL_loadbuffer(L, code, lua_rawlen(L, 1), name)) {
-+ lua_call(L, 0, LUA_MULTRET);
-+ return lua_gettop(L) - nargs;
-+ } else {
-+@@ -896,7 +896,7 @@
-+ int loopParamCount = 2;
-+
-+ if (func.paramType[0] == iface_length && func.paramType[1] == iface_string) {
-+- params[0] = lua_strlen(L, arg);
-++ params[0] = lua_rawlen(L, arg);
-+ params[1] = SptrFromString(params[0] ? lua_tostring(L, arg) : "");
-+ loopParamCount = 0;
-+ } else if ((func.paramType[1] == iface_stringresult) || (func.returnType == iface_stringresult)) {
-+@@ -915,8 +915,8 @@
-+ const char *s = lua_tostring(L, arg++);
-+ params[i] = SptrFromString(s ? s : "");
-+ } else if (func.paramType[i] == iface_keymod) {
-+- const int keycode = luaL_checkint(L, arg++) & 0xFFFF;
-+- const int modifiers = luaL_checkint(L, arg++) &
-++ const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF;
-++ const int modifiers = luaL_checkinteger(L, arg++) &
-+ static_cast<int>(SA::KeyMod::Shift|SA::KeyMod::Ctrl|SA::KeyMod::Alt);
-+ params[i] = keycode | (modifiers<<16);
-+ } else if (func.paramType[i] == iface_bool) {
-+@@ -1805,7 +1805,7 @@
-+ static int SetLevelAt(lua_State *L) {
-+ StylingContext *context = Context(L);
-+ const SA::Line line = luaL_checkinteger(L, 2);
-+- const int level = luaL_checkint(L, 3);
-++ const int level = luaL_checkinteger(L, 3);
-+ context->styler->SetLevel(line, static_cast<SA::FoldLevel>(level));
-+ return 0;
-+ }
-+@@ -1820,7 +1820,7 @@
-+ static int SetLineState(lua_State *L) {
-+ StylingContext *context = Context(L);
-+ const SA::Line line = luaL_checkinteger(L, 2);
-+- const int stateOfLine = luaL_checkint(L, 3);
-++ const int stateOfLine = luaL_checkinteger(L, 3);
-+ context->styler->SetLineState(line, stateOfLine);
-+ return 0;
-+ }
-+@@ -1898,7 +1898,7 @@
-+ StylingContext *context = Context(L);
-+ const SA::Position startPosStyle = luaL_checkinteger(L, 2);
-+ const SA::Position lengthStyle = luaL_checkinteger(L, 3);
-+- const int initialStyle = luaL_checkint(L, 4);
-++ const int initialStyle = luaL_checkinteger(L, 4);
-+ context->StartStyling(startPosStyle, lengthStyle, initialStyle);
-+ return 0;
-+ }
-+@@ -1957,7 +1957,7 @@
-+ static int SetState(lua_State *L) {
-+ StylingContext *context = Context(L);
-+ context->Colourize();
-+- context->state = luaL_checkint(L, 2);
-++ context->state = luaL_checkinteger(L, 2);
-+ return 0;
-+ }
-+
-+@@ -1965,13 +1965,13 @@
-+ StylingContext *context = Context(L);
-+ context->Forward();
-+ context->Colourize();
-+- context->state = luaL_checkint(L, 2);
-++ context->state = luaL_checkinteger(L, 2);
-+ return 0;
-+ }
-+
-+ static int ChangeState(lua_State *L) {
-+ StylingContext *context = Context(L);
-+- context->state = luaL_checkint(L, 2);
-++ context->state = luaL_checkinteger(L, 2);
-+ return 0;
-+ }
-+
-diff -x '.*.swp' -Naur scite.salsa/debian/rules stackrpms/scite/debian/rules
---- scite.salsa/debian/rules 2022-04-05 09:49:25.955774896 -0400
-+++ stackrpms/scite/debian/rules 2022-04-05 10:24:05.582048509 -0400
-@@ -1,6 +1,7 @@
- #!/usr/bin/make -f
-
- export DEB_BUILD_MAINT_OPTIONS=hardening=+all
-+export DEB_BUILD_OPTIONS=noautodbgsym
-
- include /usr/share/dpkg/pkg-info.mk
- BUILD_DATE ?= $(shell date --utc --date="@$(SOURCE_DATE_EPOCH)" "+%b %d %Y %T")
-@@ -43,6 +44,7 @@
- mv -f $(CURDIR)/debian/scite/usr/share/scite/*.txt $(CURDIR)/debian/scite/usr/share/doc/scite/
- mv -f $(CURDIR)/debian/scite/usr/share/scite/*.jpg $(CURDIR)/debian/scite/usr/share/doc/scite/
- mv -f $(CURDIR)/debian/scite/usr/share/scite/*.png $(CURDIR)/debian/scite/usr/share/doc/scite/
-+ cp -p debian/emitUnicode.lua $(CURDIR)/debian/scite/usr/share/scite/
- for f in $(CURDIR)/debian/scite/usr/share/doc/scite/*.html; do \
- dh_link usr/share/doc/scite/$$(basename $$f) usr/share/scite/$$(basename $$f); \
- done
diff --git a/scite/stackrpms-5.2.3-1.diff b/scite/stackrpms-5.2.3-1.diff
new file mode 100644
index 0000000..6176c71
--- /dev/null
+++ b/scite/stackrpms-5.2.3-1.diff
@@ -0,0 +1,1163 @@
+diff -x '.*.swp' -Naur scite.salsa/debian/changelog stackrpms/scite/debian/changelog
+--- scite.salsa/debian/changelog 2022-05-31 09:48:57.251826229 -0400
++++ stackrpms/scite/debian/changelog 2022-05-31 10:31:22.917242269 -0400
+@@ -1,3 +1,10 @@
++scite (5.2.3-1+devuan) obs; urgency=medium
++
++ * Add stackrpms lua script and customized global.properties
++ * Use lua 5.4.4
++
++ -- B. Stack <bgstack15@gmail.com> Tue, 31 May 2022 10:31:51 -0400
++
+ scite (5.2.3-1) unstable; urgency=medium
+
+ * New upstream version 5.2.3
+diff -x '.*.swp' -Naur scite.salsa/debian/control stackrpms/scite/debian/control
+--- scite.salsa/debian/control 2022-04-05 09:49:25.955774896 -0400
++++ stackrpms/scite/debian/control 2022-04-16 12:53:10.788708356 -0400
+@@ -1,14 +1,13 @@
+ Source: scite
+-Maintainer: Michael Vogt <mvo@debian.org>
+-Uploaders: Antonio Valentino <antonio.valentino@tiscali.it>,
+- Andreas Rönnquist <gusnan@debian.org>
++Maintainer: B. Stack <bgstack15@gmail.com>
++XSBC-Original-Maintainer: Michael Vogt <mvo@debian.org>
+ Section: editors
+ Priority: optional
+ Rules-Requires-Root: no
+ Build-Depends: debhelper-compat (= 13),
+ libgtk-3-dev,
+ libglib2.0-dev,
+- liblua5.3-dev
++ liblua5.4-dev
+ Standards-Version: 4.6.0.1
+ Vcs-Browser: https://salsa.debian.org/debian/scite
+ Vcs-Git: https://salsa.debian.org/debian/scite.git
+diff -x '.*.swp' -Naur scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch
+--- scite.salsa/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-05 09:49:25.955774896 -0400
++++ stackrpms/scite/debian/patches/0007-Build-with-Debian-packaged-Lua.patch 2022-04-16 12:53:10.996710687 -0400
+@@ -33,8 +33,8 @@
+ -CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION))
+ -CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0)
+ +# For the Lua and Gnome desktop stuff to work, prefix must point to where Lua and Gnome thinks it is.
+-+CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.3)
+-+CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.3)
+++CONFIGFLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) $(shell $(PKG_CONFIG) --cflags lua5.4)
+++CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gthread-2.0 gmodule-no-export-2.0) $(shell $(PKG_CONFIG) --libs lua5.4)
+ gnomeprefix:=$(shell $(PKG_CONFIG) --variable=prefix $(GTK_VERSION) 2>/dev/null)
+ ifndef prefix
+ ifdef gnomeprefix
+diff -x '.*.swp' -Naur scite.salsa/debian/patches/series stackrpms/scite/debian/patches/series
+--- scite.salsa/debian/patches/series 2022-04-05 09:49:25.955774896 -0400
++++ stackrpms/scite/debian/patches/series 2022-04-16 12:53:11.032711091 -0400
+@@ -2,3 +2,4 @@
+ 0003-reproducible_build.patch
+ 0005-scite-desktop.patch
+ 0007-Build-with-Debian-packaged-Lua.patch
++use-lua5.4.4.patch
+diff -x '.*.swp' -Naur scite.salsa/debian/patches/use-lua5.4.4.patch stackrpms/scite/debian/patches/use-lua5.4.4.patch
+--- scite.salsa/debian/patches/use-lua5.4.4.patch 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/patches/use-lua5.4.4.patch 2022-04-16 12:53:11.044711225 -0400
+@@ -0,0 +1,187 @@
++Name: Patch scite to use distro package of lua, Devuan
++Version: 5.2.2
++Lua Version: 5.4.4
++Author: bgstack15@gmail.com
++Date: 2022-04-04
++diff -aur scite/gtk/deps.mak scite/gtk/deps.mak
++--- a/scite/gtk/deps.mak 2022-03-30 20:48:24.000000000 -0400
+++++ b/scite/gtk/deps.mak 2022-04-04 14:47:39.110529717 -0400
++@@ -469,13 +469,6 @@
++ ../lua/src/luaconf.h \
++ ../lua/src/lauxlib.h \
++ ../lua/src/lualib.h
++-lbitlib.o: \
++- ../lua/src/lbitlib.c \
++- ../lua/src/lprefix.h \
++- ../lua/src/lua.h \
++- ../lua/src/luaconf.h \
++- ../lua/src/lauxlib.h \
++- ../lua/src/lualib.h
++ lcode.o: \
++ ../lua/src/lcode.c \
++ ../lua/src/lprefix.h \
++diff -aur scite/src/LuaExtension.cxx scite/src/LuaExtension.cxx
++--- a/scite/src/LuaExtension.cxx 2022-03-30 20:48:24.000000000 -0400
+++++ b/scite/src/LuaExtension.cxx 2022-04-04 14:46:35.097978533 -0400
++@@ -237,7 +237,7 @@
++
++ const int paneIndex = lua_upvalueindex(1);
++ check_pane_object(L, paneIndex);
++- const int message = luaL_checkint(L, 1);
+++ const int message = luaL_checkinteger(L, 1);
++
++ lua_pushvalue(L, paneIndex);
++ lua_replace(L, 1);
++@@ -276,7 +276,7 @@
++ }
++
++ static int cf_scite_constname(lua_State *L) {
++- const int message = luaL_checkint(L, 1);
+++ const int message = luaL_checkinteger(L, 1);
++ const char *prefix = luaL_optstring(L, 2, nullptr);
++ const std::string constName = IFaceTable::GetConstantName(message, prefix);
++ if (constName.length() > 0) {
++@@ -307,7 +307,7 @@
++ }
++
++ static int cf_scite_menu_command(lua_State *L) {
++- const int cmdID = luaL_checkint(L, 1);
+++ const int cmdID = luaL_checkinteger(L, 1);
++ if (cmdID) {
++ host->DoMenuCommand(cmdID);
++ }
++@@ -329,7 +329,7 @@
++ }
++
++ static int cf_scite_strip_set(lua_State *L) {
++- const int control = luaL_checkint(L, 1);
+++ const int control = luaL_checkinteger(L, 1);
++ const char *value = luaL_checkstring(L, 2);
++ if (value) {
++ host->UserStripSet(control, value);
++@@ -338,7 +338,7 @@
++ }
++
++ static int cf_scite_strip_set_list(lua_State *L) {
++- const int control = luaL_checkint(L, 1);
+++ const int control = luaL_checkinteger(L, 1);
++ const char *value = luaL_checkstring(L, 2);
++ if (value) {
++ host->UserStripSetList(control, value);
++@@ -347,7 +347,7 @@
++ }
++
++ static int cf_scite_strip_value(lua_State *L) {
++- const int control = luaL_checkint(L, 1);
+++ const int control = luaL_checkinteger(L, 1);
++ std::string value = host->UserStripValue(control);
++ push_string(L, value);
++ return 1;
++@@ -437,7 +437,7 @@
++ SA::Position rangeStart = 0;
++ SA::Position rangeEnd = 0;
++
++- const int flags = (nArgs > 2) ? luaL_checkint(L, 3) : 0;
+++ const int flags = (nArgs > 2) ? luaL_checkinteger(L, 3) : 0;
++ hasError = (flags == 0 && lua_gettop(L) > nArgs);
++
++ if (!hasError) {
++@@ -514,7 +514,7 @@
++
++ SA::ScintillaCall &sc = host->PaneCaller(pmo->pane);
++ sc.SetTarget(pmo->range);
++- sc.ReplaceTarget(lua_strlen(L, 2), replacement);
+++ sc.ReplaceTarget(lua_rawlen(L, 2), replacement);
++ pmo->range.end = sc.TargetEnd();
++ return 0;
++ }
++@@ -600,7 +600,7 @@
++ pmo->endPosOrig = 0;
++ pmo->flags = 0;
++ if (nargs >= 3) {
++- pmo->flags = luaL_checkint(L, 3);
+++ pmo->flags = luaL_checkinteger(L, 3);
++ if (nargs >= 4) {
++ pmo->range.end = pmo->endPosOrig = luaL_checkinteger(L, 4);
++ if (pmo->range.end < 0) {
++@@ -765,7 +765,7 @@
++ const int nargs = lua_gettop(L);
++ const char *code = luaL_checkstring(L, 1);
++ const char *name = luaL_optstring(L, 2, code);
++- if (0 == luaL_loadbuffer(L, code, lua_strlen(L, 1), name)) {
+++ if (0 == luaL_loadbuffer(L, code, lua_rawlen(L, 1), name)) {
++ lua_call(L, 0, LUA_MULTRET);
++ return lua_gettop(L) - nargs;
++ } else {
++@@ -896,7 +896,7 @@
++ int loopParamCount = 2;
++
++ if (func.paramType[0] == iface_length && func.paramType[1] == iface_string) {
++- params[0] = lua_strlen(L, arg);
+++ params[0] = lua_rawlen(L, arg);
++ params[1] = SptrFromString(params[0] ? lua_tostring(L, arg) : "");
++ loopParamCount = 0;
++ } else if ((func.paramType[1] == iface_stringresult) || (func.returnType == iface_stringresult)) {
++@@ -915,8 +915,8 @@
++ const char *s = lua_tostring(L, arg++);
++ params[i] = SptrFromString(s ? s : "");
++ } else if (func.paramType[i] == iface_keymod) {
++- const int keycode = luaL_checkint(L, arg++) & 0xFFFF;
++- const int modifiers = luaL_checkint(L, arg++) &
+++ const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF;
+++ const int modifiers = luaL_checkinteger(L, arg++) &
++ static_cast<int>(SA::KeyMod::Shift|SA::KeyMod::Ctrl|SA::KeyMod::Alt);
++ params[i] = keycode | (modifiers<<16);
++ } else if (func.paramType[i] == iface_bool) {
++@@ -1805,7 +1805,7 @@
++ static int SetLevelAt(lua_State *L) {
++ StylingContext *context = Context(L);
++ const SA::Line line = luaL_checkinteger(L, 2);
++- const int level = luaL_checkint(L, 3);
+++ const int level = luaL_checkinteger(L, 3);
++ context->styler->SetLevel(line, static_cast<SA::FoldLevel>(level));
++ return 0;
++ }
++@@ -1820,7 +1820,7 @@
++ static int SetLineState(lua_State *L) {
++ StylingContext *context = Context(L);
++ const SA::Line line = luaL_checkinteger(L, 2);
++- const int stateOfLine = luaL_checkint(L, 3);
+++ const int stateOfLine = luaL_checkinteger(L, 3);
++ context->styler->SetLineState(line, stateOfLine);
++ return 0;
++ }
++@@ -1898,7 +1898,7 @@
++ StylingContext *context = Context(L);
++ const SA::Position startPosStyle = luaL_checkinteger(L, 2);
++ const SA::Position lengthStyle = luaL_checkinteger(L, 3);
++- const int initialStyle = luaL_checkint(L, 4);
+++ const int initialStyle = luaL_checkinteger(L, 4);
++ context->StartStyling(startPosStyle, lengthStyle, initialStyle);
++ return 0;
++ }
++@@ -1957,7 +1957,7 @@
++ static int SetState(lua_State *L) {
++ StylingContext *context = Context(L);
++ context->Colourize();
++- context->state = luaL_checkint(L, 2);
+++ context->state = luaL_checkinteger(L, 2);
++ return 0;
++ }
++
++@@ -1965,13 +1965,13 @@
++ StylingContext *context = Context(L);
++ context->Forward();
++ context->Colourize();
++- context->state = luaL_checkint(L, 2);
+++ context->state = luaL_checkinteger(L, 2);
++ return 0;
++ }
++
++ static int ChangeState(lua_State *L) {
++ StylingContext *context = Context(L);
++- context->state = luaL_checkint(L, 2);
+++ context->state = luaL_checkinteger(L, 2);
++ return 0;
++ }
++
+diff -x '.*.swp' -Naur scite.salsa/debian/rules stackrpms/scite/debian/rules
+--- scite.salsa/debian/rules 2022-04-05 09:49:25.955774896 -0400
++++ stackrpms/scite/debian/rules 2022-04-16 12:53:11.044711225 -0400
+@@ -1,6 +1,7 @@
+ #!/usr/bin/make -f
+
+ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
++#export DEB_BUILD_OPTIONS=noautodbgsym
+
+ include /usr/share/dpkg/pkg-info.mk
+ BUILD_DATE ?= $(shell date --utc --date="@$(SOURCE_DATE_EPOCH)" "+%b %d %Y %T")
+@@ -43,6 +44,9 @@
+ mv -f $(CURDIR)/debian/scite/usr/share/scite/*.txt $(CURDIR)/debian/scite/usr/share/doc/scite/
+ mv -f $(CURDIR)/debian/scite/usr/share/scite/*.jpg $(CURDIR)/debian/scite/usr/share/doc/scite/
+ mv -f $(CURDIR)/debian/scite/usr/share/scite/*.png $(CURDIR)/debian/scite/usr/share/doc/scite/
++ cp -p debian/stackrpms.lua $(CURDIR)/debian/scite/usr/share/scite/
++ @#install -d -m0755 $(CURDIR)/debian/scite/etc/scite
++ install -D -p -m0666 debian/SciTEGlobal.properties $(CURDIR)/debian/scite/etc/scite/
+ for f in $(CURDIR)/debian/scite/usr/share/doc/scite/*.html; do \
+ dh_link usr/share/doc/scite/$$(basename $$f) usr/share/scite/$$(basename $$f); \
+ done
+diff -x '.*.swp' -Naur scite.salsa/debian/scite+devuan.dsc stackrpms/scite/debian/scite+devuan.dsc
+--- scite.salsa/debian/scite+devuan.dsc 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/scite+devuan.dsc 2022-05-31 10:34:35.666680650 -0400
+@@ -0,0 +1,17 @@
++Format: 3.0 (quilt)
++Source: scite
++Binary: scite
++Architecture: any
++Version: 5.2.3-1+devuan
++Maintainer: B. Stack <bgstack15@gmail.com>
++Homepage: https://scintilla.org/SciTE.html
++Standards-Version: 4.6.0.1
++Vcs-Browser: https://salsa.debian.org/debian/scite
++Vcs-Git: https://salsa.debian.org/debian/scite.git
++Build-Depends: debhelper-compat (= 13), libgtk-3-dev, libglib2.0-dev, liblua5.4-dev
++Package-List:
++ scite deb editors optional arch=any
++Files:
++ 00000000000000000000000000000000 1 scite.orig.tar.gz
++ 00000000000000000000000000000000 1 scite+devuan.debian.tar.xz
++Original-Maintainer: Michael Vogt <mvo@debian.org>
+diff -x '.*.swp' -Naur scite.salsa/debian/SciTEGlobal.properties stackrpms/scite/debian/SciTEGlobal.properties
+--- scite.salsa/debian/SciTEGlobal.properties 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/SciTEGlobal.properties 2022-04-16 12:53:10.776708221 -0400
+@@ -0,0 +1,580 @@
++# SciTEGlobal.properties placed by scite package for stackrpms
++# Global initialisation file for SciTE
++# For Linux, place in $prefix/share/scite
++# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)
++# Documentation at http://www.scintilla.org/SciTEDoc.html
++
++# Globals
++
++# Window sizes and visibility
++if PLAT_WIN
++ position.left=0
++ position.top=0
++if PLAT_GTK
++ position.left=5
++ position.top=22
++position.width=$(scale 576)
++position.height=$(scale 740)
++#position.maximize=1
++#position.tile=1
++#full.screen.hides.menu=1
++#minimize.to.tray=1
++split.vertical=0
++#split.wide=1
++#output.horizontal.size=200
++#output.vertical.size=60
++#output.initial.hide=1
++#horizontal.scrollbar=0
++#horizontal.scroll.width=10000
++#horizontal.scroll.width.tracking=0
++#output.horizontal.scrollbar=0
++#output.horizontal.scroll.width=10000
++#output.horizontal.scroll.width.tracking=0
++#output.scroll=0
++#error.select.line=1
++#end.at.last.line=0
++tabbar.visible=1
++#tabbar.hide.one=1
++#tabbar.hide.index=1
++#tabbar.multiline=1
++#toolbar.visible=1
++#toolbar.usestockicons=1
++#toolbar.large=1
++#menubar.detachable=1
++#undo.redo.lazy=1
++statusbar.visible=1
++#fileselector.width=800
++#fileselector.height=600
++#fileselector.show.hidden=1
++#magnification=-1
++#output.magnification=-1
++
++# Sizes and visibility in edit pane
++line.margin.visible=1
++line.margin.width=4
++margin.width=$(scale 16)
++fold.margin.width=$(scale 14)
++#fold.margin.colour=#FF0000
++#fold.margin.highlight.colour=#0000FF
++#blank.margin.left=4
++#blank.margin.right=4
++#output.blank.margin.left=4
++buffered.draw=1
++#phases.draw=2
++if PLAT_WIN
++ technology=1
++#font.quality=3
++#font.locale=zh-Hans
++if PLAT_MAC
++ font.quality=3
++
++# Element styles
++#view.eol=1
++#control.char.symbol=.
++#representations=\x0D\x0A=\u20AA
++caret.period=500
++view.whitespace=0
++view.indentation.whitespace=1
++view.indentation.guides=1
++view.indentation.examine=3
++highlight.indentation.guides=1
++#caret.fore=#FF0000
++#caret.additional.fore=#FF00DF
++#caret.additional.blinks=0
++#caret.style=2
++#caret.width=2
++#caret.line.back=#FFFED83F
++#caret.line.layer=1
++#caret.line.frame=1
++edge.column=200
++edge.mode=0
++edge.colour=#C0DCC0
++braces.check=1
++braces.sloppy=1
++#selection.fore=#006000
++selection.layer=2
++if PLAT_WINNT
++ selection.back=#00000020
++if PLAT_GTK
++ selection.back=#0000001E
++ selection.secondary.back=#00800010
++if PLAT_MAC
++ selection.back=#00000020
++selection.additional.back=#00000010
++selection.inactive.back=#00000010
++#selection.additional.fore=#0000A0
++#selection.inactive.fore=#00A000
++#selection.secondary.fore=#A00000
++selection.always.visible=1
++#selection.rectangular.switch.mouse=1
++#selection.multiple=0
++#selection.additional.typing=0
++#selection.multipaste=0
++#virtual.space=3
++#rectangular.selection.modifier=8
++#whitespace.fore=#FF0000
++#whitespace.back=#FFF0F0
++#whitespace.size=2
++#error.marker.fore=#0000A0
++#error.marker.back=#DADAFF
++#error.inline=1
++bookmark.fore=#BE0000
++#bookmark.back=#FFFFA0
++#bookmark.alpha=
++#bookmark.stroke.width=200
++#bookmark.symbol=3
++#find.mark=#0000FF
++#find.mark.indicator=style:compositionthick,colour:#FFB700,under
++#highlight.current.word=1
++#highlight.current.word.by.style=1
++#highlight.current.word.colour=#00D040
++#highlight.current.word.indicator=style:roundbox,colour:#0080FF,under,outlinealpha:140,fillalpha:80
++filter.match.indicator=style:compositionthick,colour:#FFB700,under
++#filter.match.back=#FFB00030
++#filter.context=2
++#hidden.line.colour=2
++#indicators.alpha=63
++#indicators.under=1
++
++# Scripting
++ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua
++ext.lua.auto.reload=1
++#ext.lua.reset=1
++
++# Checking
++are.you.sure=1
++#are.you.sure.for.build=1
++#save.all.for.build=1
++#quit.on.close.last=1
++#load.on.activate=1
++#save.on.deactivate=1
++#are.you.sure.on.reload=1
++#save.on.timer=20
++#reload.preserves.undo=1
++#check.if.already.open=1
++#temp.files.sync.load=1
++default.file.ext=.cxx
++#source.default.extensions=.h|.cxx|.bat
++title.full.path=1
++#title.show.buffers=1
++#pathbar.visible=1
++save.recent=1
++save.session=1
++#session.bookmarks=1
++#session.folds=1
++#save.position=1
++#save.find=1
++#open.dialog.in.file.directory=1
++#strip.trailing.spaces=1
++#ensure.final.line.end=1
++#ensure.consistent.line.ends=1
++#save.deletes.first=1
++#save.check.modified.time=1
++buffers=100
++#buffers.zorder.switching=1
++#api.*.cxx=d:\api\w.api
++#locale.properties=locale.de.properties
++#translation.missing=***
++#read.only=1
++#read.only.indicator=1
++#background.open.size=20000
++#background.save.size=20000
++if PLAT_GTK
++ background.save.size=10000000
++#max.file.size=1
++file.size.large=100000000
++file.size.no.styles=10000000
++#lexilla.path=.
++
++# Indentation
++tabsize=8
++indent.size=8
++use.tabs=1
++#indent.auto=1
++indent.automatic=1
++indent.opening=0
++indent.closing=0
++#tab.indents=0
++#backspace.unindents=0
++
++# Wrapping of long lines
++wrap=1
++wrap.style=
++#cache.layout=3
++#output.wrap=1
++#output.cache.layout=3
++threads.layout=16
++#wrap.visual.flags=3
++#wrap.visual.flags.location=3
++#wrap.indent.mode=1
++#wrap.visual.startindent=4
++
++#idle.styling=1
++#output.idle.styling=1
++
++# Folding
++# enable folding, and show lines below when collapsed.
++fold=1
++fold.compact=1
++fold.flags=16
++#fold.line.colour=#80800080
++fold.symbols=1
++#fold.fore=#000000
++#fold.back=#808080
++#fold.highlight=1
++#fold.highlight.colour=#00C0C0
++#fold.stroke.width=200
++#fold.on.open=1
++fold.comment=1
++fold.preprocessor=1
++
++# Find and Replace
++# Internal search always available with recursive capability so use in preference to external tool
++find.command=
++# findstr is available on recent versions of Windows including 2000
++#if PLAT_WIN
++# find.command=findstr /n /s $(find.what) $(find.files)
++#find.input=$(find.what)
++#if PLAT_GTK
++# find.command=grep --line-number "$(find.what)" $(find.files)
++find.files=*.c *.cxx *.h
++#find.in.files.close.on.find=0
++#find.in.dot=1
++#find.in.binary=1
++#find.in.directory=
++#find.close.on.find=0
++#find.replace.matchcase=1
++#find.replace.escapes=1
++#find.replace.regexp=1
++#find.replace.regexp.posix=1
++#find.replace.regexp.cpp11=1
++#find.replace.wrap=0
++#find.replacewith.focus=0
++#find.replace.advanced=1
++find.use.strip=1
++#find.strip.incremental=1
++#find.indicator.incremental=style:compositionthick,colour:#FFB700,under
++replace.use.strip=1
++#replace.strip.incremental=1
++#strip.button.height=24
++#strip.shortcuts.enable=0
++
++# Behaviour
++#eol.mode=LF
++eol.auto=1
++clear.before.execute=0
++#vc.home.key=1
++#wrap.aware.home.end.keys=1
++#autocompleteword.automatic=1
++#autocomplete.choose.single=1
++#autocomplete.*.fillups=([
++#autocomplete.*.start.characters=.:
++#autocomplete.*.typesep=!
++#autocomplete.fore=#80FFA0
++#autocomplete.back=#000000
++#autocomplete.selected.fore=#00FF40
++#autocomplete.selected.back=#006040
++#autocomplete.visible.item.count=15
++
++caret.policy.xslop=1
++caret.policy.width=20
++caret.policy.xstrict=0
++caret.policy.xeven=0
++caret.policy.xjumps=0
++caret.policy.yslop=1
++caret.policy.lines=1
++caret.policy.ystrict=1
++caret.policy.yeven=1
++caret.policy.yjumps=0
++#visible.policy.strict=1
++#visible.policy.slop=1
++#visible.policy.lines=4
++#time.commands=1
++#caret.sticky=1
++#properties.directory.enable=1
++#editor.config.enable=1
++#save.path.suggestion=$(SciteUserHome)\note_$(TimeStamp).txt
++
++# Status Bar
++statusbar.number=4
++statusbar.text.1=\
++li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)
++statusbar.text.2=\
++$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.
++statusbar.text.3=\
++Now is: Date=$(CurrentDate) Time=$(CurrentTime)
++statusbar.text.4=\
++$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)
++
++if PLAT_WIN
++ command.scite.help="file://$(SciteDefaultHome)\SciTEDoc.html"
++ command.scite.help.subsystem=2
++if PLAT_GTK
++ command.scite.help=xdg-open "file://$(SciteDefaultHome)/SciTEDoc.html"
++
++# Internationalisation
++# Japanese input code page 932 and ShiftJIS character set 128
++#code.page=932
++#character.set=128
++# Unicode
++code.page=65001
++#character.set=204
++#command.discover.properties=python /home/user/FileDetect.py "$(FilePath)"
++# Forward LC_CTYPE to setlocale which may affect language support.
++#LC_CTYPE=en_US.UTF-8
++if PLAT_GTK
++ output.code.page=65001
++if PLAT_MAC
++ output.code.page=65001
++#ime.interaction=1
++#ime.autocomplete=1
++#accessibility=0
++
++# Export
++#export.keep.ext=1
++export.html.wysiwyg=1
++#export.html.tabs=1
++#export.html.folding=1
++export.html.styleused=1
++#export.html.title.fullpath=1
++#export.rtf.tabs=1
++#export.rtf.font.face=Arial
++#export.rtf.font.size=9
++#export.rtf.tabsize=8
++#export.rtf.wysiwyg=0
++#export.tex.title.fullpath=1
++# Magnification (added to default screen font size)
++export.pdf.magnification=0
++# Font: Courier, Helvetica or Times (Courier line-wraps)
++export.pdf.font=Helvetica
++# Page size (in points): width, height
++# E.g. Letter 612,792; A4 595,842; maximum 14400,14400
++export.pdf.pagesize=595,842
++# Margins (in points): left, right, top, bottom
++export.pdf.margins=72,72,72,72
++export.xml.collapse.spaces=1
++export.xml.collapse.lines=1
++
++# Define values for use in the imported properties files
++chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
++chars.numeric=0123456789
++chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö
++# This is a better set for Russian:
++#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ
++
++# The open.filter setting is used in the file selector which has a menu of filters to apply
++# to the types of files seen when opening.
++
++# Gather all settings with "*source.patterns." prefix from all active .properties files
++source.files=$(star *source.patterns.)
++source.all.filter=All Source|$(source.files)|
++
++# Each platform has a different idea of the most important filters
++if PLAT_WIN
++ all.files=All Files (*.*)|*.*|
++ top.filters=$(source.all.filter)$(all.files)
++if PLAT_GTK
++ all.files=All Files (*)|*|Hidden Files (.*)|.*|
++ top.filters=$(all.files)$(source.all.filter)
++# As macOS only greys out filtered files, show all as default
++if PLAT_MAC
++ all.files=All Files (*.*)|*.*|
++ top.filters=$(all.files)$(source.all.filter)
++
++# Gather all settings with "*filter." prefix from all active .properties files
++list.filters=$(star *filter.)
++
++open.filter=$(top.filters)$(list.filters)
++
++#save.filter=$(open.filter)
++
++# Give symbolic names to the set of fonts used in the standard styles.
++if PLAT_WIN
++ font.base=font:Verdana,size:9.4
++ font.small=font:Verdana,size:8
++ font.comment=font:Georgia,size:10.1
++ font.code.comment.box=$(font.comment)
++ font.code.comment.line=$(font.comment)
++ font.code.comment.doc=$(font.comment)
++ font.code.comment.nested=$(font.comment)
++ font.text=font:Times New Roman,size:11
++ font.text.comment=font:Verdana,size:9
++ font.embedded.base=font:Verdana,size:9
++ font.embedded.comment=font:Comic Sans MS,size:8
++ font.monospace=font:Consolas,size:8.9
++ font.monospace.small=font:Consolas,size:8
++ font.vbs=font:Candara,size:10
++if PLAT_GTK
++ font.base=font:DejaVu Sans,size:9
++ font.small=font:DejaVu Sans,size:8
++ font.comment=font:DejaVu Serif,size:9
++ font.code.comment.box=$(font.comment)
++ font.code.comment.line=$(font.comment)
++ font.code.comment.doc=$(font.comment)
++ font.code.comment.nested=$(font.comment)
++ font.text=font:DejaVu Serif,size:10
++ font.text.comment=font:Serif,size:9
++ font.embedded.base=font:Serif,size:9
++ font.embedded.comment=font:Serif,size:9
++ font.monospace=font:DejaVu Sans Mono,size:9
++ font.monospace.small=font:DejaVu Sans Mono,size:8
++ font.vbs=font:DejaVu Sans Mono,size:9
++if PLAT_MAC
++ font.base=font:Verdana,size:12
++ font.small=font:Verdana,size:10
++ font.comment=font:Georgia,size:13
++ font.code.comment.box=$(font.comment)
++ font.code.comment.line=$(font.comment)
++ font.code.comment.doc=$(font.comment)
++ font.code.comment.nested=$(font.comment)
++ font.text=font:Times New Roman,size:13
++ font.text.comment=font:Verdana,size:11
++ font.embedded.base=font:Verdana,size:11
++ font.embedded.comment=font:Comic Sans MS,size:10
++ font.monospace=font:Menlo,size:12
++ font.monospace.small=font:Menlo,size:10
++ font.vbs=font:Lucida Sans Unicode,size:12
++font.js=$(font.comment)
++font.monospaced.list=Consolas;Courier New;DejaVu Sans Mono;Menlo
++
++# Give symbolic names to the set of colours used in the standard styles.
++colour.code.comment.box=fore:#007F00
++colour.code.comment.line=fore:#007F00
++colour.code.comment.doc=fore:#3F703F
++colour.code.comment.nested=fore:#A0C0A0
++colour.text.comment=fore:#0000FF,back:#D0F0D0
++colour.other.comment=fore:#007F00
++colour.embedded.comment=back:#E0EEFF
++colour.embedded.js=back:#F0F0FF
++colour.notused=back:#FF0000
++
++colour.number=fore:#007F7F
++colour.keyword=fore:#00007F
++colour.string=fore:#7F007F
++colour.char=fore:#7F007F
++colour.operator=fore:#000000
++colour.preproc=fore:#7F7F00
++colour.error=fore:#FFFF00,back:#FF0000
++
++# To de-emphasize inactive code set traits.inactive
++#traits.inactive=,back:#F0F0F0,eolfilled
++traits.inactive=
++
++# Global default styles for all languages
++# Default
++style.*.32=$(font.base)
++# Line number
++style.*.33=back:#C0C0C0,$(font.base)
++# Brace highlight
++style.*.34=fore:#0000FF,bold
++# Brace incomplete highlight
++style.*.35=fore:#FF0000,bold
++# Control characters
++style.*.36=
++# Indentation guides
++style.*.37=fore:#C0C0C0,back:#FFFFFF
++
++# Printing
++#print.colour.mode=1
++print.magnification=-1
++# Windows-only setup: left, right, top, bottom margins, in local units:
++# hundredths of millimeters or thousandths of inches
++print.margins=1500,1000,1000,1500
++# Header/footer:
++print.header.format=$(FileNameExt) -- Printed on $(CurrentDate), $(CurrentTime) -- Page $(CurrentPage)
++print.footer.format=$(FilePath) -- File date: $(FileDate) -- File time: $(FileTime)
++# Header/footer style
++print.header.style=font:Arial,size:12,bold
++print.footer.style=font:Arial Narrow,size:10,italics
++
++# Experimental undocumented settings
++#bidirectional=1
++
++# Warnings - only works on Windows and needs to be pointed at files on machine
++#if PLAT_WIN
++# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav
++# warning.notfound=0,Effect.wav
++# warning.wrongfile=0,Glass.wav
++# warning.executeok=0,Fanfare.wav
++# warning.executeko=100,GlassBreak.wav
++# warning.nootherbookmark=100,Boing2.wav
++
++#create.hidden.console=1
++
++# Define the Lexer menu,
++# Each item contains three parts: menu string | file extension | key
++# The only keys allowed currently are based on F-keys and alphabetic keys and look like
++# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.
++# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.
++
++keyText=Shift+F11
++keyMake=Ctrl+Shift+F11
++keyHTML=F12
++keyXML=Shift+F12
++keyIndent=Ctrl+Shift+F12
++# On macOS, F11 is used by Expose, F12 by Dashbard
++if PLAT_MAC
++ os.x.home.end.keys=1
++ keyText=Shift+F13
++ keyMake=Ctrl+Shift+F13
++ keyHTML=Ctrl+Shift+F14
++ keyXML=Shift+F14
++ keyIndent=
++
++# Gather all settings with "*language." prefix from all active .properties files
++menu.language=$(star *language.)
++
++# User defined key commands
++user.shortcuts=\
++Ctrl+Shift+V|IDM_PASTEANDDOWN|\
++Ctrl+PageUp|IDM_PREVFILE|\
++Ctrl+PageDown|IDM_NEXTFILE|
++
++#KeypadPlus|IDM_EXPAND|\
++#KeypadMinus|IDM_BLOCK_COMMENT|
++
++#user.context.menu=\
++#||\
++#Next File|IDM_NEXTFILE|\
++#Prev File|IDM_PREVFILE|
++
++# To keep menus short, these .properties files are not loaded by default.
++imports.exclude=abaqus abbrev ada asl asn1 ave avs baan blitzbasic \
++bullant caml cil cmake cobol coffeescript csound d dataflex ecl eiffel \
++Embedded erlang escript flagship forth fortran freebasic fsharp gap \
++haskell hex kix latex lisp lot lout matlab maxima metapost mmixal \
++modula3 nim nimrod opal oscript pascal pov powerpro ps purebasic r raku \
++rebol ruby sas scriptol smalltalk sorcins specman spice tacl tal tex \
++txt2tags verilog vhdl visualprolog
++# The set of imports allowed can be set with
++#imports.include=ave
++
++ext.lua.startup.script=$(SciteDefaultHome)/stackrpms.lua
++command.name.8.*=Emit &UTF8 Unicode
++command.subsystem.8.*=3
++command.8.*=emitUnicode
++command.mode.8.*=savebefore:no
++command.shortcut.8.*=Ctrl+U
++command.name.9.*=Insert &Date AH
++command.subsystem.9.*=3
++command.9.*=InsertDateAH
++command.mode.9.*=savebefore:no
++command.shortcut.9.*=F5
++command.name.10.*=Insert Date iso8601
++command.subsystem.10.*=3
++command.10.*=InsertDateIso
++command.mode.10.*=savebefore:no
++command.shortcut.10.*=Shift+F5
++
++# Import all the language specific properties files in this directory
++import *
++
++# bgstack15 improvements, in addition to a few sprinkled above.
++font.base=$(font.monospace)
++font.small=$(font.monospace)
++font.comment=$(font.monospace)
++font.text=$(font.monospace)
++font.text.comment=$(font.monospace)
++font.embedded.base=$(font.monospace)
++font.embedded.comment=$(font.monospace)
++font.vbs=$(font.monospace)
+diff -x '.*.swp' -Naur scite.salsa/debian/source/lintian-overrides stackrpms/scite/debian/source/lintian-overrides
+--- scite.salsa/debian/source/lintian-overrides 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/source/lintian-overrides 2022-04-16 12:53:11.104711898 -0400
+@@ -0,0 +1,3 @@
++national-encoding debian/SciTEGlobal.properties
++invalid-field-for-derivative
++invalid-devuan-version
+diff -x '.*.swp' -Naur scite.salsa/debian/stackrpms.lua stackrpms/scite/debian/stackrpms.lua
+--- scite.salsa/debian/stackrpms.lua 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/stackrpms.lua 2022-04-16 12:53:11.104711898 -0400
+@@ -0,0 +1,278 @@
++-- DESCRIPTION:
++-- Unicode hexadecimal table: https://example.com/copied/unicode.html
++-- Source: http://lua-users.org/wiki/SciteUnicodeInput http://sourceforge.net/projects/emitunicodeinscite/
++-- Future reference: http://lua-users.org/wiki/SciteScripts
++--
++-- This lua script adds utf8 unicode input, to the scite text editor.
++--
++-- The scite text editor should be set to use the UTF-8 encoding
++-- , because this script adds utf8, into the text buffer of the
++-- scite editor. Select File->Encoding->UTF-8, from the
++-- menu bar of scite.
++--
++-- For example, it will be possible that you type 2200 CTRL+U
++-- , and 2200 is replaced to &#8704;; (U+2200), in the scite editor.
++--
++-- ______________________________________________________________________________
++--
++-- INSTALL:
++--
++-- To have scite running this script each time you press Ctrl+U, add next lines
++-- into your ~/SciTEUser.properties file, where ~ is your home directory.
++-- FILE ~/SciTEUser.properties:
++--[[
++ext.lua.startup.script=$(SciteUserHome)/emitUtf8UnicodeIntoTheSciteEditor.lua
++command.name.8.*=Emit UTF8 Unicode
++command.subsystem.8.*=3
++command.8.*=emitUtf8UnicodeIntoTheSciteEditor
++command.mode.8.*=savebefore:no
++command.shortcut.8.*=Ctrl+U
++--]]
++-- ______________________________________________________________________________
++-- THE LUA CODE:
++--
++-- Next is the definition of the lua function that is called by scite
++-- when CTRL+U is pressed, to replace unicode endpoint encoding, with
++-- utf8 encoding of the unicode endpoint.
++-- ______________________________________________________________________________
++
++
++-- Computes the utf8 encoding for a unicode codepoint u
++-- , when 0 <= u <= 0x7f
++--
++-- @param unicodeValue the unicode codepoint u
++--
++-- @return the utf8 encoding of the unicode codepoint u
++function case1UnicodeToUtf8(unicodeValue)
++ --print('case 1')
++ local u = unicodeValue
++ local byte0 = (u % 0x80)
++ local utf8 = string.char(byte0)
++ return utf8
++end
++
++-- ______________________________________________________________________________
++-- Computes the utf8 encoding for a unicode codepoint u
++-- , when 0x80 <= u <= 0x7ff
++--
++-- @param unicodeValue the unicode codepoint u
++--
++-- @return the utf8 encoding of the unicode codepoint u
++function case2UnicodeToUtf8(unicodeValue)
++ --print('case 2')
++ local u = unicodeValue
++ local byte1 = (0x80 + (u % 0x40) )
++ u = math.floor(u / 0x40)
++ local byte0 = (0xc0 + (u % 0x20) )
++ local utf8 = string.char(byte0, byte1)
++ return utf8
++end
++
++-- ______________________________________________________________________________
++-- Computes the utf8 encoding for a unicode codepoint u
++-- , when 0x800 <= u <= 0xffff.
++--
++-- @param unicodeValue the unicode codepoint u
++--
++-- @return the utf8 encoding of the unicode codepoint u
++function case3UnicodeToUtf8(unicodeValue)
++ local u = unicodeValue
++ local byte2 = (0x80 + (u % 0x40))
++ -- print('byte2: '..byte2)
++ u = math.floor(u / 0x40)
++ local byte1 = (0x80 + (u % 0x40))
++ -- print('byte1: '..byte1)
++ u = math.floor(u / 0x40)
++ local byte0 = (0xe0 + (u % 0x10))
++ -- print('byte0: '..byte0)
++ local utf8 = string.char(byte0, byte1, byte2)
++ return utf8
++end
++
++-- ______________________________________________________________________________
++-- Computes the utf8 encoding for a unicode codepoint u
++-- , when 0x10000 <= u <= 0x10ffff.
++--
++-- @param unicodeValue the unicode codepoint u
++--
++-- @return the utf8 encoding of the unicode codepoint u
++function case4UnicodeToUtf8(unicodeValue)
++ local u = unicodeValue
++ local byte3 = (0x80 + (u % 0x40))
++ u = math.floor(u / 0x40)
++ local byte2 = (0x80 + (u % 0x40))
++ u = math.floor(u / 0x40)
++ local byte1 = (0x80 + (u % 0x40))
++ u = math.floor(u / 0x40)
++ local byte0 = (0xf0 + (u % 0x8))
++ local utf8 = string.char(byte0, byte1, byte2, byte3)
++ return utf8
++end
++
++-- ______________________________________________________________________________
++-- Converts a unicode integer value, into a utf8 string value.
++--
++-- The unicode integer value is an integer that
++-- is greater than or equal to zero.
++--
++-- The utf8 string value is a string that is a sequence of
++-- 8 bits characters that give the utf8 encoding of the
++-- unicode codepoint given by the unicode integer value.
++--
++-- @param unicodeValue the unicode integer value;
++-- a unicode codepoint
++--
++-- @return the utf8 encoding of the unicode codepoint
++-- provided by the unicodeValue input argument
++function unicodeToUtf8(unicodeValue)
++ local u = unicodeValue
++ if ((0x800 <= u) and (0xffff >= u))
++ then
++ return case3UnicodeToUtf8(u)
++ end
++ if ((0x80 <= u) and (0x7fff >= u))
++ then
++ return case2UnicodeToUtf8(u)
++ end
++ if ((0x0 <= u) and (0x7f >= u))
++ then
++ return case1UnicodeToUtf8(u)
++ end
++ if( (0x10000 <= u) and (0x10ffff >= u) )
++ then
++ return case4UnicodeToUtf8(u)
++ end
++ return nil
++end
++
++-- ______________________________________________________________________________
++-- Peeks (reads) the character at position i, in the Scite Editor.
++-- If the character is the ascii name of a hex digit, it returns
++-- the corresponding hex digit, otherwise it returns nil.
++--
++-- @param i position in the Scite Editor
++-- @return hex digit at position i, or nil
++function peekHexdigit(i)
++ local e = editor
++ local asciiCode = e.CharAt[i]
++ if((0>asciiCode) or (0xff < asciiCode))
++ then
++ return nil
++ end
++ local charValue = string.char(asciiCode)
++ local hexDigit = tonumber(charValue,0x10)
++ return hexDigit -- may be nil
++end
++
++-- ______________________________________________________________________________
++-- Reads the sequence of maximum length at most 5, at the left of the cursor
++-- in the Scite Editor.
++-- Encodes the longest suffix of this sequence, that is a hex number, into
++-- the utf encoding of this hex number.
++-- Replaces this longest suffix, with the utf8 sequence.
++--
++-- @return true a suffix of length greater than zero, at most 5 existed
++-- and was replaced with the utf8 encoding of the number it
++-- represented
++--
++-- false , when no such suffix existed
++function emitUtf8Unicode()
++ local e = editor
++ local n = e.TextLength
++ local i = e.CurrentPos
++ local maxlen = 5
++ if ((0 == n) or (1 > i))
++ then
++ return nil -- Success. No request
++ end
++ local len = 1
++ local len2 = 0
++ local u = 0
++ local thePower = 1
++ while ( (len <= maxlen)
++ and (0 <= (i - len) )
++ )
++ do
++ local hexDigit = peekHexdigit(i-len,u)
++ if (nil == hexDigit)
++ then
++ break -- out of the while loop
++ end
++ u = ( u + (thePower * hexDigit) )
++ thePower = (0x10 * thePower )
++ len2 = len
++ --print("u: "..u)
++ len = len + 1
++ end
++ if (0 == len2)
++ then
++ return nil -- Failure. No unicode
++ end
++ utf8 = unicodeToUtf8(u)
++ if(nil == utf8)
++ then
++ return nil -- Failure. Unicode to utf8 conversion failed.
++ end
++ e:SetSel(i-len2,i)
++ e:ReplaceSel(utf8)
++ --print("utf8: "..utf8)
++ return true -- Success.
++end
++
++-- ______________________________________________________________________________
++-- Emits utf8 encoding in the place of the unicode codepoint
++-- in the editor, at the left of the cursor.
++--
++-- Writes a message to the Output pane, if no codepoint existed
++-- at the left of the cursor.
++--
++function emitUnicode()
++ local ok = emitUtf8Unicode()
++ if not ok
++ then
++ --print("Failed to encode unicode into text editor.")
++ end
++end
++
++-- ______________________________________________________________________________
++--
++-- Following web pages were useful in writing the lua scite script.
++--
++-- http://lua-users.org/wiki/UsingLuaWithScite
++-- http://www.scintilla.org/PaneAPI.html
++-- http://www.lua.org/manual/5.1/manual.html#pdf-tonumber
++-- https://en.wikipedia.org/wiki/UTF-8
++--
++-- http://lua-users.org/lists/lua-l/2007-08/msg00276.html
++-- http://keplerproject.github.io/luadoc/
++
++-- Reference: http://lua-users.org/wiki/SciteInsertDate
++-- Tags used by os.date:
++-- %a abbreviated weekday name (e.g., Wed)
++-- %A full weekday name (e.g., Wednesday)
++-- %b abbreviated month name (e.g., Sep)
++-- %B full month name (e.g., September)
++-- %c date and time (e.g., 09/16/98 23:48:10)
++-- %d day of the month (16) [01-31]
++-- %H hour, using a 24-hour clock (23) [00-23]
++-- %I hour, using a 12-hour clock (11) [01-12]
++-- %M minute (48) [00-59]
++-- %m month (09) [01-12]
++-- %p either "am" or "pm" (pm)
++-- %S second (10) [00-61]
++-- %w weekday (3) [0-6 = Sunday-Saturday]
++-- %x date (e.g., 09/16/98)
++-- %X time (e.g., 23:48:10)
++-- %Y full year (1998)
++-- %y two-digit year (98) [00-99]
++-- %% the character '%'
++function InsertDateAH()
++ local dow = tostring(os.date("%w") + 1)
++ local d1 = os.date("%Y-%m-%d-")
++ local d2 = os.date(" %H:%M")
++ editor:AddText(d1..dow..d2)
++end
++function InsertDateIso()
++ local date_string = os.date("%Y-%m-%dT%T")
++ editor:AddText(date_string)
++end
bgstack15