History log of /openbsd-current/usr.bin/vi/cl/cl_funcs.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.23 26-Dec-2022 jmc

spelling fixes; from paul tagliamonte
amendments to his diff are noted on tech


Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.22 02-Sep-2021 schwarze

Make all signal handler functions async-signal-safe
by deleting the redundant "killersig" struct member
and using the existing sig_atomic_t cl_sigterm variable instead.
While here, garbage collect the h_hup() signal handler
which is essentially identical to h_term().
This also gets rid of the last #define & #undef in cl_main.c.

OK martijn@, and also tested by Tim <trondd at kagu hyphen tsuchi dot com>.


# 1.21 01-Sep-2021 schwarze

As a first step towards safe signal handling, improve the h_int()
and h_winch() signal handlers to make one single store to a
sig_atomic_t variable. Note that the h_hup() and h_term() signal
handlers are still unsafe after this commit because they also set
the "killersig" (how fitting!) field in a global struct.

Despite storing information in static global variables rather than
in structs passed around as arguments, this patch does not cause a
change in behaviour because there is always exactly one GS object,
initialized using gs_init() called from the top of main(), and
screen_init() stores a pointer to this one and only GS object in
the .gp member of each and every SCR object. Talk about useless
abstraction...

Problem pointed out by deraadt@.
Patch from Tim <trondd at kagu hyphen tsuchi dot com> on tech@.
OK deraadt@.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.20 27-May-2016 martijn

Revert CHAR_T removal. Some signedness flaws were introduced.
Found the hard way by jca@


# 1.19 02-May-2016 martijn

Remove CHAR_T in favor of native types.

schwarze@ agrees with the direction.
Few tweaks and OK tb@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.18 29-Mar-2015 bcallah

Remove SA_INTERRUPT, HISTORIC_PRACTICE, and HISTORICAL_PRACTICE using
unifdef. It seems clear that no one was using these (SA_INTERRUPT didn't
even build the other way). Tweak comments as appropriate.

ok brynet@


Revision tags: OPENBSD_5_7_BASE
# 1.17 12-Nov-2014 millert

Remove more portability bits for older systems; from Martin Natano


# 1.16 12-Nov-2014 bentley

Ansify vi.

ok bcallah@ millert@


# 1.15 06-Nov-2014 bentley

Remove old curses support in vi.

ok nicm@ millert@ plus a comment tweak from nicm@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.14 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.13 28-Jan-2009 sobrado

ex(1), vi(1), and view(1) have different synopses; each nex/nvi utility
should manage the right set of options and return an appropriate usage
when required.

jsing@ has suggested preserving "-e" in ex(1) as an undocumented
compatibility flag to avoid breaking silly scripts that may use this
option with the line-oriented editor.

diff sent upstream to nex/nvi maintainers.

ok ("put it in!") jsing@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE
# 1.12 22-Apr-2006 ray

Removes unused variables and rename variables shadowing external
variables. No binary change.

Found by lint.

OK otto@ and jaredy@


# 1.11 11-Mar-2006 ray

Silence 39 warnings.

ok miod, otto


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.10 18-Jul-2003 david

add missing includes
ok tedu@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.9 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.8 29-Jan-2001 niklas

$OpenBSD$


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE
# 1.7 08-Feb-1999 millert

Don't call curses routines beep() or flash() if the screen has not been
setup yet (as they will try to us SP which is NULL at this point).


Revision tags: OPENBSD_2_4_BASE
# 1.6 24-Jul-1998 millert

-D_USE_OLD_CURSE_ for -locurses and no more -ltermlib/termcap


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.5 23-Sep-1997 downsj

Make building with ocurses/termcap and curses/termlib conditional on
USE_OCURSES being defined, and define it for now. This switches nvi back
to use BSD curses.


Revision tags: OPENBSD_2_1_BASE
# 1.4 16-Oct-1996 michaels

nvi 1.78:
+ Fix bugs when both the leftright scrolling and number edit options
were on.
+ Fix bug where splitting in the middle of the screen could repaint
incorrectly.
+ Fix first-nul in input bug, where random garbage was inserted.
+ Correct search and mark-as-motion-command bug, it's a line mode
action if the search starts at or before the first non<blank>.
+ Fix bug autoindent bug, where ^D could shift too far in the line.
+ Fix core dump where ! command called from the .exrc file.
+ Add the -S command-line option, which initializes vi to have the
secure edit option preset.


