diff options
-rw-r--r-- | .github/workflows/nightly.yml | 4 | ||||
-rw-r--r-- | INSTALL | 2 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | TODO | 11 | ||||
-rw-r--r-- | debian/control | 1 | ||||
-rw-r--r-- | distribute.mk.in | 4 | ||||
-rw-r--r-- | doc/sciteco.1.in | 13 | ||||
-rw-r--r-- | fallback.teco_ini (renamed from sample.teco_ini) | 8 | ||||
-rw-r--r-- | freebsd/files/pkg-message.in | 2 | ||||
-rw-r--r-- | freebsd/pkg-plist | 2 | ||||
-rw-r--r-- | src/main.c | 26 |
11 files changed, 51 insertions, 24 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index af16dbe..35645ba 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -254,7 +254,7 @@ jobs: cp -r /mingw64/bin/{gsciteco.exe,sciteco.exe,grosciteco.tes,tedoc.tes} ./ # datadir is relative to bindir cp -r /mingw64/bin/{lib,*.tmac} ./ - cp /mingw64/bin/sample.teco_ini .teco_ini + cp /mingw64/bin/fallback.teco_ini .teco_ini cp -r /mingw64/share/doc/sciteco/* ./ cp ../COPYING ../ChangeLog ./ cp /mingw64/bin/gspawn-win64-helper*.exe ./ @@ -330,7 +330,7 @@ jobs: cp -r /mingw64/bin/{lib,*.tmac} ./ # FIXME: Maybe there should be a separate win32/.teco_ini with # a few pre-enabled settings? - cp /mingw64/bin/sample.teco_ini .teco_ini + cp /mingw64/bin/fallback.teco_ini .teco_ini cp /mingw64/bin/fallback.css .teco_css cp -r /mingw64/share/doc/sciteco/* ./ cp ../COPYING ../ChangeLog ./ @@ -134,7 +134,7 @@ To install SciTECO, type something like: $ sudo make install -You are recommended to use the included "sample.teco_ini" as a starting +You are recommended to use the included "fallback.teco_ini" as a starting point for your profile. On UNIX, you can copy it to your $HOME directory at "~/.teco_ini" while on Windows, it should be in the same directory as `sciteco.exe` unless you adapt the $SCITECOCONFIG variable. diff --git a/Makefile.am b/Makefile.am index c9ba183..f6bcf86 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,7 +7,7 @@ MAYBE_DLMALLOC = contrib/dlmalloc endif SUBDIRS = lib $(MAYBE_DLMALLOC) contrib/rb3ptr src doc tests -dist_scitecodata_DATA = sample.teco_ini +dist_scitecodata_DATA = fallback.teco_ini EXTRA_DIST = README TODO @@ -124,7 +124,7 @@ Known Bugs: which is correct. Without --incremental even the formatting is broken. This could well be a Git bug. * Margins, identions and the like are not configured on the unnamed - buffer by sample.teco_ini. + buffer by fallback.teco_ini. And this is probably correct. However when saving a new unnamed file for the first time, nothing will change either and it's tricky to apply the correct @@ -308,6 +308,8 @@ Features: Video TECO had ET for the same purpose. TECO 10 had a ^W regular command for case folding all strings, but I don't think it's worth supporting. + * n:"x to leave <n> on the stack (i.e. only peek). This simplifies + expressions like Qa"N Qa ... * Perhaps there should be a command for converting absolute line numbers to positions (i.e. ESPOSITIONFROMLINE$$:^E). This should also include the opposite as currently supported by :^Q. @@ -593,11 +595,6 @@ Features: * Erroneous constructs could be highlighted up to the previous start state. E.g. when redefining labels, the entire label would be highlighted. - * Instead of defaulting to nothing in the absence of ~/.teco_ini, - we should load the installed sample.teco_ini, which - gives a more user-friendly experience. - Or perhaps even simpler, should the profile be missing, just log - a warning on startup. * NLS (Native Language Support). I could at least add German and Russian. There aren't many localizable strings in SciTECO. Should be optional. @@ -708,7 +705,7 @@ Documentation: * People are demanding a Youtube tutorial. * Vimtutor like tutorial. Could be a woman-page. Perhaps sciteco-tutorial would copy the files to /tmp and - open them always with sample.teco_ini. + open them always with fallback.teco_ini. * The HTML manuals lack monospaced fonts. This is partly because an.tmac removes the Courier family in nroff mode, but it still doesn't work if you undo this. diff --git a/debian/control b/debian/control index e1d67f8..7e8a0df 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ Vcs-Git: git://github.com/rhaberkorn/sciteco.git Package: sciteco-curses Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, sciteco-common (= ${source:Version}) +Suggests: xclip Description: Scintilla-based Text Editor and Corrector (curses) SciTECO is an interactive TECO dialect, similar to Video TECO. It also adds features from classic Standard TECO-11, diff --git a/distribute.mk.in b/distribute.mk.in index 0a82b2c..ab79262 100644 --- a/distribute.mk.in +++ b/distribute.mk.in @@ -104,7 +104,7 @@ poudriere: # and static linking of all dependant libraries (no DLLs are # added to the zip). # If a win32.teco_ini exists, it is added to the release -# instead of sample.teco_ini. +# instead of fallback.teco_ini. # This also adds gspawn-win32-helper-console.exe to the archive # which is required by the glib spawn functions. # If we ever build a non-console version on Windows, @@ -141,7 +141,7 @@ mingw-binary : @PACKAGE@-@PACKAGE_VERSION@-win32.zip temp-install/usr/share/doc/sciteco/* \ temp-bin/ cp @srcdir@/win32.teco_ini temp-bin/.teco_ini || \ - cp temp-install/usr/bin/sample.teco_ini \ + cp temp-install/usr/bin/fallback.teco_ini \ temp-bin/.teco_ini cp @srcdir@/COPYING @srcdir@/ChangeLog temp-bin/ rm -rf temp-install/ diff --git a/doc/sciteco.1.in b/doc/sciteco.1.in index b7084c5..0d2662e 100644 --- a/doc/sciteco.1.in +++ b/doc/sciteco.1.in @@ -152,7 +152,11 @@ option is absent, \*(ST will mung On UNIX/Linux, the default profile is at .I ~/.teco_ini (see \fBENVIRONMENT\fP). -It will consequently not expect a \fIscript\fP file name as +If the per-user profile is missing, \*(ST falls back to +.IR @scitecodatadir@/fallback.teco_ini . +Without +.BR \-\-mung , +a \fIscript\fP file name will consequently not be expected as the first non-option argument. The profile will usually set up various Scintilla and \*(ST options, configure syntax highlighting, @@ -342,7 +346,7 @@ via \*(ST code. \# That would only be possible by rewriting everything with GSpawn. .SCITECO_TOPIC xclip See -.B @scitecodatadir@/sample.teco_ini +.B @scitecodatadir@/fallback.teco_ini for an example of how to integrate the X11 clipboard via .BR xclip (1). Integrating with Wayland and the Mac OS clipboards is of course also possible. @@ -398,8 +402,9 @@ program termination or user-programmed behaviour. .B $SCITECOCONFIG/.teco_ini Default profile macro. .TP -.B @scitecodatadir@/sample.teco_ini -Sample profile macro configuring commonly used run-time options, +.SCITECO_TOPIC "fallback.teco_ini" +.B @scitecodatadir@/fallback.teco_ini +Fallback profile macro configuring commonly used run-time options, syntax highlighting, session handling and opening files specified on the command line. .TP diff --git a/sample.teco_ini b/fallback.teco_ini index 13ab76b..0211ade 100644 --- a/sample.teco_ini +++ b/fallback.teco_ini @@ -65,9 +65,11 @@ EMQ[$SCITECOPATH]/fnkeys.tes !* Uncomment if terminal emulator supports OSC-52 clipboards *! !!0,256ED -!* For integrating with xclip on ncurses *! -[$SCITECO_CLIPBOARD_SET]xclip -in -selection {} -[$SCITECO_CLIPBOARD_GET]xclip -out -selection {} || true +:Q[$DISPLAY]"> + !* For integrating with xclip on ncurses *! + [$SCITECO_CLIPBOARD_SET]xclip -in -selection {} + [$SCITECO_CLIPBOARD_GET]xclip -out -selection {} || true +' !* Uncomment to enable Unicode icons in the Curses UI *! !!0,512ED diff --git a/freebsd/files/pkg-message.in b/freebsd/files/pkg-message.in index b91ee06..7d95cdb 100644 --- a/freebsd/files/pkg-message.in +++ b/freebsd/files/pkg-message.in @@ -1,7 +1,7 @@ [ { type: install message: <<XYZZY -You are recommended to copy %%DATADIR%%/sample.teco_ini to ~/.teco_ini +You can copy %%DATADIR%%/fallback.teco_ini to ~/.teco_ini and edit this file afterwards with SciTECO. XYZZY } diff --git a/freebsd/pkg-plist b/freebsd/pkg-plist index 48a4b61..9dcdcca 100644 --- a/freebsd/pkg-plist +++ b/freebsd/pkg-plist @@ -102,7 +102,7 @@ share/man/man7/%%PROGRAM_PREFIX%%sciteco.7.gz %%DATADIR%%/lib/women/sciteco.7.woman.tec %%DATADIR%%/lib/women/tedoc.tes.1.woman %%DATADIR%%/lib/women/tedoc.tes.1.woman.tec -%%DATADIR%%/sample.teco_ini +%%DATADIR%%/fallback.teco_ini %%DATADIR%%/sciteco.tmac %%GTK%%%%DATADIR%%/sciteco-16.png %%GTK%%%%DATADIR%%/sciteco-32.png @@ -465,11 +465,33 @@ main(int argc, char **argv) goto cleanup; } - if (!mung_filename && teco_mung_profile) + if (!mung_filename && teco_mung_profile) { /* NOTE: Still safe to use g_getenv() */ mung_filename = g_build_filename(g_getenv("SCITECOCONFIG"), INI_FILE, NULL); + if (!g_file_test(mung_filename, G_FILE_TEST_IS_REGULAR)) { + g_autofree gchar *datadir = teco_file_get_datadir(); + gchar *fallback = g_build_filename(datadir, "fallback.teco_ini", NULL); + if (g_file_test(fallback, G_FILE_TEST_IS_REGULAR)) { + teco_interface_msg(TECO_MSG_WARNING, + "Profile \"%s\" not found: Falling back to \"%s\".", + mung_filename, fallback); + g_free(mung_filename); + mung_filename = fallback; + } else { + teco_interface_msg(TECO_MSG_WARNING, + "No profile found to mung."); + g_free(mung_filename); + g_free(fallback); + mung_filename = NULL; + } + } + } - if (mung_filename && g_file_test(mung_filename, G_FILE_TEST_IS_REGULAR)) { + if (mung_filename) { + /* + * NOTE: Theoretically there is a small timeframe when the file could + * disappear, in which case there will be an error. + */ if (!teco_execute_file(mung_filename, &local_qregs, &error) && !g_error_matches(error, TECO_ERROR, TECO_ERROR_QUIT)) goto error; |