diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1996-09-07 21:40:33 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1996-09-07 21:40:33 +0000 |
commit | c224fc199c25dd257673c273eb344786b9bf532c (patch) | |
tree | 8f8ed1297120c537480d9e5d46bfe7452bd8505b /usr.bin/vim/macros.h | |
parent | d0d91e2d3d6569e4defdd5178241f28fa678d753 (diff) |
Initial import of vim 4.2.
This is meant to replace nvi in the tree. Vim, in general, works better,
provides more features, and does not suffer from the license problems
being imposed upon nvi.
On the other hand, vim lacks a non-visual ex mode, in addition to open mode.
This includes the GUI (X11) code, but doesn't try to compile it.
Diffstat (limited to 'usr.bin/vim/macros.h')
-rw-r--r-- | usr.bin/vim/macros.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/usr.bin/vim/macros.h b/usr.bin/vim/macros.h new file mode 100644 index 00000000000..323db81f0e3 --- /dev/null +++ b/usr.bin/vim/macros.h @@ -0,0 +1,69 @@ +/* $OpenBSD: macros.h,v 1.1 1996/09/07 21:40:27 downsj Exp $ */ +/* vi:set ts=4 sw=4: + * + * VIM - Vi IMproved by Bram Moolenaar + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + */ + +/* + * macros.h: macro definitions for often used code + */ + +/* + * pchar(lp, c) - put character 'c' at position 'lp' + */ +#define pchar(lp, c) (*(ml_get_buf(curbuf, (lp).lnum, TRUE) + (lp).col) = (c)) + +/* + * Position comparisons + */ +#define lt(a, b) (((a).lnum != (b).lnum) \ + ? ((a).lnum < (b).lnum) : ((a).col < (b).col)) + +#define ltoreq(a, b) (((a).lnum != (b).lnum) \ + ? ((a).lnum < (b).lnum) : ((a).col <= (b).col)) + +#define equal(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col)) + +/* + * lineempty() - return TRUE if the line is empty + */ +#define lineempty(p) (*ml_get(p) == NUL) + +/* + * bufempty() - return TRUE if the current buffer is empty + */ +#define bufempty() (curbuf->b_ml.ml_line_count == 1 && *ml_get((linenr_t)1) == NUL) + +/* + * On some systems toupper()/tolower() only work on lower/uppercase characters + */ +#ifdef BROKEN_TOUPPER +# define TO_UPPER(c) (islower(c) ? toupper(c) : (c)) +# define TO_LOWER(c) (isupper(c) ? tolower(c) : (c)) +#else +# define TO_UPPER toupper +# define TO_LOWER tolower +#endif + +#ifdef HAVE_LANGMAP +/* + * Adjust chars in a language according to 'langmap' option. + * NOTE that there is NO overhead if 'langmap' is not set; but even + * when set we only have to do 2 ifs and an array lookup. + * Don't apply 'langmap' if the character comes from the Stuff buffer. + * The do-while is just to ignore a ';' after the macro. + */ +# define LANGMAP_ADJUST(c, condition) do { \ + if (*p_langmap && (condition) && !KeyStuffed && (c) < 256) \ + c = langmap_mapchar[c]; \ + } while (0) +#endif + +/* + * isbreak() is used very often if 'linebreak' is set, use a macro to make + * it work fast. + */ +#define isbreak(c) (breakat_flags[(char_u)(c)]) |