Merge from emacs-24, up to 2012-04-10T02:06:19Z!larsi@gnus.org
[bpt/emacs.git] / doc / lispintro / ChangeLog
CommitLineData
35dc09a1 12012-04-14 Glenn Morris <rgm@gnu.org>
f48a9cb4
GM
2
3 * Makefile.in: Replace non-portable use of $< in ordinary rules.
4
44e97401
GM
52012-02-28 Glenn Morris <rgm@gnu.org>
6
7 * emacs-lisp-intro.texi: Standardize possessive apostrophe usage.
8
0fd2c9a3
GM
92012-02-17 Glenn Morris <rgm@gnu.org>
10
11 * emacs-lisp-intro.texi (Design @value{COUNT-WORDS}, Syntax)
12 (count-words-in-defun): Fix cross-refs to Emacs manual.
13
cb97cd2a
AS
142012-01-28 Andreas Schwab <schwab@linux-m68k.org>
15
16 * emacs-lisp-intro.texi (Top): Move setting of COUNT-WORDS outside
6df6ae42 17 of @menu. (Bug#10628)
cb97cd2a 18
1ef17681
JB
192012-01-19 Juanma Barranquero <lekktu@gmail.com>
20
21 * emacs-lisp-intro.texi (count-words-in-defun):
22 Add missing parenthesis (bug#10544).
23
7b4b1301
GM
242012-01-17 Glenn Morris <rgm@gnu.org>
25
26 * emacs-lisp-intro.texi (re-search-forward): Fix typo.
27
f8107b79
JB
282011-11-24 Juanma Barranquero <lekktu@gmail.com>
29
30 * makefile.w32-in: Update dependencies.
31
7877f373
JB
322011-11-16 Juanma Barranquero <lekktu@gmail.com>
33
34 * emacs-lisp-intro.texi (etags): Fix typo.
35
33383987
JB
362011-03-07 Chong Yidong <cyd@stupidchicken.com>
37
38 * Version 23.3 released.
39
67ab0163 402011-02-19 Eli Zaretskii <eliz@gnu.org>
e979a521
EZ
41
42 * emacs-lisp-intro.texi: Sync @dircategory with ../../info/dir.
43
53ed5e45
WL
442011-01-23 Werner Lemberg <wl@gnu.org>
45
46 * Makefile.in (MAKEINFO): Now controlled by `configure'.
47 (MAKEINFO_OPTS): New variable. Use it where appropriate.
48 (ENVADD): New variable to control texi2dvi and texi2pdf.
49
ea4f7750
GM
502010-11-13 Glenn Morris <rgm@gnu.org>
51
52 * emacs-lisp-intro.texi: Rename the `count-words-region' example,
53 since there is now a standard command of that name.
54
c12e4a81
GM
552010-10-11 Glenn Morris <rgm@gnu.org>
56
57 * Makefile.in (.dvi.ps): Remove unnecessary suffix rule.
58 (.PHONY): Add ps.
59 (ps, emacs-lisp-intro.ps): New targets.
60 (clean): Delete ps file.
234db610 61 (MAKEINFO): Use --force like the other doc/ Makefiles do.
df187c62 62 Add explicit -I$srcdir.
c12e4a81 63
abd40fb4
GM
642010-10-09 Glenn Morris <rgm@gnu.org>
65
c1dc72b3
GM
66 * Makefile.in (VPATH): Remove.
67 (infodir): Make it absolute.
68 (mkinfodir, $(infodir)/eintr, infoclean): No need to cd $srcdir.
69
4393405b
GM
70 * Makefile.in (dist): Anchor regexps.
71
eef3ab94
GM
72 * Makefile.in (${infodir}/eintr, emacs-lisp-intro.dvi)
73 (emacs-lisp-intro.pdf, emacs-lisp-intro.html): Use $<.
74
aa9db089
GM
75 * Makefile.in (infoclean): Remove harmless, long-standing error.
76
abd40fb4
GM
77 * Makefile.in ($(infodir)): Delete rule.
78 (mkinfodir): New.
79 ($(infodir)/eintr): Use $mkinfodir instead of infodir.
80
ea274122
GM
812010-10-09 Glenn Morris <rgm@gnu.org>
82
83 * Makefile.in (.PHONY): Declare info, dvi, html, pdf, dist.
84
17ca7950
GM
852010-10-07 Glenn Morris <rgm@gnu.org>
86
87 * Makefile.in (version): New, set by configure.
88 (clean): Delete dist tar file.
89 (dist): Use version in tar name.
90
4c83f6e1
GM
912010-10-06 Glenn Morris <rgm@gnu.org>
92
93 * Makefile.in (SHELL): Use /bin/sh, like every other Makefile.in.
94 (INFO_SOURCES, INFO_TARGETS, DVI_TARGETS): Remove variables.
95 ($(infodir), html, pdf, infoclean, dist): New rules.
96 (${infodir}/eintr): Ensure $infodir exists. Use $@.
97 (emacs-lisp-intro.dvi, emacs-lisp-intro.pdf, emacs-lisp-intro.html):
98 Use $^.
99 (.PHONY): Declare clean rules.
100 (mostlyclean): Delete more temp files.
101 (clean): Delete specific dvi, pdf and html files.
102 (maintainer-clean): Use infoclean.
103 (.NOEXPORT): Remove, unused by any other Makefile.in.
104
f06d3d36
GM
1052010-09-21 Glenn Morris <rgm@gnu.org>
106
107 * cons-1.eps, cons-2.eps, cons-2a.eps, cons-3.eps, cons-4.eps:
108 * cons-5.eps, lambda-1.eps, lambda-2.eps, lambda-3.eps:
109 Add first line EPSF magic comment. (Bug#7064)
110
e0e10d9d
GM
1112010-06-23 Glenn Morris <rgm@gnu.org>
112
113 * emacs-lisp-intro.texi: Untabify.
114
61a808e8
CY
1152010-05-07 Chong Yidong <cyd@stupidchicken.com>
116
117 * Version 23.2 released.
118
288f9fc0
CY
1192010-03-10 Chong Yidong <cyd@stupidchicken.com>
120
121 * Branch for 23.2.
122
88c26f5c
GM
1232010-02-16 Glenn Morris <rgm@gnu.org>
124
125 * emacs-lisp-intro.texi: Fix typo in name of `find-tag' command.
126
cd61af01
SM
1272010-02-01 Stefan Monnier <monnier@iro.umontreal.ca>
128
129 * emacs-lisp-intro.texi (Text and Auto-fill, Mode Line):
130 Avoid obsolete special default variables like default-major-mode.
131
03dcfe01
CY
1322009-12-09 David Robinow <drobinow@gmail.com> (tiny change)
133
0235128c 134 * makefile.w32-in: Use parenthesis for macros for nmake compatibility.
03dcfe01 135
31b62755
GM
1362009-12-03 Glenn Morris <rgm@gnu.org>
137
138 * emacs-lisp-intro.texi (Free Software and Free Manuals):
139 Update URL, and remove duplicate text.
140
6e3da0ae
RC
1412009-10-28 Robert J. Chassell <bob@gnu.org>
142
e0880dcf
GM
143 * emacs-lisp-intro.texi: Don't change urlcolor or linkcolor in tex
144 output (not needed and does not work with recent texinfo.tex).
145 Bump edition number.
6e3da0ae 146
45cf6cbd
RC
1472009-10-27 Robert J. Chassell <bob@gnu.org>
148
e0880dcf 149 * emacs-lisp-intro.texi: Bump edition number.
45cf6cbd 150
6bfde5f2
GM
1512009-10-27 Glenn Morris <rgm@gnu.org>
152
153 * cons-1.pdf, cons-2.pdf, cons-2a.pdf, cons-3.pdf, cons-4.pdf:
154 * cons-5.pdf, drawers.pdf, lambda-1.pdf, lambda-2.pdf, lambda-3.pdf:
155 New files, generated from .eps versions with epstopdf.
156 * README: Add copyright information for PDF images.
157
158 * Makefile.in (TEXI2PDF): New variable.
159 (emacs-lisp-intro.pdf): New target.
160
161 * makefile.w32-in (texinfodir, TEXI2PDF): New variables.
162 (ENVADD): Add -I$texinfodir.
163 (emacs-lisp-intro.pdf): New target.
164
6dd28193
CY
1652009-07-28 Chong Yidong <cyd@stupidchicken.com>
166
167 * emacs-lisp-intro.texi (Simple Extension): Bump emacs versions in
168 examples.
169
45d77375
GM
1702009-07-10 Glenn Morris <rgm@gnu.org>
171
172 * emacs-lisp-intro.texi (Top): Add missing @detailmenu entry.
173
fdf93ad9
GM
1742009-07-09 Glenn Morris <rgm@gnu.org>
175
176 * Makefile.in (texinfodir): Rename from usermanualdir, and update.
177
943157cf
GM
1782009-07-06 Glenn Morris <rgm@gnu.org>
179
180 * emacs-lisp-intro.texi (defvar and asterisk): Minor rephrasing.
181
70243478
CY
1822009-06-21 Chong Yidong <cyd@stupidchicken.com>
183
184 * Branch for 23.1.
185
a1539cd7
CY
1862009-06-14 Chong Yidong <cyd@stupidchicken.com>
187
188 * emacs-lisp-intro.texi (edebug): Fix typo.
189
6bd6c2fa
KB
1902009-02-22 Karl Berry <karl@gnu.org>
191
0235128c 192 * emacs-lisp-intro.texi (Default Configuration): Fix dup word "by by".
6bd6c2fa 193
867d4bb3
JB
1942009-02-20 Juanma Barranquero <lekktu@gmail.com>
195
196 * emacs-lisp-intro.texi (current-kill, Code for current-kill)
197 (Body of current-kill): Remove duplicate words.
198
e41dfb1e
GM
1992008-11-19 Glenn Morris <rgm@gnu.org>
200
201 * doclicense.texi: New file.
202 * emacs-lisp-intro.texi: Relicense under FDL 1.3 or later.
203 Include doclicense.texi rather than having license in the file itself.
204
2d7752a0
GM
2052008-10-16 Sean Sieger <sean.sieger@gmail.com> (tiny change)
206
207 * emacs-lisp-intro.texi (Recursion with list): Fix typo.
208
a9097c6d
KB
2092008-10-04 Karl Berry <karl@gnu.org>
210
211 * emacs-lisp-intro.texi: Apply similar formatting changes as for
212 the emacs and lispref manuals, to save pages. A couple minor
213 rewordings and reformatting of code to avoid overfull and
2d7752a0
GM
214 underfull lines.
215 (edition-number): Bump to 3.08.
216 (update-date): Bump to 4 October 2008.
a9097c6d 217
9b4fb9b7
EZ
2182008-06-20 Eli Zaretskii <eliz@gnu.org>
219
220 * makefile.w32-in (distclean): Remove makefile.
221
bebcd7f7
GM
2222008-06-16 Glenn Morris <rgm@gnu.org>
223
224 * Makefile.am, Makefile.old, aclocal.m4, configure, configure.in:
225 * install-sh, missing, mkinstalldirs: Remove obsolete files.
226
6dc64eeb
CY
2272008-05-13 Chong Yidong <cyd@stupidchicken.com>
228
229 * emacs-lisp-intro.texi (Lisp Atoms): Rephrase "in addition" to
230 avoid confusion with addition operation discussed in previous
231 paragraph.
232
868a6b71
RC
2332008-01-31 Robert J. Chassell <bob@rattlesnake.com>
234
235 * emacs-lisp-intro.texi: Update back cover text.
236
1df454a0
RC
2372007-09-12 Robert J. Chassell <bob@rattlesnake.com>
238
6fbbfef4 239 * emacs-lisp-intro.texi: Add email address to Thank You correctly.
1df454a0 240
5e6876cb
RF
2412007-09-06 Romain Francoise <romain@orebokech.com>
242
243 * Makefile.in (maintainer-clean): Delete info files.
244
8cda6f8f
GM
2452007-09-06 Glenn Morris <rgm@gnu.org>
246
ef158dcd 247 Move from lispintro/ to doc/lispintro/.
8cda6f8f
GM
248 * Makefile.in (infodir): Go up one more level.
249 (usermanualdir): Change from ../man to ../emacs.
250 * makefile.w32-in (infodir, ENVADD): Go up one more level.
251 * emacs-lisp-intro.texi (setfilename): Go up one more level.
252
2532007-07-30 Robert J. Chassell <bob@rattlesnake.com>
254
255 * emacs-lisp-intro.texi: Fix typo on line 5173, change `thee' to
256 `these'.
257
2582007-07-25 Glenn Morris <rgm@gnu.org>
259
260 * Relicense all FSF files to GPLv3 or later.
261
2622007-06-02 Chong Yidong <cyd@stupidchicken.com>
263
264 * Version 22.1 released.
265
2662007-01-30 Robert J. Chassell <bob@rattlesnake.com>
267
268 * emacs-lisp-intro.texi (else): Rephrase message of first
269 if-then-else example so it is right both in itself and in the
270 "true" case of the expression, which asks whether 4 is greater
271 than 5.
272
2732006-11-27 Andreas Schwab <schwab@suse.de>
274
275 * Makefile.in (usermanualdir): Define.
276 (emacs-lisp-intro.dvi): Pass -I options to texi2dvi instead of
277 using TEXINPUTS.
278
279 * emacs-lisp-intro.texi: Input texinfo instead of ../man/texinfo
280 to fix building outside source directory.
281
2822006-11-09 Robert J. Chassell <bob@rattlesnake.com>
283
284 * emacs-lisp-intro.texi: Copy descriptions from detailed master
285 menu to menus within body.
286
6fbbfef4 287 * emacs-lisp-intro.texi (at the beginning): Add `other shell
8cda6f8f
GM
288 commands' to produce additional output formats; total is now ten.
289 (A Loop with an Incrementing Counter, and others): Ensure Info
290 menus will appear in short windows.
291 (Disentangle beginning-of-buffer): Replace `version 21' with `more
292 recent versions'.
293 (Simple Extension): Show how to handle multiple versions by adding
6fbbfef4 294 an alternative with a test of `>= 21'.
8cda6f8f
GM
295
2962006-11-06 Robert J. Chassell <bob@rattlesnake.com>
297
298 * emacs-lisp-intro.texi: Finish minor changes seen from DVI output.
299 Replace 22.1.100 with 22.1.1.
300 (current-kill): Mention functions that directly or indirectly call
301 `kill-new', which sets `kill-ring-yank-pointer'.
302 (Understanding current-kill): Change `lasted' to `last'. Remove
303 extraneous parenthesis. Reword item about returning `car' of list.
304 (yank): Remove mention of `rotate-yank-pointer'.
305 (Y Axis Element): Add comment regarding replacement of blank space.
306 (print-Y-axis Penultimate): Explain that `print-graph' will pass
307 `height-of-top-line' so `print-Y-axis' does not have a bug.
308
3092006-11-05 Robert J. Chassell <bob@rattlesnake.com>
310
311 * emacs-lisp-intro.texi: Yet more minor changes:
312 (defcustom): Said that `:options' is usually for a hook. Remove
313 extraneous space in parenthetical remark concerning
314 `text-mode-hook-identify'. At end, mention other defines, too.
315 (Beginning a .emacs File): Reverse words about comments so they
316 parallel numbers of listed semi-colons.
317 (Text and Auto-fill): Remove extraneous blank line in example.
318 (Mail Aliases): Remove extraneous blank line in example.
319 (Keybindings): Reformat as needed with `key' rather than `kbd'.
320 (Keybindings, Miscellaneous, Mode Line): For small book format, start
321 section name on top of new page.
322 (Simple Extension): Replace longer expression with
323 `emacs-major-version'. Remove comment about `number-to-string'
324 function.
c4cc8b9a 325 (Miscellaneous): Add filename option, `-H', to `grep' example.
6fbbfef4 326 (debug, debug-on-entry): Replace `GNU Emacs 22' with `a recent
8cda6f8f
GM
327 GNU Emacs'.
328 (edebug): More properly state where to place point for 'M-x
329 edebug-defun'.
330
331 * emacs-lisp-intro.texi: More minor changes.
332 Center images for TeX output.
6fbbfef4 333 (kill-new function): Remove indentation for sentence talking about
8cda6f8f 334 momentarily skipping code.
6fbbfef4 335 (cons & search-fwd Review): Document @code{funcall}. Document
8cda6f8f
GM
336 @code{re-search-forward} with existing @code{search-forward}.
337 Reference chapter on regular expression searches.
338 (Recursion with list): Specify a more recent version as being Emacs.
6fbbfef4 339 (Recursion with list, Every, recursive-graph-body-print): Change
8cda6f8f
GM
340 `if ... progn' expression to `when'.
341 (Recursive triangle function): For printing in small book, ensure
342 section name is not last on bottom of preceding page.
343 (Keep): Remove extraneous space in function definition example.
344 (sentence-end): Specify `in English' for glyphs that end a sentence.
345 Note that in GNU Emacs 22, the name refers to both a variable and a
346 function.
c4cc8b9a 347 (fwd-sentence while loops): Write a function as one, not as a form.
8cda6f8f
GM
348 (fwd-para let): Add `which' to sentence with `parstart' and `parsep'.
349 (etags): Move sentences involving `find-tag' and sources. State
350 location of Emacs `src' directory.
6fbbfef4 351 (Design count-words-region): Better explain two backslashes in a row.
8cda6f8f
GM
352 (Find a File): Fix grammar; add a `to' and write `to visit'. Change
353 `named' to `selected'.
354 (lengths-list-file): Remove extraneous parenthesis from reference.
355 (lengths-list-many-files): Explain `expand-file-name' better.
356 (Files List): Rephrase sentence regarding Lisp sources directory
357
3582006-11-04 Robert J. Chassell <bob@rattlesnake.com>
359
360 * emacs-lisp-intro.texi: Replace 22.0.100 with 22.1.100.
361 (defcustom): Note that the value set by defconst is a variable.
362 (Buffer Size & Locations): Parenthetical remark about evaluation.
363 (Finding More): Change text to include C sources by inference.
364
365 * emacs-lisp-intro.texi: Minor fixes.
366 Replace all tabs with eight spaces each so printed text looks correct.
367 Remove extraneous comma in a printed node name produced by `ref'.
368 (insert-buffer): Add a missing beginning parenthesis.
369 (beginning-of-buffer): Add `beginning of' to note about accessible
370 portion.
371 (narrow Exercise): Write closing parenthesis at end of correct
372 paragraph.
373 (zap-to-char): Remove extraneous `a' from first sentence.
374 (Complete zap-to-char): Remove two extraneous sentences.
375 (zap-to-char body): Move sentences on documentation two nodes earlier.
376 (Lisp macro): Add definition of `unless' macro.
377 (last-command & this-command): Remove comment that `we have not yet
378 seen' the @code{eq} function.
379 (kill-append function): Reformat `kill-append' function definition so
380 it prints well.
381 (kill-new function): Indent the sentence beginning `notice'. Replace
382 `the same as' with `similar to'. Repair typo. Remove obsolete
383 references to `yank' and `yank-pop. End section with a note that `we
384 will digress into C.'
385
3862006-11-02 Robert J. Chassell <bob@rattlesnake.com>
387
388 * emacs-lisp-intro.texi (kill-ring-yank-pointer): Revert addition
389 of extraneous quotation mark to rotate-yank-pointer.
390
3912006-11-01 Juri Linkov <juri@jurta.org>
392
393 * emacs-lisp-intro.texi: Fix unbalanced quotes.
394
3952006-10-31 Robert J. Chassell <bob@rattlesnake.com>
396
397 * emacs-lisp-intro.texi: Revised text for kill-region,
398 copy-region-as-kill, kill-append, kill-new, forward-sentence,
399 forward-paragraph, find-file, current-kill, yank, and yank-pop.
400 Removed INSTALL MANIFEST from the directory since those files are
401 now irrelevant. Updated Info file in ../info. Changed numbering
402 so is now Revised Third Edition and this instance's edition-number
403 is 3.00. Did not update ISBN number.
404
405 * emacs-lisp-intro.texi: Remove version reference for X colors.
6fbbfef4 406 Document `='. Remove mention that :eval was new in 21. Updated
8cda6f8f
GM
407 instance's edition-number to 3.01.
408
4092006-10-30 Robert J. Chassell <bob@rattlesnake.com>
410
6fbbfef4 411 * emacs-lisp-intro.texi: Many changes since it turned out that
8cda6f8f
GM
412 many `simple' functions were rewritten. Changes to the text
413 regarding zap-to-char, mark-whole-buffer, append-to-buffer,
414 copy-to-buffer, beginning-of-buffer, what-line, and possibly
415 others. (I have not reviewed all yet.) This instance does build
416 for Info and TeX.
417
4182006-10-29 Chong Yidong <cyd@stupidchicken.com>
419
420 * Makefile.in: Use relative paths to avoid advertising filesystem
421 contents during compilation.
422
4232006-08-21 Robert J. Chassell <bob@rattlesnake.com>
424
6fbbfef4 425 * emacs-lisp-intro.texi: Deleted in directory copy of texinfo.tex
4e2af782
JB
426 and pointed towards ../man/texinfo.tex so only one file
427 needs updating. Added comment of what to do when building on own.
8cda6f8f 428
6fbbfef4 429 * texinfo.tex: Changed to version 2006-02-13.16
4e2af782 430 to enable a DVI build using the more recent versions of TeX.
8cda6f8f
GM
431
4322006-05-25 David Kastrup <dak@gnu.org>
433
6fbbfef4 434 * emacs-lisp-intro.texi (setcar): Replace an antelope rather than
8cda6f8f
GM
435 a giraffe with a hippopotamus.
436
4372006-05-19 Thien-Thi Nguyen <ttn@gnu.org>
438
439 * emacs-lisp-intro.texi (Digression concerning error): Fix typo.
440
4412005-09-16 Romain Francoise <romain@orebokech.com>
442
443 * emacs-lisp-intro.texi (GNU Free Documentation License):
444 Specify GFDL version 1.2.
445
4462005-07-30 Eli Zaretskii <eliz@gnu.org>
447
448 * makefile.w32-in (info): Don't run install-info.
449 ($(infodir)/dir): New target, produced by running install-info.
450
4512005-07-04 Lute Kamstra <lute@gnu.org>
452
453 Update FSF's address in GPL notices.
454
455 * emacs-lisp-intro.texi: Update FSF's address.
456
4572004-04-23 Juanma Barranquero <lektu@terra.es>
458
459 * makefile.w32-in: Add "-*- makefile -*-" mode tag.
460
4612004-02-29 Juanma Barranquero <lektu@terra.es>
462
6fbbfef4
JB
463 * makefile.w32-in (mostlyclean, clean, maintainer-clean):
464 Use $(DEL) instead of rm, and ignore exit code.
8cda6f8f
GM
465
4662003-11-16 Kevin Ryde <user42@zip.com.au>
467
468 * emacs-lisp-intro.texi: [CVS commitment by <bob@rattlesnake.com>]
c4cc8b9a 469 Corrections to cross references.
8cda6f8f
GM
470 (Interactive Options): elisp "interactive" -> "Using Interactive".
471 (defvar and asterisk): Remove emacs "Edit Options" reference,
472 edit-options is no longer described in the emacs manual.
473 (Lists diagrammed): elisp "List Type" -> "Cons Cell Type".
474
4752003-09-03 Peter Runestig <peter@runestig.com>
476
477 * makefile.w32-in: New file.
478
4792001-11-29 Eli Zaretskii <eliz@is.elta.co.il>
480
481 * emacs-lisp-intro.texi (Index): @ignore extraneous text.
482 Use @dircategory and @direntry to define the DIR entry.
483
4842001-11-25 Robert J. Chassell <bob@rattlesnake.com>
485
486 * emacs-lisp-intro.texi: Move @contents to the beginning of the
487 file. Set the size to @smallbook.
488
4892001-11-24 Eli Zaretskii <eliz@is.elta.co.il>
490
491 * Makefile.in: New file.
492
493 * README: Update.
494
495 * *.eps: Rename to avoid clashes in DOS 8+3 namespace.
496
497;; Local Variables:
c8763fb6 498;; coding: utf-8
8cda6f8f
GM
499;; End:
500
acaf905b 501 Copyright (C) 2001-2012 Free Software Foundation, Inc.
8cda6f8f
GM
502
503 This file is part of GNU Emacs.
504
8ae3715e 505 GNU Emacs is free software: you can redistribute it and/or modify
8cda6f8f 506 it under the terms of the GNU General Public License as published by
8ae3715e
GM
507 the Free Software Foundation, either version 3 of the License, or
508 (at your option) any later version.
8cda6f8f
GM
509
510 GNU Emacs is distributed in the hope that it will be useful,
511 but WITHOUT ANY WARRANTY; without even the implied warranty of
512 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
513 GNU General Public License for more details.
514
515 You should have received a copy of the GNU General Public License
8ae3715e 516 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.