From e2eff00a9c0d89a196bb297b4958473a681ddfee Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 30 Dec 2024 05:00:44 +0300 Subject: support +line[,column] and filename:line:column syntaxes when opening files * This is done via the new opener.tes in the standard library. * Some programs that use $EDITOR expect the +line syntax to work. * You can copy filename:line:column directly from GCC error messages and filename:line from grep output. * Since there may be safe file names beginning with "+" or containing colons, there needs to be a way to turn this off, especially for scripts that don't know anything about the filenames to open. This is done with "--". Unfortunately, the first "--", that stops parameter processing, is always removed from the command line and not passed down into TECO land. This is not a problem for stand-alone scripts, since the script filename is already stopping option processing, so "--" would get passed down. But when calling the profile via `sciteco -- ...`, you could prevent leading minus signs to cause problems but since the `--` is removed, opener.tes cannot use it as a hint. Therefore, we introduced `-S` as a new alternative to `--`, that's always passed down as `--` (i.e. it is equivalent to "-- --"). In other words, `sciteco -S *` will always open exactly the specified files without any danger of misinterpreting certain file names. Should we ever switch to a custom option parsing algorithm, we might preserve "--" (unless after --mung) and thus get rid of "-S". * This advanced behavior can be tweaked by the user relatively easily. In the easiest case, we could replace M[opener] with <:L;R 0X.f [* @EB/^EN.f/ ]* L> in ~/.teco_ini to completely disable the special syntax. --- freebsd/pkg-plist | 1 + 1 file changed, 1 insertion(+) (limited to 'freebsd') diff --git a/freebsd/pkg-plist b/freebsd/pkg-plist index c129643..48a4b61 100644 --- a/freebsd/pkg-plist +++ b/freebsd/pkg-plist @@ -91,6 +91,7 @@ share/man/man7/%%PROGRAM_PREFIX%%sciteco.7.gz %%LEXILLA%%%%DATADIR%%/lib/lexers/xml.tes %%LEXILLA%%%%DATADIR%%/lib/lexers/yaml.tes %%DATADIR%%/lib/lexers/woman.tes +%%DATADIR%%/lib/opener.tes %%DATADIR%%/lib/session.tes %%DATADIR%%/lib/string.tes %%DATADIR%%/lib/women/grosciteco.tes.1.woman -- cgit v1.2.3