1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444
|
Mon, 21 Jun 2004
* zoem-04-173 released.
* Repeated use of \special#1 would decrease available stack space.
Quite rare bug revealed by Tim Hughes as one of the first to use
clmformat/zoem on a larger scale.
This will not affect normal users of zoem.
Fixed.
* Made the code better ISO-C compliant (split long constant strings).
Wed, 16 Jun 2004
* zoem-04-168 released.
* fixed embarassing special-related bug. It *did* affect exisiting macro
packages (see below).
Tue, 15 Jun 2004
* zoem-04-167 released.
* \special#1 now evaluates its argument. This does not affect existing
macro packages.
* Updated generic_zmm documentation.
* Treat spaces in manual name correctly (fixed bug in man.zmm results
spotted by Joost van Baal).
Sun, 13 Jun 2004
* zoem-04-165 released.
* fixed bug where inline files would cause zoem to crash.
* introduced enclosing variants for all paragraph incarnations.
\par -> \par#1 (content)
\cpar#1 -> \cpar#2 (caption, content)
\car -> \car#1 (content)
\ccar#1 -> \ccar#2 (caption, content)
Separation tags (such as \par) will be phased out from the
zoem macro packages. \item and \sec are to follow.
* \formatted#1 now skips \<> scope as well.
* Embedded newlines in *ml syntactic sugar \<..> would screw up the
line count. Now fixed.
* \<> stacks are now tied to files, so that alternating output
can never erroneously corrupt the well-formedness stack. (Do note that
funny user-side inverse processing could and still can do that).
* Environment stacks (\begin and \end stuff) are now also tied to files,
same as above.
* The hash module in the underlying library code was overhauled.
hashes now maintain private storage for links and key-value pointers.
Tue, 20 Apr 2004
* zoem-04-111 released.
* small documentation fixes.
Mon, 19 Apr 2004
* zoem-04-110 released.
* the builtin alias \error#1 is gone, replaced by \inform#1.
* Streamlined the examples, made them more suitable for web-publishing.
* Fixed a bug recently introduced into the util library;
file read from STDIN would only read a single line.
* (updated web index, otherwise irrelevant).
Sat, 17 Apr 2004
* zoem-04-108 released.
* Some activity at meta-zoem primitive level.
A new exception mechanism was fully integrated with the error
framework.
- Introduced \throw#2, which generalizes \quit (now removed).
- Removed \zoem#1. It is generalized by \catch{label}{expression}
and \try{expression}.
- Reimplemented \quit as \done, specialized for clean premature
file exit.
This enables
\catch{towel}{
\while{1}{
do stuff
\if{ifstuff}{\throw{towel}}{}
do stuff
}
}
and
\catch{error}{
do possibly erroneous *or* towel stuff
}
or
\try{ stuff }
inspect
\__zoemstat__ (towel|error|ok) and
\__zoemput__ (the possibly truncated result of \try{stuff})
\catch#2 and \try#2 can be arbitrarily nested.
* The primitive \throw#2 is used as
\throw{towel}{msg}
\throw{error}{msg}
The macros
\throw{towel}
\throw{error}
expand to \throw{towel}{} and \throw{error}{} and do not issue a message.
* The new alias \error#1 generates an error message, it expands to
to \write{stderr}{device}{\1\@{\N}}
* Removed alias \ignore#1, use \""#1 instead.
(e.g. \""{ignore
stuff
}
)
* Fixed zum.azm, which contained bogus begin#1 description.
* Fixed small bug; \write#3 would erroneously set \__fnout__.
Using \__fnout__ as in \write{\__fnout__}{filter}{stuff}
now works as expected.
Wed, 7 Apr 2004
* zoem-04-098 released.
* fixed documentation to exclusively use/describe the begin#2 primitive.
* The old and ugly \begin{itemize{{foo}{bar}}} syntax now generates
a syntax error. (use \begin{itemize}{{foo}{bar}}, introduced
in zoem-04-072).
* fixed -e option related bug, changed its implementation.
* Introduced \*{'e} syntax, equivalent with \*'e* syntax. The new syntax
is optionally extendible and more in line with the rest of zoem.
This move is similar to the inline file name change \=fname= -> \={fname}
introduced earlier. The old \*'e* syntax will not be removed but
if used error messages are issued.
* The \formatted#1 tokens \`<` and \`>` were changed to \`[` and \`]` for
esthetic reasons.
Tue, 30 Mar 2004
* zoem-04-090 released.
* Fixed some small documentation glitches.
* At request of the zoem user community, the faqsec environment
was moved to a key/value based syntax. The two positional arguments
<label> (first) and <caption> (second) are now tied to
values 'ref' and 'cap'. So now you write
\begin{faqsec}{{ref}{abc}{cap}{Any Balding Clown}}
which was previously
\begin{faqsec}{:{abc}{Any Balding Clown}}
Fri, 12 Mar 2004
* zoem-04-072 released.
* As an exceptional case, a syntax change (fix, really)
was introduced that requires updating of user-space zoem files that use
the faqsec environment from the FAQ package faq.zmm . This is the only
environment affected by the change in begin#1 parsing described below.
* Implemented chunked reads. By default, zoem will read entire files
before processing them. If -chunk <num> is specified on the command
line, zoem will try to output a chunk once its size exceeds <num> bytes.
At that stage it will simply append lines until it finds itself in the
outermost scope (outside of any block). So, finally, you will be able
to throw files of any size at zoem. Do note the level restriction
though; if a block (pair of balanced curlies) spans the entire file zoem
will attempt to read the file in its entirety.
Perhaps chunked reads will become the default in a later release.
* Added begin#2 macro (not a primitive). The vararg part of
the begin#1 syntax \begin{itemize{{align}{left}}} is placed
in a separate argument as it should have been from the
beginning: \begin{itemize}{{align}{left}}. The old syntax
is deprecated, as it is special-case and not in line with
general zoem syntax principles.
The old syntax is still available - in fact, begin#2
is currently rewritten to the begin#1 syntax.
The plan is to phase out begin#1 at some point in the future.
* By default, the second argument of begin#2 (or the vararg
part of begin#1 for that matter) is parsed as a sequence of key-value
pairs which are set in the newly pushed dollar scope.
\begin{foo}{{bar}{zut}{tim}{eek}}
thus results in these keys and values:
\$bar -> zut
\$tim -> eek
\$0 -> 2 \: contains the number of key-value pairs.
The old behaviour (in which pseudo positional parameters
\$1, \$2 and onwards are set) can be obtained by inserting a colon.
\begin{foo}{:{bar}{zut}{tim}{eek}}
results in these keys and values:
\$1 -> bar
\$2 -> zut
\$3 -> tim
\$4 -> eek
\$0 -> 4 \: the number of arguments.
As a bonus, you can now set arbitrarily many pseudo positional
parameters.
Sat, 6 Mar 2004
* zoem-04-066 released.
* Changed format parsing so that parts may occur in any order.
A new part *{..}{..} may be used to specify virtual length.
A new part ~{..}{..} may be used to specify padding and delimiter.
A new part @{..}{..} may be used to align on substring/offset.
<=> alignment specification; left right centered.
~{..}{..} padding specification
@{..}{..} alignment specification; substring + offset.
*{..}{..} length macro + glyph string specification.
<num>
* Added \lenght#1 which computes the length of its argument.
It can be useful in the powerful new format virtual length
functionality.
* Added *{key-name}{target-string} pretense part to format specification.
Key-name specifies a macro computing a length (a likely candidate
is \length#1 which is specified simply as length). Target-string will be
used to compute the length, but the actual argument from the format
vararg will be inserted. This allows some degree of separation between
visible width of glyph arrays and their representation.
* Added introspective \zoem#1 primitive. The content will be processed
and if this succeeds output is written in the macro \__zoemput__. The
result text is "1" for succesful and "0" for unsuccesful processing.
* Added \vanish#1, which processes it content but does not output
anything. It is an alternative to \formatted#2.
\vanish#1 allows to do lots of commenting outside definitions.
\formatted#2 allows to format definitions themselves.
Sun, 29 Feb 2004
* zoem-04-061 released.
* Added \format#2 primitive.
It can separately left align, center, or right align different
arguments from a sequence. First argument is the format string, second
argument is a vararg.
* \writeto#1 (which can redirect the default output stream), if
invoked more than once for the same file name, will append
from the second time onwards, rather than overwrite.
* Fixed bug in switch#2 and branch#1; in the absence of a default-
or else-type block, the last block would be evaluated regardless
of the truth value of its pivot block.
* Fixed various documentation flaws pointed out by Joost van Baal (thx!).
* The obscure \%% syntax (providing freeing of multidimensional data)
was changed to \%free, the syntax \%%% (providing dumping of
multidimensional data) was changed to \%dump.
* Implemented --allow=cmd1[:cmd2]* option, allowing explicit
specification of system commands that can be executed without asking.
Mon, 27 Oct 2003
* zoem-03-300 released. We are spending day 300 in 2003 people!
* added -tl k [tablength] option for regulating (optional) indent.
* Introduced zoemzoem manual page which lists the available
zoem documentation.
* Fixed DOCTYPE declaration for html output, it contained stupid
whitespace/case errors.
* Fixed some XML/HTML syntactic sugar bugs.
* Introduced the concept of alpha-stage new syntax.
alpha-stage syntax is volatile and subject to change.
* \: is now generally described as introducing a pre-processing sequence;
Its main use (and with syntax obeying the principle of Huffman
encoding) is that of introducing comments.
* Retro-actively declared the recently introduced \:\ syntax
to be alpha-stage, and removed it.
Subtle errors could arise when commenting out
macro sequences \foo as \:\foo (removing the newline as well).
\:\ will never be extended preprocessing syntax again.
The functionality previously provided by \:\ is now provided by \:/
(introducing a comment up till and including the newline).
* Added alpha-stage \<foobar!> syntactic sugar for writing HTML-style
single tags such as <br>. Now you can write
\<br!> rather than \@{<br>} -- both result in <br>.
It's alpha stage because perhaps another character might be better.
Opinions, anyone?
* Added \:! preprocessing sequence, and the following rule:
\: followed by whitespace or alphanumerical character or backslash will
always be a regular comment up till and excluding the newline.
\:! will be replaced during preprocessing time by a '\' (backslash).
One use is this:
\verbatim{\protect{\foo
\bar
\:!: this will end up as a comment.
}}
Sun, 12 Oct 2003
* zoem-03-285 released.
* Disabled (by default) \system#3, implemented the --unsafe,
--unsafe-silent, and --system-honor options.
With --unsafe, the user is prompted for each \system#3 invocation.
If prompting is not possible (due to STDIN redirection),
the primitive fails.
With --unsafe-silent, the user is not prompted.
With --system-honor, any \system#3 failure (for whatever reason,
including safe behaviour) is regarded as a zoem failure.
Without --system-honor (i.e. by default), \system#3 failures are
ignored in all modes: safe, unsafe, and unsafe-silent.
* applied/fixed a number of fixes/issues brought forth by Andreas Kahari.
* added \dowhile#2 primitive.
* added \branch#1 primitive, which employs a vararg.
\branch{
{condition1}{branch1}
{condition2}{branch2}
...
{conditionN}{branchN}
{else branch} \: optional
}
* fixed inspect#4 segfaulting bug, and inspect#4 functional bug.
* documented the man macros \genkvp#2 \usekvp#2 \defkvp#3 in man_zmm(7).
* Added \"man::cat" which can optionally be used to set
the category heading for manual pages. If not set, a default
is derived from the \"man::section" macro.
Mon, 22 Sep 2003
* Introduced NAME#2 macro; using this will ensure that the NAME
section is apropos compatible.
* groff-base 1.18.1-10 has an entirely new idea of what a reasonable
right margin is (no less than 2 positions wide). Since zoem adjusted
the line lenght a little, this caused previous zoem output
to have no right margin at all. Consequently, zoem now decreases
the output line length by 2.
* \:\ now introduces a comment that will be stripped up to and including
the newline. All other \: sequences introduce a comment that will
be stripped up to and excluding the newline.
* Eliminated irregular inline file syntax. It now behaves the
same as other primitives taking an argument (the argument
is delimited by balanced curlies).
Tue, 12 Aug 2003
* zoem-03-224 released
* Removed \%snt% syntax in \formatted; replaced by
fully similar \`snt` syntax. It looks better (no :?) and the % syntax
was needed for grape keys (the new name for multi-dimensional data).
* Replaced low-level at directives \# \^ \_ by single \+{} directive.
* Fixed bug in formerly \dfree#1, now \%%%.
* Removed dget#1 dset#2 dsetx#2 dfree#1 dprint#1
Their syntax was assimilated by set#2 def#2 setx#2 defx#2
so that more functional behaviour was obtained with less primitives.
Assigning:
\set{%{a}{b}}{d}.
retrieval now done using
\%{a}{b}
removal done with
\%%{a}{b} [ \%% for the full tree ]
dumping done with
\%%%{a}{b} [ \%%% for the full tree ]
* added \"html::charset" to the generic macros.
Tue, 03 Jun 2003
* zoem-03-166 released.
* began tracking changes in ChangeLog.
|