summaryrefslogtreecommitdiff
path: root/scite
diff options
context:
space:
mode:
Diffstat (limited to 'scite')
-rw-r--r--scite/debian/_service4
-rw-r--r--scite/debian/changelog24
-rw-r--r--scite/debian/gbp.conf7
-rw-r--r--scite/debian/scite+stackrpms.dsc2
-rw-r--r--scite/debian/stackrpms.lua5
-rw-r--r--scite/stackrpms-5.5.1-1.diff1212
-rw-r--r--scite/stackrpms-5.5.2-1.diff1212
7 files changed, 2458 insertions, 8 deletions
diff --git a/scite/debian/_service b/scite/debian/_service
index 132c807..f600c50 100644
--- a/scite/debian/_service
+++ b/scite/debian/_service
@@ -14,8 +14,8 @@
<service name="download_url">
<param name="protocol">https</param>
<param name="host">www.scintilla.org</param>
- <param name="path">scite550.tgz</param>
- <param name="filename">scite_5.5.0.orig.tar.gz</param>
+ <param name="path">scite553.tgz</param>
+ <param name="filename">scite_5.5.3.orig.tar.gz</param>
</service>
<service name="extract_file">
<param name="archive">*.tar.xz</param>
diff --git a/scite/debian/changelog b/scite/debian/changelog
index 1785025..bccaf72 100644
--- a/scite/debian/changelog
+++ b/scite/debian/changelog
@@ -1,10 +1,30 @@
-scite (1:5.5.0-100+stackrpms) unstable; urgency=medium
+scite (1:5.5.3-100+stackrpms) unstable; urgency=medium
* Add stackrpms lua script and customized global.properties
* Use lua 5.4.4
* Add epoch so stackrpms scite always has precedence over base package
- -- B. Stack <bgstack15@gmail.com> Wed, 01 May 2024 20:20:22 -0400
+ -- B. Stack <bgstack15@gmail.com> Mon, 21 Oct 2024 09:13:57 -0400
+
+scite (5.5.3-1) unstable; urgency=medium
+
+ * New upstream version 5.5.3
+ * Add more files to filter out
+ * Set filter-pristine-tar to active
+
+ -- Andreas Rönnquist <gusnan@debian.org> Sun, 20 Oct 2024 14:49:32 +0200
+
+scite (5.5.2-1) unstable; urgency=medium
+
+ * New upstream version 5.5.2
+
+ -- Andreas Rönnquist <gusnan@debian.org> Wed, 21 Aug 2024 13:32:02 +0200
+
+scite (5.5.1-1) unstable; urgency=medium
+
+ * New upstream version 5.5.1
+
+ -- Andreas Rönnquist <gusnan@debian.org> Mon, 22 Jul 2024 11:40:58 +0200
scite (5.5.0-1) unstable; urgency=medium
diff --git a/scite/debian/gbp.conf b/scite/debian/gbp.conf
index 509da57..02ffe41 100644
--- a/scite/debian/gbp.conf
+++ b/scite/debian/gbp.conf
@@ -21,5 +21,10 @@ pristine-tar = True
merge = True
# Filter out files
-filter = [ 'scintilla/tgzsrc.orig', 'scite/src/scintillaVersion.txt.orig' ]
+filter = [ 'scintilla/tgzsrc.orig', 'scite/src/scintillaVersion.txt.orig',
+ 'scintilla/scripts/__pycache__/Face.cpython-310.pyc',
+ 'scintilla/scripts/__pycache__/FileGenerator.cpython-310.pyc',
+ 'scintilla/src/PositionCache.cxx.orig'
+ ]
+filter-pristine-tar = True
diff --git a/scite/debian/scite+stackrpms.dsc b/scite/debian/scite+stackrpms.dsc
index ef7c5f1..7eda094 100644
--- a/scite/debian/scite+stackrpms.dsc
+++ b/scite/debian/scite+stackrpms.dsc
@@ -2,7 +2,7 @@ Format: 3.0 (quilt)
Source: scite
Binary: scite
Architecture: any
-Version: 1:5.5.0-100+stackrpms
+Version: 1:5.5.3-100+stackrpms
Maintainer: B. Stack <bgstack15@gmail.com>
Homepage: https://scintilla.org/SciTE.html
Standards-Version: 4.7.0
diff --git a/scite/debian/stackrpms.lua b/scite/debian/stackrpms.lua
index 21f9257..75a6fd3 100644
--- a/scite/debian/stackrpms.lua
+++ b/scite/debian/stackrpms.lua
@@ -266,13 +266,14 @@ end
-- %Y full year (1998)
-- %y two-digit year (98) [00-99]
-- %% the character '%'
+-- Last modified 2024-07-20-7 09:10
function InsertDateAH()
local dow = tostring(math.floor(os.date("%w") + 1))
local d1 = os.date("%Y-%m-%d-")
local d2 = os.date(" %H:%M")
- editor:AddText(d1..dow..d2)
+ editor:ReplaceSel(d1..dow..d2)
end
function InsertDateIso()
local date_string = os.date("%Y-%m-%dT%T")
- editor:AddText(date_string)
+ editor:ReplaceSel(date_string)
end
diff --git a/scite/stackrpms-5.5.1-1.diff b/scite/stackrpms-5.5.1-1.diff
new file mode 100644
index 0000000..5a92cae
--- /dev/null
+++ b/scite/stackrpms-5.5.1-1.diff
@@ -0,0 +1,1212 @@
+diff -x '.*.swp' -Naur salsa/scite/debian/changelog stackrpms/scite/debian/changelog
+--- salsa/scite/debian/changelog 2024-08-01 10:59:12.585637267 -0400
++++ stackrpms/scite/debian/changelog 2024-08-01 11:02:03.321637267 -0400
+@@ -1,3 +1,11 @@
++scite (1:5.5.1-100+stackrpms) unstable; urgency=medium
++
++ * Add stackrpms lua script and customized global.properties
++ * Use lua 5.4.4
++ * Add epoch so stackrpms scite always has precedence over base package
++
++ -- B. Stack <bgstack15@gmail.com> Thu, 01 Aug 2024 11:01:57 -0400
++
+ scite (5.5.1-1) unstable; urgency=medium
+
+ * New upstream version 5.5.1
+diff -x '.*.swp' -Naur salsa/scite/debian/control stackrpms/scite/debian/control
+--- salsa/scite/debian/control 2024-05-01 20:16:52.117804014 -0400
++++ stackrpms/scite/debian/control 2024-05-01 20:24:05.262846855 -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.7.0
+ Vcs-Browser: https://salsa.debian.org/debian/scite
+ Vcs-Git: https://salsa.debian.org/debian/scite.git
+diff -x '.*.swp' -Naur salsa/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch stackrpms/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch
+--- salsa/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch 2023-12-30 15:10:24.740185203 -0500
++++ stackrpms/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch 2024-04-04 08:23:08.596651801 -0400
+@@ -36,9 +36,9 @@
+ -# For the Gnome desktop stuff to work, prefix must point to where Gnome thinks it is.
+ -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)
+++# stackrpms,3 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.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 salsa/scite/debian/patches/series stackrpms/scite/debian/patches/series
+--- salsa/scite/debian/patches/series 2023-12-04 15:32:55.372321741 -0500
++++ stackrpms/scite/debian/patches/series 2024-04-04 08:23:08.596651801 -0400
+@@ -2,3 +2,4 @@
+ 0002-reproducible_build.patch
+ 0003-scite-desktop.patch
+ 0004-Build-with-Debian-packaged-Lua.patch
++use-lua5.4.4.patch
+diff -x '.*.swp' -Naur salsa/scite/debian/patches/use-lua5.4.4.patch stackrpms/scite/debian/patches/use-lua5.4.4.patch
+--- salsa/scite/debian/patches/use-lua5.4.4.patch 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/patches/use-lua5.4.4.patch 2023-08-19 17:16:15.202653929 -0400
+@@ -0,0 +1,191 @@
++Name: Patch scite to use distro package of lua, Devuan
++Version: 5.2.3
++Lua-Version: 5.4.4
++Author: bgstack15@gmail.com
++Date-Modified: 2022-05-31
++Message: Generated with the following command
++
++ sed -r -e 's/checkint\(/checkinteger\(/g;' -e 's/lua_strlen\(/lua_rawlen\(/g;' scite/src/LuaExtension.cxx > ~/LuaExtension.cxx.new
++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
++@@ -238,7 +238,7 @@
++
++ constexpr 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);
++@@ -277,7 +277,7 @@
++ }
++
++ 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) {
++@@ -308,7 +308,7 @@
++ }
++
++ 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);
++ }
++@@ -330,7 +330,7 @@
++ }
++
++ 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);
++@@ -339,7 +339,7 @@
++ }
++
++ 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);
++@@ -348,7 +348,7 @@
++ }
++
++ 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;
++@@ -438,7 +438,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) {
++@@ -515,7 +515,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;
++ }
++@@ -601,7 +601,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) {
++@@ -766,7 +766,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 {
++@@ -897,7 +897,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)) {
++@@ -916,8 +916,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 intptr_t modifiers = luaL_checkint(L, arg++) &
+++ const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF;
+++ const intptr_t 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) {
++@@ -1787,7 +1787,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;
++ }
++@@ -1802,7 +1802,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;
++ }
++@@ -1880,7 +1880,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;
++ }
++@@ -1939,7 +1939,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;
++ }
++
++@@ -1947,13 +1947,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 salsa/scite/debian/rules stackrpms/scite/debian/rules
+--- salsa/scite/debian/rules 2023-07-31 11:35:56.033600691 -0400
++++ stackrpms/scite/debian/rules 2024-04-04 08:23:08.596651801 -0400
+@@ -43,6 +43,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/
++ @#stackrpms,3
++ cp -p debian/stackrpms.lua $(CURDIR)/debian/scite/usr/share/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 salsa/scite/debian/SciTEGlobal.properties stackrpms/scite/debian/SciTEGlobal.properties
+--- salsa/scite/debian/SciTEGlobal.properties 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/SciTEGlobal.properties 2024-04-04 08:23:08.592651755 -0400
+@@ -0,0 +1,597 @@
++# 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
++
++#change.history=3
++change.history=0
++#~ indicator.reverted.to.origin.insertion=style:squiggle,colour:#40A0BF
++#~ indicator.reverted.to.origin.deletion=style:point,colour:#40A0BF
++#~ indicator.saved.insertion=style:squiggle,colour:#60A060
++#~ indicator.saved.deletion=style:point,colour:#00A000
++#~ indicator.modified.insertion=style:squiggle,colour:#A0A060
++#~ indicator.modified.deletion=style:point,colour:#A0A000
++#~ indicator.reverted.to.modified.insertion=style:squiggle,colour:#FF8000
++#~ indicator.reverted.to.modified.deletion=style:point,colour:#FF8000
++#~ marker.reverted.to.origin=style:leftrect,fore:#40A0BF,back:#40A0BF
++#~ marker.saved=style:leftrect,fore:#00A000,back:#00A000
++#~ marker.modified=style:leftrect,fore:#A0A000,back:#A0A000
++#~ marker.reverted.to.modified=style:leftrect,fore:#FF8000,back:#FF8000
++
++# 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
++#pathbar.selectable=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.exclude=*.bak *.orig debug
++#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 salsa/scite/debian/scite+stackrpms.dsc stackrpms/scite/debian/scite+stackrpms.dsc
+--- salsa/scite/debian/scite+stackrpms.dsc 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/scite+stackrpms.dsc 2024-08-01 10:59:57.025637267 -0400
+@@ -0,0 +1,17 @@
++Format: 3.0 (quilt)
++Source: scite
++Binary: scite
++Architecture: any
++Version: 1:5.5.1-101+stackrpms
++Maintainer: B. Stack <bgstack15@gmail.com>
++Homepage: https://scintilla.org/SciTE.html
++Standards-Version: 4.7.0
++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+stackrpms.debian.tar.xz
++Original-Maintainer: Michael Vogt <mvo@debian.org>
+diff -x '.*.swp' -Naur salsa/scite/debian/_service stackrpms/scite/debian/_service
+--- salsa/scite/debian/_service 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/_service 2024-08-01 10:59:53.701637267 -0400
+@@ -0,0 +1,24 @@
++<services>
++ <service name="tar_scm">
++ <param name="scm">git</param>
++ <param name="url">https://bgstack15.ddns.net/cgit/stackrpms</param>
++ <param name="subdir">scite/debian</param>
++ <param name="filename">debian</param>
++ <param name="revision">master</param>
++ <param name="version">_none_</param>
++ </service>
++ <service name="recompress">
++ <param name="file">*.tar</param>
++ <param name="compression">xz</param>
++ </service>
++ <service name="download_url">
++ <param name="protocol">https</param>
++ <param name="host">www.scintilla.org</param>
++ <param name="path">scite551.tgz</param>
++ <param name="filename">scite_5.5.1.orig.tar.gz</param>
++ </service>
++ <service name="extract_file">
++ <param name="archive">*.tar.xz</param>
++ <param name="files">*/*.dsc</param>
++ </service>
++</services>
+diff -x '.*.swp' -Naur salsa/scite/debian/source/lintian-overrides stackrpms/scite/debian/source/lintian-overrides
+--- salsa/scite/debian/source/lintian-overrides 2024-05-01 20:16:52.117804014 -0400
++++ stackrpms/scite/debian/source/lintian-overrides 2024-05-01 20:27:00.470504688 -0400
+@@ -3,3 +3,7 @@
+ scite source: source-is-missing [scite/doc/ScriptLexer.html]
+ scite source: source-is-missing [scintilla/doc/SciCoding.html]
+ scite source: source-is-missing [lexilla/test/examples/hypertext/mako.html]
++# stackrpms,4
++national-encoding debian/SciTEGlobal.properties
++invalid-field-for-derivative
++invalid-devuan-version
+diff -x '.*.swp' -Naur salsa/scite/debian/stackrpms.lua stackrpms/scite/debian/stackrpms.lua
+--- salsa/scite/debian/stackrpms.lua 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/stackrpms.lua 2024-07-20 09:10:34.708207055 -0400
+@@ -0,0 +1,279 @@
++-- 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 '%'
++-- Last modified 2024-07-20-7 09:10
++function InsertDateAH()
++ local dow = tostring(math.floor(os.date("%w") + 1))
++ local d1 = os.date("%Y-%m-%d-")
++ local d2 = os.date(" %H:%M")
++ editor:ReplaceSel(d1..dow..d2)
++end
++function InsertDateIso()
++ local date_string = os.date("%Y-%m-%dT%T")
++ editor:ReplaceSel(date_string)
++end
diff --git a/scite/stackrpms-5.5.2-1.diff b/scite/stackrpms-5.5.2-1.diff
new file mode 100644
index 0000000..28fff6f
--- /dev/null
+++ b/scite/stackrpms-5.5.2-1.diff
@@ -0,0 +1,1212 @@
+diff -x '.*.swp' -Naur salsa/scite/debian/changelog stackrpms/scite/debian/changelog
+--- salsa/scite/debian/changelog 2024-08-23 09:35:02.985637267 -0400
++++ stackrpms/scite/debian/changelog 2024-08-23 09:40:49.437637267 -0400
+@@ -1,3 +1,11 @@
++scite (1:5.5.2-100+stackrpms) unstable; urgency=medium
++
++ * Add stackrpms lua script and customized global.properties
++ * Use lua 5.4.4
++ * Add epoch so stackrpms scite always has precedence over base package
++
++ -- B. Stack <bgstack15@gmail.com> Fri, 23 Aug 2024 09:41:08 -0400
++
+ scite (5.5.2-1) unstable; urgency=medium
+
+ * New upstream version 5.5.2
+diff -x '.*.swp' -Naur salsa/scite/debian/control stackrpms/scite/debian/control
+--- salsa/scite/debian/control 2024-05-01 20:16:52.117804014 -0400
++++ stackrpms/scite/debian/control 2024-05-01 20:24:05.262846855 -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.7.0
+ Vcs-Browser: https://salsa.debian.org/debian/scite
+ Vcs-Git: https://salsa.debian.org/debian/scite.git
+diff -x '.*.swp' -Naur salsa/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch stackrpms/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch
+--- salsa/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch 2023-12-30 15:10:24.740185203 -0500
++++ stackrpms/scite/debian/patches/0004-Build-with-Debian-packaged-Lua.patch 2024-04-04 08:23:08.596651801 -0400
+@@ -36,9 +36,9 @@
+ -# For the Gnome desktop stuff to work, prefix must point to where Gnome thinks it is.
+ -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)
+++# stackrpms,3 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.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 salsa/scite/debian/patches/series stackrpms/scite/debian/patches/series
+--- salsa/scite/debian/patches/series 2023-12-04 15:32:55.372321741 -0500
++++ stackrpms/scite/debian/patches/series 2024-04-04 08:23:08.596651801 -0400
+@@ -2,3 +2,4 @@
+ 0002-reproducible_build.patch
+ 0003-scite-desktop.patch
+ 0004-Build-with-Debian-packaged-Lua.patch
++use-lua5.4.4.patch
+diff -x '.*.swp' -Naur salsa/scite/debian/patches/use-lua5.4.4.patch stackrpms/scite/debian/patches/use-lua5.4.4.patch
+--- salsa/scite/debian/patches/use-lua5.4.4.patch 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/patches/use-lua5.4.4.patch 2023-08-19 17:16:15.202653929 -0400
+@@ -0,0 +1,191 @@
++Name: Patch scite to use distro package of lua, Devuan
++Version: 5.2.3
++Lua-Version: 5.4.4
++Author: bgstack15@gmail.com
++Date-Modified: 2022-05-31
++Message: Generated with the following command
++
++ sed -r -e 's/checkint\(/checkinteger\(/g;' -e 's/lua_strlen\(/lua_rawlen\(/g;' scite/src/LuaExtension.cxx > ~/LuaExtension.cxx.new
++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
++@@ -238,7 +238,7 @@
++
++ constexpr 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);
++@@ -277,7 +277,7 @@
++ }
++
++ 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) {
++@@ -308,7 +308,7 @@
++ }
++
++ 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);
++ }
++@@ -330,7 +330,7 @@
++ }
++
++ 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);
++@@ -339,7 +339,7 @@
++ }
++
++ 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);
++@@ -348,7 +348,7 @@
++ }
++
++ 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;
++@@ -438,7 +438,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) {
++@@ -515,7 +515,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;
++ }
++@@ -601,7 +601,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) {
++@@ -766,7 +766,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 {
++@@ -897,7 +897,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)) {
++@@ -916,8 +916,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 intptr_t modifiers = luaL_checkint(L, arg++) &
+++ const int keycode = luaL_checkinteger(L, arg++) & 0xFFFF;
+++ const intptr_t 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) {
++@@ -1787,7 +1787,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;
++ }
++@@ -1802,7 +1802,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;
++ }
++@@ -1880,7 +1880,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;
++ }
++@@ -1939,7 +1939,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;
++ }
++
++@@ -1947,13 +1947,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 salsa/scite/debian/rules stackrpms/scite/debian/rules
+--- salsa/scite/debian/rules 2023-07-31 11:35:56.033600691 -0400
++++ stackrpms/scite/debian/rules 2024-04-04 08:23:08.596651801 -0400
+@@ -43,6 +43,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/
++ @#stackrpms,3
++ cp -p debian/stackrpms.lua $(CURDIR)/debian/scite/usr/share/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 salsa/scite/debian/SciTEGlobal.properties stackrpms/scite/debian/SciTEGlobal.properties
+--- salsa/scite/debian/SciTEGlobal.properties 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/SciTEGlobal.properties 2024-04-04 08:23:08.592651755 -0400
+@@ -0,0 +1,597 @@
++# 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
++
++#change.history=3
++change.history=0
++#~ indicator.reverted.to.origin.insertion=style:squiggle,colour:#40A0BF
++#~ indicator.reverted.to.origin.deletion=style:point,colour:#40A0BF
++#~ indicator.saved.insertion=style:squiggle,colour:#60A060
++#~ indicator.saved.deletion=style:point,colour:#00A000
++#~ indicator.modified.insertion=style:squiggle,colour:#A0A060
++#~ indicator.modified.deletion=style:point,colour:#A0A000
++#~ indicator.reverted.to.modified.insertion=style:squiggle,colour:#FF8000
++#~ indicator.reverted.to.modified.deletion=style:point,colour:#FF8000
++#~ marker.reverted.to.origin=style:leftrect,fore:#40A0BF,back:#40A0BF
++#~ marker.saved=style:leftrect,fore:#00A000,back:#00A000
++#~ marker.modified=style:leftrect,fore:#A0A000,back:#A0A000
++#~ marker.reverted.to.modified=style:leftrect,fore:#FF8000,back:#FF8000
++
++# 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
++#pathbar.selectable=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.exclude=*.bak *.orig debug
++#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 salsa/scite/debian/scite+stackrpms.dsc stackrpms/scite/debian/scite+stackrpms.dsc
+--- salsa/scite/debian/scite+stackrpms.dsc 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/scite+stackrpms.dsc 2024-08-23 09:42:35.953637267 -0400
+@@ -0,0 +1,17 @@
++Format: 3.0 (quilt)
++Source: scite
++Binary: scite
++Architecture: any
++Version: 1:5.5.2-100+stackrpms
++Maintainer: B. Stack <bgstack15@gmail.com>
++Homepage: https://scintilla.org/SciTE.html
++Standards-Version: 4.7.0
++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+stackrpms.debian.tar.xz
++Original-Maintainer: Michael Vogt <mvo@debian.org>
+diff -x '.*.swp' -Naur salsa/scite/debian/_service stackrpms/scite/debian/_service
+--- salsa/scite/debian/_service 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/_service 2024-08-23 09:42:49.497637267 -0400
+@@ -0,0 +1,24 @@
++<services>
++ <service name="tar_scm">
++ <param name="scm">git</param>
++ <param name="url">https://bgstack15.ddns.net/cgit/stackrpms</param>
++ <param name="subdir">scite/debian</param>
++ <param name="filename">debian</param>
++ <param name="revision">master</param>
++ <param name="version">_none_</param>
++ </service>
++ <service name="recompress">
++ <param name="file">*.tar</param>
++ <param name="compression">xz</param>
++ </service>
++ <service name="download_url">
++ <param name="protocol">https</param>
++ <param name="host">www.scintilla.org</param>
++ <param name="path">scite552.tgz</param>
++ <param name="filename">scite_5.5.2.orig.tar.gz</param>
++ </service>
++ <service name="extract_file">
++ <param name="archive">*.tar.xz</param>
++ <param name="files">*/*.dsc</param>
++ </service>
++</services>
+diff -x '.*.swp' -Naur salsa/scite/debian/source/lintian-overrides stackrpms/scite/debian/source/lintian-overrides
+--- salsa/scite/debian/source/lintian-overrides 2024-05-01 20:16:52.117804014 -0400
++++ stackrpms/scite/debian/source/lintian-overrides 2024-05-01 20:27:00.470504688 -0400
+@@ -3,3 +3,7 @@
+ scite source: source-is-missing [scite/doc/ScriptLexer.html]
+ scite source: source-is-missing [scintilla/doc/SciCoding.html]
+ scite source: source-is-missing [lexilla/test/examples/hypertext/mako.html]
++# stackrpms,4
++national-encoding debian/SciTEGlobal.properties
++invalid-field-for-derivative
++invalid-devuan-version
+diff -x '.*.swp' -Naur salsa/scite/debian/stackrpms.lua stackrpms/scite/debian/stackrpms.lua
+--- salsa/scite/debian/stackrpms.lua 1969-12-31 19:00:00.000000000 -0500
++++ stackrpms/scite/debian/stackrpms.lua 2024-07-20 09:10:34.708207055 -0400
+@@ -0,0 +1,279 @@
++-- 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 '%'
++-- Last modified 2024-07-20-7 09:10
++function InsertDateAH()
++ local dow = tostring(math.floor(os.date("%w") + 1))
++ local d1 = os.date("%Y-%m-%d-")
++ local d2 = os.date(" %H:%M")
++ editor:ReplaceSel(d1..dow..d2)
++end
++function InsertDateIso()
++ local date_string = os.date("%Y-%m-%dT%T")
++ editor:ReplaceSel(date_string)
++end
bgstack15