Next / Previous / Contents / Shipman's homepage


Describes the implementation of a package for the emacs text editor to make entry of bird banding data more efficient.

This publication is available in Web form and also as a PDF document. Please forward any comments to

Table of Contents

1. Introduction
2. Survey of modules in this package
3. Notes on key bindings
4. Top-level modules
4.1. maps2013m.el: Multiple-station sets, MAPS 2013 protocol
4.2. maps2013s.el: Single-station sets, MAPS 2013 protocol
4.3. maps2004m.el: Multiple-station sets, MAPS 2004/2006 protocol
4.4. maps2004s.el: Single-station sets, MAPS 2004/2006 protocol
4.5. maps1998m.el: Multi-station sets, MAPS 1998 protocol
4.6. maps1998s.el: Single-station sets, MAPS 1998 protocol
4.7. maws2007m.el: Multi-station sets, MAWS protocol
4.8. maws2007s.el: Single-station sets, MAWS protocol
4.9. maws2004m.el: Multi-station sets, MAWS protocol
4.10. maws2004s.el: Single-station sets, MAWS protocol
5. ibp.el: Common logic
5.1. Introduction to ibp.el
5.2. The pseudo-object convention
5.3. ibp.el: Prologue
5.4. ibp-tab: Tab function
5.5. ibp-tab-once: Single tab function
5.6. ibp-analyze-line: Where are the parts of the current line?
5.7. ibp-classify-line: What kind of line is this?
5.8. ibp-line-head-length: How long is the head of this line?
5.9. ibp-bracket-field: What field contains a given position?
5.10. ibp-bracket-tail-field: What tail field contains the cursor?
5.11. ibp-field-fill: Move to the end of a field
5.12. ibp-ditto: Field duplication function
5.13. ibp-ditto-once: Duplicate one field
5.14. ibp-find-prev-trans: Find the last preceding line with a tail
5.15. ibp-field-def: Field definition object
5.16. ibp-line-object: Represents one line
5.17. ibp-line-has-tail-p: Does this line have a tail?
5.18. ibp-field-object: Location of an actual field

1. Introduction

As part of Zoological Data Processing's system for processing bird banding data for the Institute for Bird Populations (IBP), the author has created a set of customizations for the emacs text editor that speed up data entry.

Installation and operating instructions for these functions are described in the specification.

This document presents the actual code for the emacs extensions in lightweight literate programming form. For more information on this form of presentation, see the author's lightweight literate programming page.

The programming language used to extend emacs is called emacs LISP, also called e-lisp. Files in this language have names ending in “.el”. More information on emacs is available at the Free Software Foundation page for emacs.

Recommended references for emacs and e-lisp:

  • Glickstein, Bob. Writing GNU Emacs Extensions. O'Reilly, 1997, ISBN 0-56592-261-1.

  • Stallman, Richard M. GNU Emacs Manual, For Version 21, 15th Edition. Free Software Foundation, ISBN 188211485X.