From c2507c393be58e399f8e877ceb4b7bcf2d5fb627 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Sat, 29 Jun 2019 18:45:13 +0200
Subject: [PATCH] Add missing legalese.

* Makefile.am (DOC_SNARF_HEADER): New define.
(doc-snarf-hello-emacsy, doc-snarf-api): Use it.
* build-aux/pre-inst-env.in: Add copyright and license.
* test/coroutine.scm: Likewise.
* todo.org: Likewise.
* test/job.scm: Likewise.
* doc/images/README: Specify all files by name.
* doc/api.texi: Regenerate.
* doc/hello-emacsy.texi: Likewise.
---
 Makefile.am               |  20 ++-
 build-aux/pre-inst-env.in |  18 +++
 doc/api.texi              | 292 ++++++++++++++++++++++----------------
 doc/hello-emacsy.texi     |  29 ++--
 doc/images/README         |  26 +++-
 emacsy/core.scm           |   2 +
 test/coroutine.scm        |  21 ++-
 test/job.scm              |  23 ++-
 todo.org                  |  32 +++--
 9 files changed, 313 insertions(+), 150 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 5dbdf19..96d3c8a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -204,12 +204,28 @@ dist_doc_DATA = doc/emacsy.pdf
 endif
 
 DOC_SNARF = $(top_builddir)/pre-inst-env $(GUILD) doc-snarf
+define DOC_SNARF_HEADER
+@c Generated by doc-snarf, do not edit.
+
+@c Copyright (C) 2012, 2013 Shane Celis <shane.celis@gmail.com>
+@c Copyright (C) 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3 or
+@c any later version published by the Free Software Foundation; with no
+@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+@c copy of the license is included in the section entitled ``GNU Free
+@c Documentation License''.
+
+endef
+export DOC_SNARF_HEADER
+
 doc-snarf:
 	@$(MAKE) --quiet doc-snarf-hello-emacsy > doc/hello-emacsy.texi
 	@$(MAKE) --quiet doc-snarf-api > doc/api.texi
 
 doc-snarf-hello-emacsy:
-	@echo @c Generated by doc-snarf, do not edit.
+	@echo "$$DOC_SNARF_HEADER"
 	@for i in				\
                 example/hello-emacsy.c		\
 	; do					\
@@ -228,7 +244,7 @@ doc-snarf-hello-emacsy:
 	done
 
 doc-snarf-api:
-	@echo @c Generated by doc-snarf, do not edit.
+	@echo "$$DOC_SNARF_HEADER"
 	@for i in				\
                 emacsy/emacsy.c			\
 	; do					\
diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in
index ecfdc2b..6487104 100755
--- a/build-aux/pre-inst-env.in
+++ b/build-aux/pre-inst-env.in
@@ -1,5 +1,23 @@
 #! @BASH@
 
+# Emacsy --- An embeddable Emacs-like library using  GNU Guile.
+# Copyright (C) 2019 Jan Nieuwenhuizen <janneke@gnu.org>
+#
+# This file is part of Emacsy.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 # Usage: ./pre-inst-env COMMAND ARG...
 #
 # Run COMMAND in a pre-installation environment.  Typical use is
diff --git a/doc/api.texi b/doc/api.texi
index 1202634..2bad254 100644
--- a/doc/api.texi
+++ b/doc/api.texi
@@ -1,5 +1,16 @@
 @c Generated by doc-snarf, do not edit.
 
+@c Copyright (C) 2012, 2013 Shane Celis <shane.celis@gmail.com>
+@c Copyright (C) 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3 or
+@c any later version published by the Free Software Foundation; with no
+@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+@c copy of the license is included in the section entitled ``GNU Free
+@c Documentation License''.
+
+
 @c snarfed from emacsy/emacsy.c:32
 
 @node C Api
@@ -835,47 +846,47 @@ Emacs' concepts of buffer, window, and mode are directly analogous to
 the model, view, and controller respectively---the MVC pattern.
 
 
-@c snarfed from emacsy/buffer.scm:50
+@c snarfed from emacsy/buffer.scm:78
 @defmac with-buffer @dots{}
 A convenience macro to work with a given buffer.
 @end defmac
 
-@c snarfed from emacsy/buffer.scm:64
+@c snarfed from emacsy/buffer.scm:92
 @defmac save-excursion @dots{}
 A convenience macro to do some work
 @end defmac
 