Revision tags: OPENBSD_2_0_BASE
# 1.3 16-Aug-1996 michaels

nvi 1.73


# 1.2 24-Jul-1996 mickey

bring vi/ex up to 1.71


# 1.1 22-May-1996 deraadt

new vi


# 1.22 02-Sep-2021 schwarze

Make all signal handler functions async-signal-safe
by deleting the redundant "killersig" struct member
and using the existing sig_atomic_t cl_sigterm variable instead.
While here, garbage collect the h_hup() signal handler
which is essentially identical to h_term().
This also gets rid of the last #define & #undef in cl_main.c.

OK martijn@, and also tested by Tim <trondd at kagu hyphen tsuchi dot com>.


# 1.21 01-Sep-2021 schwarze

As a first step towards safe signal handling, improve the h_int()
and h_winch() signal handlers to make one single store to a
sig_atomic_t variable. Note that the h_hup() and h_term() signal
handlers are still unsafe after this commit because they also set
the "killersig" (how fitting!) field in a global struct.

Despite storing information in static global variables rather than
in structs passed around as arguments, this patch does not cause a
change in behaviour because there is always exactly one GS object,
initialized using gs_init() called from the top of main(), and
screen_init() stores a pointer to this one and only GS object in
the .gp member of each and every SCR object. Talk about useless
abstraction...

Problem pointed out by deraadt@.
Patch from Tim <trondd at kagu hyphen tsuchi dot com> on tech@.
OK deraadt@.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.20 27-May-2016 martijn

Revert CHAR_T removal. Some signedness flaws were introduced.
Found the hard way by jca@


# 1.19 02-May-2016 martijn

Remove CHAR_T in favor of native types.

schwarze@ agrees with the direction.
Few tweaks and OK tb@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.18 29-Mar-2015 bcallah

Remove SA_INTERRUPT, HISTORIC_PRACTICE, and HISTORICAL_PRACTICE using
unifdef. It seems clear that no one was using these (SA_INTERRUPT didn't
even build the other way). Tweak comments as appropriate.

ok brynet@


Revision tags: OPENBSD_5_7_BASE
# 1.17 12-Nov-2014 millert

Remove more portability bits for older systems; from Martin Natano


# 1.16 12-Nov-2014 bentley

Ansify vi.

ok bcallah@ millert@


# 1.15 06-Nov-2014 bentley

Remove old curses support in vi.

ok nicm@ millert@ plus a comment tweak from nicm@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.14 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.13 28-Jan-2009 sobrado

ex(1), vi(1), and view(1) have different synopses; each nex/nvi utility
should manage the right set of options and return an appropriate usage
when required.

jsing@ has suggested preserving "-e" in ex(1) as an undocumented
compatibility flag to avoid breaking silly scripts that may use this
option with the line-oriented editor.

diff sent upstream to nex/nvi maintainers.

ok ("put it in!") jsing@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE
# 1.12 22-Apr-2006 ray

Removes unused variables and rename variables shadowing external
variables. No binary change.

Found by lint.

OK otto@ and jaredy@


# 1.11 11-Mar-2006 ray

Silence 39 warnings.

ok miod, otto


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.10 18-Jul-2003 david

add missing includes
ok tedu@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.9 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.8 29-Jan-2001 niklas

$OpenBSD$


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE
# 1.7 08-Feb-1999 millert

Don't call curses routines beep() or flash() if the screen has not been
setup yet (as they will try to us SP which is NULL at this point).


Revision tags: OPENBSD_2_4_BASE
# 1.6 24-Jul-1998 millert

-D_USE_OLD_CURSE_ for -locurses and no more -ltermlib/termcap


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.5 23-Sep-1997 downsj

Make building with ocurses/termcap and curses/termlib conditional on
USE_OCURSES being defined, and define it for now. This switches nvi back
to use BSD curses.


Revision tags: OPENBSD_2_1_BASE
# 1.4 16-Oct-1996 michaels

