Change internalmode to be an intrinsic variable
authorTom Tromey <tom@tromey.com>
Tue, 7 Feb 2023 19:14:54 +0000 (12:14 -0700)
committerTom Tromey <tom@tromey.com>
Wed, 15 Feb 2023 17:27:34 +0000 (10:27 -0700)
commitfe20eda53c2bcc8182720978f7695b84efc9ec29
tree6230d611c75e8d57729f5bccc2714d9e4238bf15
parent126eff23d218581ce91560bc088fb550aac36942
Change internalmode to be an intrinsic variable

Currently, internalmode is a special word to set an internal state
variable.  Because this series adds variables anyway, change this to
be a variable instead.

I saw some commits in the history that made sure that chew did not
leak memory, so I put some extra effort into trying to handle this for
variables as well.

2023-02-07  Tom Tromey  <tom@tromey.com>

* doc/proto.str (external, internal, ifinternal, ENUMEQ, ENUMDOC):
Update.
* doc/chew.c (internalmode): Remove.
(add_intrinsic_variable): New function.
(main): Add internalmode as intrinsic.
(internal_mode): Remove global.
(maybecatstr): Update.
(free_words): Free variables.
bfd/ChangeLog
bfd/doc/chew.c
bfd/doc/proto.str