-@c snarfed from emacsy/buffer.scm:82
+@c snarfed from emacsy/buffer.scm:108
 @deftp {Class} <buffer>
 
 @end deftp
 
-@c snarfed from emacsy/buffer.scm:87
+@c snarfed from emacsy/buffer.scm:113
 @defvar before-buffer-change-hook
 
 @end defvar
 
-@c snarfed from emacsy/buffer.scm:90
+@c snarfed from emacsy/buffer.scm:116
 @defvar after-buffer-change-hook
 
 @end defvar
 
-@c snarfed from emacsy/buffer.scm:96
+@c snarfed from emacsy/buffer.scm:122
 @defvar buffer-stack
 
 @end defvar
 
-@c snarfed from emacsy/buffer.scm:99
+@c snarfed from emacsy/buffer.scm:125
 @defvar last-buffer
 
 @end defvar
 
-@c snarfed from emacsy/buffer.scm:102
+@c snarfed from emacsy/buffer.scm:128
 @defvar aux-buffer
 
 @end defvar
 
-@c snarfed from emacsy/buffer.scm:105
+@c snarfed from emacsy/buffer.scm:131
 @deffn {Scheme Procedure} buffer-name
 Buffer's have a name, and there is always a current buffer or it's
 false.  Note that methods do not work as easily with optional
