Merge remote-tracking branch 'upstream/master' into line-folding
This commit is contained in:
commit
9cfda05f71
31
AUTHORS
31
AUTHORS
@ -13,16 +13,15 @@ Benno Schulenberg <bensberg@telfort.nl>
|
||||
Current maintainer.
|
||||
|
||||
David Lawrence Ramsey <pooka109@gmail.com>
|
||||
* Former stable series maintainer. Multiple buffer support,
|
||||
operating dir (-o) option, bug fixes for display routines,
|
||||
wrapping code, spelling fixes, constantshow mode, parts of
|
||||
UTF-8 support, softwrap overhaul, undoable (un)indentations,
|
||||
undoable justifications, justifiable regions, and numerous
|
||||
other fixes.
|
||||
* Multiple-buffer support, operating-dir option (-o), bug fixes
|
||||
for display routines, wrapping code, spelling fixes, parts of
|
||||
UTF-8 support, softwrap overhaul, constantshow mode, undoable
|
||||
indentations, undoable justifications, justifiable regions,
|
||||
and numerous other fixes. Former stable-series maintainer.
|
||||
|
||||
Jordi Mallach <jordi@gnu.org>
|
||||
* Debian package maintainer, fellow bug squasher.
|
||||
* Internationalization support head, ca.po maintainer.
|
||||
* Debian package maintainer, fellow bug squasher, translator
|
||||
for Catalan. Former head of internationalization support.
|
||||
|
||||
Adam Rogoyski <rogoyski@cs.utexas.edu>
|
||||
* New write_file() function, read_file() optimization, mouse
|
||||
@ -35,9 +34,9 @@ Robert Siemborski <rjs3@andrew.cmu.edu>
|
||||
new edit display routines.
|
||||
|
||||
Rocco Corsi <rocco.corsi@sympatico.ca>
|
||||
* Internal spelling code, many optimizations and bug fixes for
|
||||
findnextstr() and search-related functions, various display
|
||||
and file handling fixes.
|
||||
* Internal spelling code, many optimizations and bug fixes
|
||||
for findnextstr() and search-related functions, various
|
||||
display and file-handling fixes.
|
||||
|
||||
David Benbennick <dbenbenn@math.cornell.edu>
|
||||
* Wrap and justify bugfixes/enhancements, new color syntax
|
||||
@ -45,11 +44,11 @@ David Benbennick <dbenbenn@math.cornell.edu>
|
||||
miscellaneous fixes.
|
||||
|
||||
Mike Frysinger <vapier@gentoo.org>
|
||||
* Gentoo package maintainer. Whitespace display mode,
|
||||
--enable-utf8/--disable-utf8 configure options for ncurses,
|
||||
many new color regexes and improvements to existing color
|
||||
regexes in syntax/*.nanorc, the move from svn to git, the
|
||||
conversion to gnulib, and miscellaneous bug fixes.
|
||||
* Whitespace display mode, --enable-utf8/--disable-utf8 configure
|
||||
options for ncurses, many new color regexes and improvements to
|
||||
existing ones in syntax/*.nanorc, the move from svn to git, the
|
||||
conversion to gnulib, and miscellaneous bug fixes. Former
|
||||
Gentoo package maintainer.
|
||||
|
||||
Mark Majeres <mark@engine12.com>
|
||||
* A functional undo/redo system, and coloring nano's interface.
|
||||
|
||||
5
NEWS
5
NEWS
@ -1,3 +1,8 @@
|
||||
2024.09.05 - GNU nano 8.2 "Charlotte will climb walls!"
|
||||
• At a Yes-No prompt, beside Y and the localized initial for "Yes",
|
||||
also ^Y is accepted. Similarly, ^N for "No", and ^A for "All".
|
||||
• A text-highlighting bug with Alt+Home/Alt+End is fixed.
|
||||
|
||||
2024.07.12 - GNU nano 8.1 "de dag van de bitterkoekjespudding"
|
||||
• The idiom `nano filename:linenumber` is understood only when the
|
||||
option --colonparsing (or 'set colonparsing') is used.
|
||||
|
||||
2
README
2
README
@ -15,7 +15,7 @@ Appearance
|
||||
In rough ASCII graphics, this is what nano's screen looks like:
|
||||
|
||||
____________________________________________________________________
|
||||
| GNU nano 8.1 filename Modified |
|
||||
| GNU nano 8.2 filename Modified |
|
||||
--------------------------------------------------------------------
|
||||
| This is the text window, displaying the contents of a 'buffer', |
|
||||
| the contents of the file you are editing. |
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# Generate configure & friends for GIT users.
|
||||
|
||||
gnulib_url="git://git.sv.gnu.org/gnulib.git"
|
||||
gnulib_hash="0ba13435a9362bec0ff5fd0830907b9fac723e41"
|
||||
gnulib_hash="6db3edf95439f7087e60fda5e79e2c12507a6ad4"
|
||||
|
||||
modules="
|
||||
canonicalize-lgpl
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
|
||||
AC_INIT([GNU nano], [8.1], [nano-devel@gnu.org], [nano])
|
||||
AC_INIT([GNU nano], [8.2], [nano-devel@gnu.org], [nano])
|
||||
AC_CONFIG_SRCDIR([src/nano.c])
|
||||
AC_CANONICAL_HOST
|
||||
AM_INIT_AUTOMAKE([1.14])
|
||||
|
||||
@ -92,7 +92,7 @@
|
||||
<h3 id="1.3">1.3. Why the name change from TIP?</h3>
|
||||
<blockquote><p>On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program "establishes a full duplex terminal connection to a remote host", and was included with many older Unix systems (and newer ones like Solaris). The conflict was not noticed at first because there is no 'tip' utility included with most GNU/Linux distributions (where nano was developed).</p></blockquote>
|
||||
<h3 id="1.4">1.4. What is the current version of nano?</h3>
|
||||
<blockquote><p>The current version of nano <i>should</i> be <b>8.1</b>. Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote>
|
||||
<blockquote><p>The current version of nano <i>should</i> be <b>8.2</b>. Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote>
|
||||
<h3 id="1.5">1.5. I want to read the man page without having to download the program!</h3>
|
||||
<blockquote><p>Jeez, demanding, aren't we? Okay, look <a href="https://nano-editor.org/dist/latest/nano.1.html">here</a>.</p></blockquote>
|
||||
<hr width="100%">
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
.\" Documentation License along with this program. If not, see
|
||||
.\" <https://www.gnu.org/licenses/>.
|
||||
.\"
|
||||
.TH NANO 1 "version 8.1" "July 2024"
|
||||
.TH NANO 1 "version 8.2" "September 2024"
|
||||
|
||||
.SH NAME
|
||||
nano \- Nano's ANOther text editor, inspired by Pico
|
||||
@ -439,6 +439,9 @@ Suspension is enabled by default, reachable via \fB^T^Z\fR.
|
||||
(If you want a plain \fB^Z\fR to suspend nano, add
|
||||
\fBbind ^Z suspend main\fR to your nanorc.)
|
||||
.sp
|
||||
At a Yes-No prompt, \fB^Y\fR can be used for "Yes", \fB^N\fR for "No",
|
||||
and \fB^A\fR for "All". These unlisted bindings work in any locale.
|
||||
.sp
|
||||
When you want to copy marked text from \fBnano\fR to the system's clipboard,
|
||||
see one of the examples in the \fBnanorc\fR(5) man page.
|
||||
.sp
|
||||
|
||||
@ -13,8 +13,8 @@ The complete manual for the GNU nano text editor.
|
||||
|
||||
@smallbook
|
||||
@set EDITION 0.8
|
||||
@set VERSION 8.1
|
||||
@set UPDATED July 2024
|
||||
@set VERSION 8.2
|
||||
@set UPDATED September 2024
|
||||
|
||||
@dircategory Editors
|
||||
@direntry
|
||||
@ -29,7 +29,7 @@ The complete manual for the GNU nano text editor.
|
||||
|
||||
@title GNU @command{nano}
|
||||
@subtitle a small and friendly text editor
|
||||
@subtitle version 8.1
|
||||
@subtitle version 8.2
|
||||
|
||||
@author Chris Allegretta
|
||||
|
||||
@ -79,7 +79,7 @@ For suggesting improvements: @email{nano-devel@@gnu.org}
|
||||
@node Top
|
||||
@top
|
||||
|
||||
This manual documents GNU @command{nano}, version 8.1.
|
||||
This manual documents GNU @command{nano}, version 8.2.
|
||||
|
||||
@menu
|
||||
* Introduction::
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
.\" Documentation License along with this program. If not, see
|
||||
.\" <https://www.gnu.org/licenses/>.
|
||||
.\"
|
||||
.TH NANORC 5 "version 8.1" "July 2024"
|
||||
.TH NANORC 5 "version 8.2" "September 2024"
|
||||
|
||||
.SH NAME
|
||||
nanorc \- GNU nano's configuration file
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
.\" Documentation License along with this program. If not, see
|
||||
.\" <https://www.gnu.org/licenses/>.
|
||||
.\"
|
||||
.TH RNANO 1 "version 8.1" "July 2024"
|
||||
.TH RNANO 1 "version 8.2" "September 2024"
|
||||
|
||||
.SH NAME
|
||||
rnano \- a restricted nano
|
||||
|
||||
@ -249,12 +249,12 @@
|
||||
## For all details, see 'man nanorc', section SYNTAX HIGHLIGHTING.
|
||||
|
||||
## To include most of the existing syntax definitions, you can do:
|
||||
# include "@PKGDATADIR@/*.nanorc"
|
||||
# include @PKGDATADIR@/*.nanorc
|
||||
|
||||
## Or you can select just the ones you need. For example:
|
||||
# include "@PKGDATADIR@/html.nanorc"
|
||||
# include "@PKGDATADIR@/python.nanorc"
|
||||
# include "@PKGDATADIR@/sh.nanorc"
|
||||
# include @PKGDATADIR@/html.nanorc
|
||||
# include @PKGDATADIR@/python.nanorc
|
||||
# include @PKGDATADIR@/sh.nanorc
|
||||
|
||||
## In @PKGDATADIR@/extra/ you can find some syntaxes that are
|
||||
## specific for certain distros or for some less common languages.
|
||||
|
||||
750
po/nano.pot
750
po/nano.pot
File diff suppressed because it is too large
Load Diff
748
po/pt_BR.po
748
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
748
po/zh_CN.po
748
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
748
po/zh_TW.po
748
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
VERSION="8.1"
|
||||
VERSION="8.2"
|
||||
|
||||
./configure -C --enable-tiny && make && ./configure -C &&
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ nano_SOURCES = \
|
||||
winio.c
|
||||
|
||||
nano_LDADD = @LIBINTL@ $(top_builddir)/lib/libgnu.a \
|
||||
$(GETRANDOM_LIB) $(LIB_CLOCK_GETTIME) $(LIBTHREAD)
|
||||
$(GETRANDOM_LIB) $(CLOCK_TIME_LIB) $(LIBTHREAD)
|
||||
|
||||
install-exec-hook:
|
||||
cd $(DESTDIR)$(bindir) && rm -f rnano && $(LN_S) nano rnano
|
||||
|
||||
@ -493,7 +493,7 @@ char *browse(char *path)
|
||||
#endif
|
||||
function = interpret(kbinput);
|
||||
|
||||
if (function == full_refresh || function == do_help) {
|
||||
if (function == do_help || function == full_refresh) {
|
||||
function();
|
||||
#ifndef NANO_TINY
|
||||
/* Simulate a terminal resize to force a directory reread,
|
||||
@ -572,8 +572,7 @@ char *browse(char *path)
|
||||
|
||||
/* If the given path is relative, join it with the current path. */
|
||||
if (*path != '/') {
|
||||
path = nrealloc(path, strlen(present_path) +
|
||||
strlen(answer) + 1);
|
||||
path = nrealloc(path, strlen(present_path) + strlen(answer) + 1);
|
||||
sprintf(path, "%s%s", present_path, answer);
|
||||
}
|
||||
|
||||
|
||||
@ -2548,9 +2548,7 @@ char **filename_completion(const char *morsel, size_t *num_matches)
|
||||
if (strncmp(entry->d_name, filename, filenamelen) == 0 &&
|
||||
strcmp(entry->d_name, ".") != 0 &&
|
||||
strcmp(entry->d_name, "..") != 0) {
|
||||
fullname = nrealloc(fullname, strlen(dirname) +
|
||||
strlen(entry->d_name) + 1);
|
||||
|
||||
fullname = nrealloc(fullname, strlen(dirname) + strlen(entry->d_name) + 1);
|
||||
sprintf(fullname, "%s%s", dirname, entry->d_name);
|
||||
|
||||
#ifdef ENABLE_OPERATINGDIR
|
||||
|
||||
@ -392,6 +392,7 @@ int keycode_from_string(const char *keystring)
|
||||
}
|
||||
|
||||
#if defined(ENABLE_EXTRA) && defined(NCURSES_VERSION_PATCH)
|
||||
/* Report the version of ncurses that nano is linked against. */
|
||||
void show_curses_version(void)
|
||||
{
|
||||
statusline(INFO, "ncurses-%i.%i, patch %li", NCURSES_VERSION_MAJOR,
|
||||
|
||||
@ -486,10 +486,8 @@ void show_help(void)
|
||||
#endif
|
||||
function = interpret(kbinput);
|
||||
|
||||
if (function == full_refresh) {
|
||||
full_refresh();
|
||||
} else if (ISSET(SHOW_CURSOR) && (function == do_left || function == do_right ||
|
||||
function == do_up || function == do_down)) {
|
||||
if (ISSET(SHOW_CURSOR) && (function == do_left || function == do_right ||
|
||||
function == do_up || function == do_down)) {
|
||||
function();
|
||||
} else if (function == do_up || function == do_scroll_up) {
|
||||
do_scroll_up();
|
||||
@ -516,6 +514,8 @@ void show_help(void)
|
||||
} else if (kbinput == THE_WINDOW_RESIZED) {
|
||||
; /* Nothing to do. */
|
||||
#endif
|
||||
} else if (function == full_refresh) {
|
||||
full_refresh();
|
||||
} else if (function == do_exit) {
|
||||
break;
|
||||
} else
|
||||
|
||||
@ -1082,7 +1082,8 @@ void regenerate_screen(void)
|
||||
/* If we have an open buffer, redraw the contents of the subwindows. */
|
||||
if (openfile) {
|
||||
ensure_firstcolumn_is_aligned();
|
||||
draw_all_subwindows();
|
||||
if (currmenu & ~(MBROWSER|MWHEREISFILE|MGOTODIR))
|
||||
draw_all_subwindows();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -761,9 +761,11 @@ int ask_user(bool withall, const char *question)
|
||||
else if (kbinput == '\x0E' || (kbinput == '\x11' && !ISSET(MODERN_BINDINGS)) ||
|
||||
(kbinput == '\x18' && ISSET(MODERN_BINDINGS)))
|
||||
choice = NO;
|
||||
/* And interpret ^Y as "Yes". */
|
||||
/* Also, interpret ^Y as "Yes, and ^A as "All". */
|
||||
else if (kbinput == '\x19')
|
||||
choice = YES;
|
||||
else if (kbinput == '\x01' && withall)
|
||||
choice = ALL;
|
||||
#ifdef ENABLE_MOUSE
|
||||
else if (kbinput == KEY_MOUSE) {
|
||||
int mouse_x, mouse_y;
|
||||
|
||||
30
src/rcfile.c
30
src/rcfile.c
@ -526,9 +526,9 @@ char *menu_to_name(int menu)
|
||||
return "boooo";
|
||||
}
|
||||
|
||||
/* Parse the next word from the string, null-terminate it, and return
|
||||
* a pointer to the first character after the null terminator. The
|
||||
* returned pointer will point to '\0' if we hit the end of the line. */
|
||||
/* Parse the next word from the string (if any), null-terminate it,
|
||||
* and return a pointer to the next word. The returned pointer will
|
||||
* point to '\0' when end-of-line was reached. */
|
||||
char *parse_next_word(char *ptr)
|
||||
{
|
||||
while (!isblank((unsigned char)*ptr) && *ptr != '\0')
|
||||
@ -546,10 +546,9 @@ char *parse_next_word(char *ptr)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/* Parse an argument, with optional quotes, after a keyword that takes
|
||||
* one. If the next word starts with a ", we say that it ends with the
|
||||
* last " of the line. Otherwise, we interpret it as usual, so that the
|
||||
* arguments can contain "'s too. */
|
||||
/* Parse an argument (optionally enveloped in double quotes). When the
|
||||
* argument starts with a ", then the last " of the line indicates its
|
||||
* end -- meaning that an argument can contain "'s either way. */
|
||||
char *parse_argument(char *ptr)
|
||||
{
|
||||
const char *ptr_save = ptr;
|
||||
@ -739,9 +738,11 @@ bool is_universal(void (*func)(void))
|
||||
/* Bind or unbind a key combo, to or from a function. */
|
||||
void parse_binding(char *ptr, bool dobind)
|
||||
{
|
||||
char *keyptr = NULL, *keycopy = NULL, *funcptr = NULL, *menuptr = NULL;
|
||||
int keycode, menu, mask = 0;
|
||||
char *keycopy, *keyptr, *menuptr;
|
||||
keystruct *newsc = NULL;
|
||||
char *funcptr = NULL;
|
||||
int keycode, menu;
|
||||
int mask = 0;
|
||||
|
||||
check_for_nonempty_syntax();
|
||||
|
||||
@ -760,7 +761,7 @@ void parse_binding(char *ptr, bool dobind)
|
||||
else
|
||||
keycopy[0] = toupper((unsigned char)keycopy[0]);
|
||||
|
||||
/* Verify that the key name is not too short, to allow the next call. */
|
||||
/* Verify that the key name is not too short. */
|
||||
if (keycopy[1] == '\0' || (keycopy[0] == 'M' && keycopy[2] == '\0')) {
|
||||
jot_error(N_("Key name %s is invalid"), keycopy);
|
||||
goto free_things;
|
||||
@ -1305,7 +1306,7 @@ void grab_and_store(const char *kind, char *ptr, regexlisttype **storage)
|
||||
}
|
||||
}
|
||||
|
||||
/* Gather and store the string after a comment/linter command. */
|
||||
/* Gather and store the string after a comment/linter/formatter/tabgives command. */
|
||||
void pick_up_name(const char *kind, char *ptr, char **storage)
|
||||
{
|
||||
if (*ptr == '\0') {
|
||||
@ -1357,8 +1358,8 @@ bool parse_syntax_commands(char *keyword, char *ptr)
|
||||
}
|
||||
#endif /* ENABLE_COLOR */
|
||||
|
||||
/* Verify that the user has not unmapped every shortcut for a
|
||||
* function that we consider 'vital' (such as "Exit"). */
|
||||
/* Verify that the user has not unmapped every shortcut for
|
||||
* a function that we consider 'vital' (such as "Exit"). */
|
||||
static void check_vitals_mapped(void)
|
||||
{
|
||||
#define VITALS 4
|
||||
@ -1382,7 +1383,7 @@ static void check_vitals_mapped(void)
|
||||
|
||||
/* Parse the rcfile, once it has been opened successfully at rcstream,
|
||||
* and close it afterwards. If just_syntax is TRUE, allow the file to
|
||||
* to contain only color syntax commands. */
|
||||
* contain only color syntax commands. */
|
||||
void parse_rcfile(FILE *rcstream, bool just_syntax, bool intros_only)
|
||||
{
|
||||
char *buffer = NULL;
|
||||
@ -1712,6 +1713,7 @@ void parse_one_nanorc(void)
|
||||
jot_error(N_("Error reading %s: %s"), nanorc, strerror(errno));
|
||||
}
|
||||
|
||||
/* Return TRUE when path-plus-name denotes a readable, normal file. */
|
||||
bool have_nanorc(const char *path, const char *name)
|
||||
{
|
||||
if (path == NULL)
|
||||
|
||||
@ -578,8 +578,6 @@ void do_undo(void)
|
||||
break;
|
||||
case REPLACE:
|
||||
undidmsg = _("replacement");
|
||||
if ((u->xflags & INCLUDED_LAST_LINE) && !ISSET(NO_NEWLINES))
|
||||
remove_magicline();
|
||||
data = u->strdata;
|
||||
u->strdata = line->data;
|
||||
line->data = data;
|
||||
@ -757,8 +755,6 @@ void do_redo(void)
|
||||
break;
|
||||
case REPLACE:
|
||||
redidmsg = _("replacement");
|
||||
if ((u->xflags & INCLUDED_LAST_LINE) && !ISSET(NO_NEWLINES))
|
||||
new_magicline();
|
||||
data = u->strdata;
|
||||
u->strdata = line->data;
|
||||
line->data = data;
|
||||
@ -1049,8 +1045,6 @@ void add_undo(undo_type action, const char *message)
|
||||
break;
|
||||
case REPLACE:
|
||||
u->strdata = copy_of(thisline->data);
|
||||
if (thisline == openfile->filebot && answer[0] != '\0')
|
||||
u->xflags |= INCLUDED_LAST_LINE;
|
||||
break;
|
||||
#ifdef ENABLE_WRAPPING
|
||||
case SPLIT_BEGIN:
|
||||
@ -1600,8 +1594,7 @@ void concat_paragraph(linestruct *line, size_t count)
|
||||
line->data[line_len] = '\0';
|
||||
}
|
||||
|
||||
line->data = nrealloc(line->data,
|
||||
line_len + next_line_len - next_lead_len + 1);
|
||||
line->data = nrealloc(line->data, line_len + next_line_len - next_lead_len + 1);
|
||||
strcat(line->data, next_line->data + next_lead_len);
|
||||
UNFOLD_SEGMENT(line);
|
||||
#ifndef NANO_TINY
|
||||
|
||||
@ -3682,19 +3682,17 @@ void full_refresh(void)
|
||||
wrefresh(curscr);
|
||||
}
|
||||
|
||||
/* Draw all elements of the screen. That is: the title bar plus the content
|
||||
* of the edit window (when not in the file browser), and the bottom bars. */
|
||||
/* Draw the three elements of the screen: the title bar,
|
||||
* the contents of the edit window, and the bottom bars. */
|
||||
void draw_all_subwindows(void)
|
||||
{
|
||||
if (currmenu & ~(MBROWSER|MWHEREISFILE|MGOTODIR))
|
||||
titlebar(title);
|
||||
titlebar(title);
|
||||
#ifdef ENABLE_HELP
|
||||
if (inhelp) {
|
||||
close_buffer();
|
||||
wrap_help_text_into_buffer();
|
||||
} else
|
||||
#endif
|
||||
if (currmenu & ~(MBROWSER|MWHEREISFILE|MGOTODIR))
|
||||
edit_refresh();
|
||||
bottombars(currmenu);
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ syntax autoconf "\.(ac|m4)$"
|
||||
comment "#"
|
||||
|
||||
# Keywords:
|
||||
color yellow "\<(if|test|then|elif|else|fi|for|in|do|done)\>"
|
||||
color yellow "\<(if|test|then|elif|else|fi|case|esac|ifelse|for|in|do|done)\>"
|
||||
color yellow "=|!=|&&|\|\|"
|
||||
|
||||
# Macros:
|
||||
|
||||
@ -32,6 +32,8 @@ color magenta "\<(bindtextdomain|dcgettext|dcngettext)\>"
|
||||
|
||||
# Strings.
|
||||
color brightyellow ""([^"\]|\\.)*""
|
||||
# Escape sequences.
|
||||
color brick "\\([abfnrtv\/"]|[0-7]{1,3}|x[[:xdigit:]]{1,2}|u[[:xdigit:]]{1,8})"
|
||||
# Comments.
|
||||
color brightblue "(^|[[:blank:]])#.*"
|
||||
|
||||
|
||||
@ -14,7 +14,9 @@ color brightblue "\<(AutoReq|AutoProv|AutoReqProv)[[:space:]]*:"
|
||||
color brightblue "\<(License|Copyright|Distribution|Vendor|Packager)[[:space:]]*:"
|
||||
color brightblue "\<((Source|Patch)[0-9]*|Nosource|Nopatch)[[:space:]]*:"
|
||||
# Architectures.
|
||||
color brightred "\<(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppciseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x?|noarch)\>"
|
||||
color brightred "\<((a|loong)arch64|alpha(ev(56?|67?)|pca56)?|amd64|armv(3l|4b|4l|5t(ej?)?l|6h?l|7(hn?)?l|8h?l)|athlon|em64t|geode|i370|i(3|4|5|6)86|ia32e|ia64|m68k(mint)?|mips(64)?(el|r6|r6el)?)\>"
|
||||
color brightred "\<(pentium(3|4)|ppc(32dy4|8260|8560)?|ppc64(le|p7)?|ppc(64)?(i|p)series|riscv64|rs6000|s390x?|sgi|sh(3|4|4a)?|sparc(64v?|v8|v9v?)?|x86_64(_v2|_v3|_v4)?|xtensa)\>"
|
||||
|
||||
# Architecture and OS conditionals.
|
||||
color brightred "%(ifarch|elifarch|ifnarch|ifos|elifos|ifnos)\>"
|
||||
# %* strings.
|
||||
|
||||
@ -17,7 +17,7 @@ color magenta "^((override +)?(un)?define|endef|(un)?export|private|vpath)\>"
|
||||
color blue "\$+[{(][a-zA-Z0-9_-]+[})]"
|
||||
|
||||
# Targets.
|
||||
color brightblue "^[^ ]+:"
|
||||
color brightblue "^[^ ].*:"
|
||||
|
||||
# Comments.
|
||||
color green "(^|[[:blank:]]+)#.*"
|
||||
|
||||
@ -10,7 +10,7 @@ color brightred ".*"
|
||||
color yellow "^[[:blank:]]*(i?color|set[[:blank:]]+((error|function|key|mini|number|prompt|scroller|selected|spotlight|status|stripe|title)color))[[:blank:]]+(bold,)?(italic,)?(((bright|light)?(white|black|red|blue|green|yellow|magenta|cyan))|normal|pink|purple|mauve|lagoon|mint|lime|peach|orange|latte|rosy|beet|plum|sea|sky|slate|teal|sage|brown|ocher|sand|tawny|brick|crimson|grey|gray|#[[:xdigit:]]{3})?(,(((light)?(white|black|red|blue|green|yellow|magenta|cyan))|normal|pink|purple|mauve|lagoon|mint|lime|peach|orange|latte|rosy|beet|plum|sea|sky|slate|teal|sage|brown|ocher|sand|tawny|brick|crimson|grey|gray|#[[:xdigit:]]{3}))?\>"
|
||||
|
||||
# The arguments of two special commands
|
||||
color bold,purple "^[[:blank:]]*include[[:blank:]][^"]*([[:blank:]]|$)"
|
||||
color bold,purple "^[[:blank:]]*include[[:blank:]]+[^[:blank:]"]+"
|
||||
color lime "^[[:blank:]]*extendsyntax[[:blank:]]+[[:alpha:]]+[[:blank:]]+(i?color|header|magic|comment|formatter|linter|tabgives)[[:blank:]]+.*"
|
||||
|
||||
# The arguments of commands
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user