nvi 1.78:
+ Fix bugs when both the leftright scrolling and number edit options
were on.
+ Fix bug where splitting in the middle of the screen could repaint
incorrectly.
+ Fix first-nul in input bug, where random garbage was inserted.
+ Correct search and mark-as-motion-command bug, it's a line mode
action if the search starts at or before the first non<blank>.
+ Fix bug autoindent bug, where ^D could shift too far in the line.
+ Fix core dump where ! command called from the .exrc file.
+ Add the -S command-line option, which initializes vi to have the
secure edit option preset.


Revision tags: OPENBSD_2_0_BASE
# 1.3 16-Aug-1996 michaels

nvi 1.73


# 1.2 24-Jul-1996 mickey

bring vi/ex up to 1.71


# 1.1 22-May-1996 deraadt

new vi


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.20 27-May-2016 martijn

Revert CHAR_T removal. Some signedness flaws were introduced.
Found the hard way by jca@


# 1.19 02-May-2016 martijn

Remove CHAR_T in favor of native types.

schwarze@ agrees with the direction.
Few tweaks and OK tb@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.18 29-Mar-2015 bcallah

Remove SA_INTERRUPT, HISTORIC_PRACTICE, and HISTORICAL_PRACTICE using
unifdef. It seems clear that no one was using these (SA_INTERRUPT didn't
even build the other way). Tweak comments as appropriate.

ok brynet@


Revision tags: OPENBSD_5_7_BASE
# 1.17 12-Nov-2014 millert

Remove more portability bits for older systems; from Martin Natano


# 1.16 12-Nov-2014 bentley

Ansify vi.

ok bcallah@ millert@


# 1.15 06-Nov-2014 bentley

Remove old curses support in vi.

ok nicm@ millert@ plus a comment tweak from nicm@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.14 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.13 28-Jan-2009 sobrado

ex(1), vi(1), and view(1) have different synopses; each nex/nvi utility
should manage the right set of options and return an appropriate usage
when required.

jsing@ has suggested preserving "-e" in ex(1) as an undocumented
compatibility flag to avoid breaking silly scripts that may use this
option with the line-oriented editor.

diff sent upstream to nex/nvi maintainers.

ok ("put it in!") jsing@


Revision tags: OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE
# 1.12 22-Apr-2006 ray

Removes unused variables and rename variables shadowing external
variables. No binary change.

Found by lint.

OK otto@ and jaredy@


# 1.11 11-Mar-2006 ray

Silence 39 warnings.

ok miod, otto


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE
# 1.10 18-Jul-2003 david

add missing includes
ok tedu@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.9 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.8 29-Jan-2001 niklas

$OpenBSD$


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE
# 1.7 08-Feb-1999 millert

Don't call curses routines beep() or flash() if the screen has not been
setup yet (as they will try to us SP which is NULL at this point).


Revision tags: OPENBSD_2_4_BASE
# 1.6 24-Jul-1998 millert

-D_USE_OLD_CURSE_ for -locurses and no more -ltermlib/termcap


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.5 23-Sep-1997 downsj

Make building with ocurses/termcap and curses/termlib conditional on
USE_OCURSES being defined, and define it for now. This switches nvi back
to use BSD curses.


Revision tags: OPENBSD_2_1_BASE
# 1.4 16-Oct-1996 michaels

nvi 1.78:
+ Fix bugs when both the leftright scrolling and number edit options
were on.
+ Fix bug where splitting in the middle of the screen could repaint
incorrectly.
+ Fix first-nul in input bug, where random garbage was inserted.
+ Correct search and mark-as-motion-command bug, it's a line mode
action if the search starts at or before the first non<blank>.
+ Fix bug autoindent bug, where ^D could shift too far in the line.
+ Fix core dump where ! command called from the .exrc file.
+ Add the -S command-line option, which initializes vi to have the
secure edit option preset.


Revision tags: OPENBSD_2_0_BASE
# 1.3 16-Aug-1996 michaels

nvi 1.73


# 1.2 24-Jul-1996 mickey

bring vi/ex up to 1.71


# 1.1 22-May-1996 deraadt

new vi