@@ -883,112 +894,117 @@ arguments.  It seems best to define each method with a different
 number of arguments as shown below.
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:112
+@c snarfed from emacsy/buffer.scm:138
 @deffn {Scheme Procedure} buffer-name (buffer <buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:116
+@c snarfed from emacsy/buffer.scm:142
 @deffn {Scheme Procedure} set-buffer-name! name
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:120
+@c snarfed from emacsy/buffer.scm:146
 @deffn {Scheme Procedure} set-buffer-name! name (buffer <buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:124
+@c snarfed from emacsy/buffer.scm:150
 @deffn {Scheme Procedure} buffer-modified?
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:128
+@c snarfed from emacsy/buffer.scm:154
 @deffn {Scheme Procedure} buffer-modified-tick
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:132
+@c snarfed from emacsy/buffer.scm:158
 @deffn {Scheme Procedure} write (obj <buffer>) port
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:139
+@c snarfed from emacsy/buffer.scm:165
 @deffn {Scheme Procedure} current-local-map
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:143
+@c snarfed from emacsy/buffer.scm:169
 @deffn {Scheme Procedure} use-local-map keymap
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:147
+@c snarfed from emacsy/buffer.scm:173
 @deffn {Scheme Procedure} buffer-list
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:151
+@c snarfed from emacsy/buffer.scm:177
 @deffn {Scheme Procedure} current-buffer
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:155
+@c snarfed from emacsy/buffer.scm:181
 @deffn {Scheme Procedure} add-buffer! buffer
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:159
+@c snarfed from emacsy/buffer.scm:185
 @deffn {Scheme Procedure} remove-buffer! buffer
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:163
+@c snarfed from emacsy/buffer.scm:195
 @deffn {Interactive Procedure} next-buffer  #:optional (incr 1)
 @kindex next-buffer  #:optional (incr 1)
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:167
+@c snarfed from emacsy/buffer.scm:199
 @deffn {Interactive Procedure} prev-buffer  #:optional (incr 1)
 @kindex prev-buffer  #:optional (incr 1)
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:171
+@c snarfed from emacsy/buffer.scm:203
 @deffn {Scheme Procedure} set-buffer! buffer
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:175
+@c snarfed from emacsy/buffer.scm:207
 This is scary, we will override it when we have <text-buffer>.
 
-@c snarfed from emacsy/buffer.scm:180
-@deffn {Interactive Procedure} other-buffer  #:optional (count 1)
-@kindex other-buffer  #:optional (count 1)
+@c snarfed from emacsy/buffer.scm:212
+@deffn {Scheme Procedure} other-buffer!  #:optional (incr 1)
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:202
+@c snarfed from emacsy/buffer.scm:239
 @defvar switch-to-buffer
 
 @end defvar
 
-@c snarfed from emacsy/buffer.scm:205
+@c snarfed from emacsy/buffer.scm:242
 @deffn {Scheme Procedure} local-var-ref symbol
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:212
+@c snarfed from emacsy/buffer.scm:249
 @deffn {Scheme Procedure} local-var-set! symbol value
 
 @end deffn
 
-@c snarfed from emacsy/buffer.scm:216
+@c snarfed from emacsy/buffer.scm:253
 @defvar local-var
 
 @end defvar
 
+@c snarfed from emacsy/buffer.scm:257
+@deffn {Scheme Procedure} emacsy-mode-line
+
+method
+@end deffn
+
 @node Mru-stack
 @subsection Mru-stack
 
@@ -1321,73 +1337,83 @@ may override these, for efficiency or otherwise.
 @end deffn
 
 @c snarfed from emacsy/text.scm:302
+@deffn {Scheme Procedure} buffer:set-mark (buffer <buffer>) pos
+
+@end deffn
+
+@c snarfed from emacsy/text.scm:306
+@deffn {Scheme Procedure} buffer:mark (buffer <buffer>)
+
+@end deffn
+
+@c snarfed from emacsy/text.scm:310
 @subsection Editing for Gap Buffer
 
-@c snarfed from emacsy/text.scm:313
+@c snarfed from emacsy/text.scm:321
 @var{<text-buffer>} inherits from buffer and implements the simplest
 text editing for the Gap Buffer.
 
-@c snarfed from emacsy/text.scm:321
+@c snarfed from emacsy/text.scm:329
 @deffn {Scheme Procedure} buffer:buffer-string (buffer <text-buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:325
+@c snarfed from emacsy/text.scm:333
 @deffn {Scheme Procedure} buffer:goto-char (buffer <text-buffer>) pos
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:329
+@c snarfed from emacsy/text.scm:337
 @deffn {Scheme Procedure} buffer:point (buffer <text-buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:333
+@c snarfed from emacsy/text.scm:341
 @deffn {Scheme Procedure} buffer:point-min (buffer <text-buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:337
+@c snarfed from emacsy/text.scm:345
 @deffn {Scheme Procedure} buffer:point-max (buffer <text-buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:341
+@c snarfed from emacsy/text.scm:349
 @deffn {Scheme Procedure} buffer:set-mark (buffer <text-buffer>) pos
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:345
+@c snarfed from emacsy/text.scm:353
 @deffn {Scheme Procedure} buffer:mark (buffer <text-buffer>)
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:349
+@c snarfed from emacsy/text.scm:357
 @deffn {Scheme Procedure} buffer:char-before (buffer <text-buffer>) point
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:353
+@c snarfed from emacsy/text.scm:361
 @deffn {Scheme Procedure} buffer:char-after (buffer <text-buffer>) pos
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:357
+@c snarfed from emacsy/text.scm:365
 @deffn {Scheme Procedure} buffer:insert-string (buffer <text-buffer>) string
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:361
+@c snarfed from emacsy/text.scm:369
 @deffn {Scheme Procedure} buffer:insert-char (buffer <text-buffer>) char
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:365
+@c snarfed from emacsy/text.scm:373
 @deffn {Scheme Procedure} buffer:delete-char (buffer <text-buffer>) n
 
 @end deffn
 
-@c snarfed from emacsy/text.scm:369
+@c snarfed from emacsy/text.scm:377
 @deffn {Scheme Procedure} buffer:delete-region (buffer <text-buffer>) start end
 
 @end deffn
@@ -1399,174 +1425,194 @@ offers @verb{|TAB|} completion and history.  The implementation of it
 inherits from the @var{<text-buffer>}.
 
 
-@c snarfed from emacsy/minibuffer.scm:57
+@c snarfed from emacsy/minibuffer.scm:60
 @deftp {Class} <minibuffer>
 
 @end deftp
 
-@c snarfed from emacsy/minibuffer.scm:61
+@c snarfed from emacsy/minibuffer.scm:64
 @defvar minibuffer-local-map
 We define a keymap with all the typical self-insert-commands that
 would be expected in an editable buffer
 @c .\todo{This should probably be defined in the buffer module since it is general.}
 @end defvar
 
-@c snarfed from emacsy/minibuffer.scm:70
+@c snarfed from emacsy/minibuffer.scm:73
 @defvar minibuffer
 
 @end defvar
 
-@c snarfed from emacsy/minibuffer.scm:73
+@c snarfed from emacsy/minibuffer.scm:76
 @defvar emacsy-display-minibuffer?
 
 @end defvar
 
-@c snarfed from emacsy/minibuffer.scm:77
+@c snarfed from emacsy/minibuffer.scm:80
 @defvar ticks-per-second
 
 @end defvar
 
-@c snarfed from emacsy/minibuffer.scm:87
+@c snarfed from emacsy/minibuffer.scm:90
 @defvar minibuffer-history
 
 @end defvar
 
-@c snarfed from emacsy/minibuffer.scm:96
+@c snarfed from emacsy/minibuffer.scm:99
 When we show the minibuffer, we'll show the prompt, the contents (user
 editable), and the minibuffer-message if applicable.
 
-@c snarfed from emacsy/minibuffer.scm:100
+@c snarfed from emacsy/minibuffer.scm:103
 @deffn {Scheme Procedure} buffer:buffer-string (buffer <minibuffer>)
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:103
+@c snarfed from emacsy/minibuffer.scm:106
 @deffn {Scheme Procedure} minibuffer-contents  #:optional (buffer minibuffer)
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:107
+@c snarfed from emacsy/minibuffer.scm:110
 @deffn {Scheme Procedure} delete-minibuffer-contents  #:optional (buffer minibuffer)
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:143
+@c snarfed from emacsy/minibuffer.scm:146
 @deffn {Scheme Procedure} minibuffer-message string . args
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:147
+@c snarfed from emacsy/minibuffer.scm:150
 @subsection read-from-minibuffer
 
-@c snarfed from emacsy/minibuffer.scm:150
+@c snarfed from emacsy/minibuffer.scm:153
 history can be #f, a symbol, or a <cursor-list>.
 
-@c snarfed from emacsy/minibuffer.scm:248
+@c snarfed from emacsy/minibuffer.scm:251
 @deffn {Scheme Procedure} try-completion string collection  #:optional (predicate (const #t))
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:252
+@c snarfed from emacsy/minibuffer.scm:255
 @deffn {Scheme Procedure} all-completions string collection  #:optional (predicate (const #t))
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:256
+@c snarfed from emacsy/minibuffer.scm:259
 @deffn {Scheme Procedure} collection->completer collection  #:optional (predicate (const #t))
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:266
+@c snarfed from emacsy/minibuffer.scm:269
 @deffn {Scheme Procedure} completing-read prompt collection  #:key predicate (const #t) (require-match? #f) (initial-input #f) (history (what-command-am-i?)) (to-string #f)
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:296
+@c snarfed from emacsy/minibuffer.scm:299
 @deffn {Scheme Procedure} apropos-module rgx module
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:300
+@c snarfed from emacsy/minibuffer.scm:303
 @deffn {Scheme Procedure} command-completion-function text cont?
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:318
-We want to be able to look up filenames.
-
 @c snarfed from emacsy/minibuffer.scm:321
+We want to be able to look up file names.
+
+@c snarfed from emacsy/minibuffer.scm:324
+@deffn {Scheme Procedure} expand-file-name file-name
+
+@end deffn
+
+@c snarfed from emacsy/minibuffer.scm:335
 @deffn {Scheme Procedure} files-in-dir dirname
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:377
+@c snarfed from emacsy/minibuffer.scm:382
+@deffn {Scheme Procedure} canonize-file-name name
+
+@end deffn
+
+@c snarfed from emacsy/minibuffer.scm:401
 @deffn {Scheme Procedure} read-file-name prompt  #:key dir default-file-name initial predicate history
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:392
+@c snarfed from emacsy/minibuffer.scm:417
+@defvar default-directory
+
+@end defvar
+
+@c snarfed from emacsy/minibuffer.scm:420
+@defvar file-name-completion-function
+
+@end defvar
+
+@c snarfed from emacsy/minibuffer.scm:424
 @subsection Minibuffer History
 
-@c snarfed from emacsy/minibuffer.scm:395
+@c snarfed from emacsy/minibuffer.scm:427
 @deffn {Scheme Procedure} make-history  #:optional (list (quote )) (index #f)
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:401
+@c snarfed from emacsy/minibuffer.scm:433
 @deffn {Scheme Procedure} history-insert! history value
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:405
+@c snarfed from emacsy/minibuffer.scm:437
 @deffn {Scheme Procedure} history-ref history
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:409
+@c snarfed from emacsy/minibuffer.scm:441
 @deffn {Scheme Procedure} history-set! history value
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:413
+@c snarfed from emacsy/minibuffer.scm:445
 @deffn {Interactive Procedure} exit-minibuffer
 @kindex exit-minibuffer
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:417
+@c snarfed from emacsy/minibuffer.scm:450
 @deffn {Interactive Procedure} minibuffer-complete
 @kindex minibuffer-complete
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:421
+@c snarfed from emacsy/minibuffer.scm:454
 @deffn {Interactive Procedure} next-match
 @kindex next-match
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:425
+@c snarfed from emacsy/minibuffer.scm:458
 @deffn {Interactive Procedure} previous-match
 @kindex previous-match
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:429
+@c snarfed from emacsy/minibuffer.scm:462
 @deffn {Interactive Procedure} minibuffer-complete-word
 @kindex minibuffer-complete-word
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:433
+@c snarfed from emacsy/minibuffer.scm:466
 @deffn {Interactive Procedure} minibuffer-completion-help
 @kindex minibuffer-completion-help
 
 @end deffn
 
-@c snarfed from emacsy/minibuffer.scm:437
+@c snarfed from emacsy/minibuffer.scm:470
 Some commands for manipulating the minibuffer history.
 
-@c snarfed from emacsy/minibuffer.scm:440
+@c snarfed from emacsy/minibuffer.scm:473
 @deffn {Interactive Procedure} previous-history-element  #:optional (n 1)
 @kindex previous-history-element  #:optional (n 1)
 
@@ -1579,124 +1625,111 @@ Now we're going to put in place some core functionality that makes
 Emacsy an Emacs-like library.
 
 
-@c snarfed from emacsy/core.scm:71
+@c snarfed from emacsy/core.scm:72
 @defvar global-map
 We need a global keymap.
 @end defvar
 
-@c snarfed from emacsy/core.scm:74
+@c snarfed from emacsy/core.scm:75
 @defvar special-event-map
 
 @end defvar
 
-@c snarfed from emacsy/core.scm:77
+@c snarfed from emacsy/core.scm:78
 @defvar emacsy-quit-application?
 
 @end defvar
 
-@c snarfed from emacsy/core.scm:86
+@c snarfed from emacsy/core.scm:87
 @defvar messages
 
 @end defvar
 
-@c snarfed from emacsy/core.scm:95
+@c snarfed from emacsy/core.scm:96
 @defvar emacsy-send-mouse-movement-events?
 Sometimes we may want to track the motion events generated by a mouse.
 We don't do this all the time because it seems unnecessarily taxing.
 @end defvar
 
-@c snarfed from emacsy/core.scm:102
+@c snarfed from emacsy/core.scm:103
 @deffn {Scheme Procedure} current-active-maps
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:107
+@c snarfed from emacsy/core.scm:108
 @deffn {Scheme Procedure} universal-argument-ref
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:111
+@c snarfed from emacsy/core.scm:112
 @deffn {Scheme Procedure} universal-argument-pop!
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:115
+@c snarfed from emacsy/core.scm:116
 @deffn {Scheme Procedure} universal-argument-push! arg
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:119
+@c snarfed from emacsy/core.scm:120
 @deffn {Interactive Procedure} switch-to-buffer  #:optional buffer
 @kindex switch-to-buffer  #:optional buffer
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:171
+@c snarfed from emacsy/core.scm:172
 @deffn {Scheme Procedure} emacsy-echo-area
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:175
+@c snarfed from emacsy/core.scm:176
 @deffn {Scheme Procedure} current-message
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:179
+@c snarfed from emacsy/core.scm:180
 @deffn {Scheme Procedure} emacsy-message . args
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:186
+@c snarfed from emacsy/core.scm:187
 @deffn {Scheme Procedure} clear-echo-area
 When the minibuffer is entered, we want to clear the echo-area.
 Because the echo-area is defined in core, it seems best to deal with
 it in core rather than placing echo-area handling code in minibuffer.
 @end deffn
 
-@c snarfed from emacsy/core.scm:192
+@c snarfed from emacsy/core.scm:193
 @deffn {Scheme Procedure} emacsy-message-or-echo-area
 These are most of the C API calls.
 @end deffn
 
-@c snarfed from emacsy/core.scm:196
-@deffn {Scheme Procedure} emacsy-mode-line
-
-method
-@end deffn
-
-@c snarfed from emacsy/core.scm:201
-@deffn {Scheme Procedure} emacsy-mode-line (buffer <buffer>)
-
-method
-XXX this should be moved into the (emacsy buffer) module.
-@end deffn
-
-@c snarfed from emacsy/core.scm:207
+@c snarfed from emacsy/core.scm:197
 @deffn {Scheme Procedure} emacsy-minibuffer-point
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:211
+@c snarfed from emacsy/core.scm:201
 @deffn {Scheme Procedure} emacsy-run-hook hook . args
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:217
+@c snarfed from emacsy/core.scm:207
 @deffn {Scheme Procedure} emacsy-terminate
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:221
+@c snarfed from emacsy/core.scm:211
 @deffn {Scheme Procedure} emacsy-tick
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:275
+@c snarfed from emacsy/core.scm:265
 @deffn {Scheme Procedure} emacsy-initialize interactive?
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:279
+@c snarfed from emacsy/core.scm:269
 @deffn {Interactive Procedure} eval-expression  #:optional epression
 @kindex eval-expression  #:optional epression
 There is one command that I consider fundamental for an Emacs-like
@@ -1706,20 +1739,20 @@ it may have Emacs-like key bindings, but it's not Emacs-like.  That
 command is [[eval-expression]].  Let's write it.
 @end deffn
 
-@c snarfed from emacsy/core.scm:291
+@c snarfed from emacsy/core.scm:281
 @deffn {Interactive Procedure} execute-extended-command  #:optional (n 1)
 @kindex execute-extended-command  #:optional (n 1)
 The second fundamental command is [[execute-extended-command]] invoked
 with @verb{|M-x|}.
 @end deffn
 
-@c snarfed from emacsy/core.scm:296
+@c snarfed from emacsy/core.scm:286
 @deffn {Interactive Procedure} quit-application
 @kindex quit-application
 
 @end deffn
 
-@c snarfed from emacsy/core.scm:300
+@c snarfed from emacsy/core.scm:290
 @deffn {Interactive Procedure} universal-argument
 @kindex universal-argument
 This [[universal-argument]] command is written using a different style
@@ -1732,19 +1765,25 @@ instance, if the minibuffer were written in this style, one could
 invoke recursive minibuffers.
 @end deffn
 
-@c snarfed from emacsy/core.scm:311
+@c snarfed from emacsy/core.scm:301
 @deffn {Interactive Procedure} load-file  #:optional file-name
 @kindex load-file  #:optional file-name
 We want to be able to load a scheme file.
 @c todo {We should have aread-filename procedure.}
 @end deffn
 
-@c snarfed from emacsy/core.scm:406
+@c snarfed from emacsy/core.scm:396
 The *scratch* buffer.
 
-@c snarfed from emacsy/core.scm:415
+@c snarfed from emacsy/core.scm:404
 Override kill-buffer; make sure the buffer list does not become empty.
 
+@c snarfed from emacsy/core.scm:417
+@deffn {Interactive Procedure} find-file  #:optional file-name
+@kindex find-file  #:optional file-name
+
+@end deffn
+
 @node Advice
 @section Advice
 
@@ -1910,6 +1949,15 @@ has references to other windows, you will clone entire object graph.
 
 @end deffn
 
+@c snarfed from emacsy/window.scm:242
+Cycling order for recenter-top-bottom.
+
+@c snarfed from emacsy/window.scm:247
+@deffn {Interactive Procedure} recenter-top-bottom  #:optional arg
+@kindex recenter-top-bottom  #:optional arg
+
+@end deffn
+
 @node Help
 @section Help
 
diff --git a/doc/hello-emacsy.texi b/doc/hello-emacsy.texi
index 41314f2..c5e7b40 100644
--- a/doc/hello-emacsy.texi
+++ b/doc/hello-emacsy.texi
@@ -1,5 +1,16 @@
 @c Generated by doc-snarf, do not edit.
 
+@c Copyright (C) 2012, 2013 Shane Celis <shane.celis@gmail.com>
+@c Copyright (C) 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3 or
+@c any later version published by the Free Software Foundation; with no
+@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+@c copy of the license is included in the section entitled ``GNU Free
+@c Documentation License''.
+
+
 @c snarfed from example/hello-emacsy.c:23
 
 Let's exercise these functions in a minimal FreeGLUT program we'll call
@@ -147,38 +158,38 @@ them with the Scheme runtime.
 Locate the @file{hello-emacsy.scm} Guile initialization and load it.
 @end deftypefn
 
-@c snarfed from example/hello-emacsy.scm:1
+@c snarfed from example/hello-emacsy.scm:20
 We generate the file @file{example/hello-emacsy.c.x} by running the
 command: @code{guile-snarf example/hello-emacsy.c}.  Emacsy can now
 access and alter the application's internal state.
 
-@c snarfed from example/hello-emacsy.scm:11
+@c snarfed from example/hello-emacsy.scm:30
 @deffn {Interactive Procedure} incr-counter  #:optional (n (universal-argument-pop!))
 @kindex incr-counter  #:optional (n (universal-argument-pop!))
 
 @end deffn
 
-@c snarfed from example/hello-emacsy.scm:15
+@c snarfed from example/hello-emacsy.scm:34
 @deffn {Interactive Procedure} decr-counter  #:optional (n (universal-argument-pop!))
 @kindex decr-counter  #:optional (n (universal-argument-pop!))
 
 @end deffn
 
-@c snarfed from example/hello-emacsy.scm:19
+@c snarfed from example/hello-emacsy.scm:38
 @deffn {Scheme Procedure} global-map
 Bind @var{inc-counter} to @code{=}.
 @end deffn
 
-@c snarfed from example/hello-emacsy.scm:21
+@c snarfed from example/hello-emacsy.scm:40
 @deffn {Scheme Procedure} global-map
 Bind @var{inc-counter} to @code{-}.
 @end deffn
 
-@c snarfed from example/hello-emacsy.scm:30
+@c snarfed from example/hello-emacsy.scm:49
 Let's implement another command that will ask the user for a number to
 set the counter to.
 
-@c snarfed from example/hello-emacsy.scm:34
+@c snarfed from example/hello-emacsy.scm:53
 @deffn {Interactive Procedure} change-counter
 @kindex change-counter
 Now we can hit @verb{|M-x change-counter|} and we'll be prompted for
@@ -186,12 +197,12 @@ the new value we want.  There we have it.  We have made the simplest
 application ever more @emph{Emacs-y}.
 @end deffn
 
-@c snarfed from example/hello-emacsy.scm:42
+@c snarfed from example/hello-emacsy.scm:61
 We can add commands easily by changing and reloading the file.  But
 we can do better.  Let's start a REPL we can connect to.
 @file{example/hello-emacsy.scm}.
 
-@c snarfed from example/hello-emacsy.scm:47
+@c snarfed from example/hello-emacsy.scm:66
 @example
 (use-modules (system repl server))
 (spawn-server)
diff --git a/doc/images/README b/doc/images/README
index 6431c76..605ddfc 100644
--- a/doc/images/README
+++ b/doc/images/README
@@ -1,7 +1,31 @@
                                                               -*- org -*-
 #+TITLE: Emacsy
 
-Images and artwork
+These images
+
+child-window-diagram.graffle
+child-window-diagram.pdf
+emacsy-logo.pdf
+emacsy-logo.png
+minimal-emacsy-example.png
+minimal-emacsy-figure.pdf
+screenshot-small.png
+screenshot.png
+the-garden-1.png
+the-garden-2.png
+the-garden-3.png
+the-garden-4.png
+the-garden-5.png
+the-garden-6.png
+the-garden-7.png
+the-garden-8.png
+the-garden.pdf
+the-garden.png
+window-diagram.graffle
+window-diagram.pdf
+
+are
+
 Copyright (C) 2012, 2013 Shane Celis <shane.celis@gmail.com>
 CC-BY-SA 3.0 -- Creative Commons Attribution-ShareAlike 3.0
 
diff --git a/emacsy/core.scm b/emacsy/core.scm
index fd703a5..bb78a67 100644
--- a/emacsy/core.scm
+++ b/emacsy/core.scm
@@ -521,6 +521,8 @@
     buffer))
 
 ;;.
+(define-interactive (find-file #:optional file-name))
+
 (define-interactive (find-file #:optional (file-name (read-file-name "Find file: ")))
   (catch #t
     (lambda _
diff --git a/test/coroutine.scm b/test/coroutine.scm
index ca9b1c3..9cb80ee 100644
--- a/test/coroutine.scm
+++ b/test/coroutine.scm
@@ -1,7 +1,26 @@
+;;; Emacsy --- An embeddable Emacs-like library using GNU Guile
+;;;
+;;; Copyright (C) 2012, 2013 Shane Celis <shane.celis@gmail.com>
+;;;
+;;; This file is part of Emacsy.
+;;;
+;;; Emacsy is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; Emacsy is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Emacsy.  If not, see <http://www.gnu.org/licenses/>.
+
 (use-modules (emacsy coroutine)
              (check))
 
-(define a (make-coroutine 
+(define a (make-coroutine
            (lambda ()
              (couser-data)
              ;; (yield (lambda (resume)
diff --git a/test/job.scm b/test/job.scm
index d6286f1..ab6d5f1 100644
--- a/test/job.scm
+++ b/test/job.scm
@@ -1,3 +1,22 @@
+;;; Emacsy --- An embeddable Emacs-like library using GNU Guile
+;;;
+;;; Copyright (C) 2012, 2013 Shane Celis <shane.celis@gmail.com>
+;;;
+;;; This file is part of Emacsy.
+;;;
+;;; Emacsy is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; Emacsy is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Emacsy.  If not, see <http://www.gnu.org/licenses/>.
+
 (use-modules (emacsy coroutine)
              (emacsy agenda)
              (emacsy job)
@@ -73,9 +92,9 @@
 
 (set! *current-job-list* '())
 
-(define e (make-job 
+(define e (make-job
            (lambda ()
-             (receive (proc job) 
+             (receive (proc job)
                  (make-job (lambda ()
                              (wait)
                              'f))
diff --git a/todo.org b/todo.org
index 9cd05f6..d766805 100644
--- a/todo.org
+++ b/todo.org
@@ -33,15 +33,15 @@
    name))) (lambda () ((variable-ref var)))))
 
   - [ ] Come up with a way to export commands so that one can indicate
-    what modules one wants to use.  
+    what modules one wants to use.
 
-    1. Let the user do it by creating their own modules.  
+    1. Let the user do it by creating their own modules.
 
        Nice idea because it requires no new infrastructure.  Might
        encourage the proliferation of new modules.
 
-    2. Let the user export certain symbols as commands.  Pretty much 
-       like a new kind of public interface.  
+    2. Let the user export certain symbols as commands.  Pretty much
+       like a new kind of public interface.
 
        Requires some infrastructure.  Possibly want to use this
        generally to collect up all kinds of other things.  So far I've
@@ -66,16 +66,16 @@
    (resolve-interface '(that-module) #:select (@ (that-module) commands))
 
    (resolve-interface '(that-module %command)
-       
+
    (use-modules ((that-module) #:select (@commands))
-       
+
 
   - [ ] rename read-file-name to EITHER read-filename OR
     read-filename-from-minibuffer
   - [ ] have backtraces go to logs
   - [X] Rethink the commands. Can't we keep them as simple lambdas?
-    Do we have to wrap them?  
-    
+    Do we have to wrap them?
+
     Also, when the user provides the symbol of a function, let's
     create a trampoline to that function.  Otherwise, if they provide
     a lambda, run that lambda.
@@ -94,7 +94,7 @@
   - [ ] Should (emacsy window) always be loaded but default to not
     supporting multiple windows?
 
-  - [ ] 
+  - [ ]
 
   - [ ] get rid of noise in emacsy (noise?) log noise?
   - [ ] Change define-cmd to define-command
@@ -108,9 +108,9 @@
     the split between builtin commands in shell and regular commands.
     God, this is going to be COOL!
 
-    
+
   - [X] make debugging work in emacsy
-    Getting better with debug-on-error?  
+    Getting better with debug-on-error?
   - [ ] fix kill of all buffers bug
   - [X] add universal argument C-u
   - [ ] clear the echo area once other messages start to come.
@@ -137,7 +137,7 @@
   - Note: the noweb filter docs2comments does not work with noweb's line pragmas
   - how to do [[https://github.com/davexunit/gnumaku/blob/rebirth/gnumaku/coroutine.scm][coroutines]] in guile
   - [ ] How do syscalls work when Emacsy is in batch mode?
-    
+
     Populate event buffer from file handle?  Are syscalls even required
     if we're not in interactive mode?
   - [X] In order to terminate potential rogue coroutines, I could set
@@ -184,7 +184,7 @@ ticks."
   (cosignal 'interrupt foreground-cid))
 
 (define (cosignal sig cid)
-  ((cid->resume cid) 'signal   
+  ((cid->resume cid) 'signal
 (case sig
     ((kill)
      (lambda () (coexit -1)))
@@ -211,3 +211,9 @@ cid <-> coroutine
 
 Does suspend happen inside or outside the coroutine?  Signals happened
 from outside the process in unix.
+* legalese
+Copyright © 2012, 2013 Shane Celis <shane.celis@gmail.com>
+
+  Copying and distribution of this file, with or without modification,
+  are permitted in any medium without royalty provided the copyright
+  notice and this notice are preserved.
-- 
2.21.0

