File: README

package info (click to toggle)
lsdb 0.11-10
  • links: PTS
  • area: main
  • in suites: lenny, squeeze, wheezy
  • size: 176 kB
  • ctags: 163
  • sloc: lisp: 1,671; sh: 77; makefile: 37
file content (222 lines) | stat: -rw-r--r-- 6,917 bytes parent folder | download | duplicates (5)
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
-*- mode: text -*-
.* What's LSDB

LSDB (The Lovely Sister Database) is a rolodex-like database program
for SEMI based MUA.  It intends to be a lightweight replacement for
BBDB (The Insidious Big Brother Database).  Unfortunately, it
currently doesn't support the all features of BBDB.

.* Requirements
LSDB works under following environment at least:

 * Emacs 20.7
 * XEmacs 21.4 or later

You will also need the following libraries:

 * APEL 10.2 or later
  * ftp://ftp.m17n.org/pub/mule/apel/
 * FLIM 1.12 or later
  * ftp://ftp.m17n.org/pub/mule/flim/

.* Installation

.. (a) run in expanded place

If you don't want to install other directories, please do only
following:

  % make

You can specify the emacs command name, for example

  % make install EMACS=xemacs

If `EMACS=...' is omitted, EMACS=emacs is used.

.. (b) make install

If you want to install other directories, please do following:

  % make install

.. (c) install as a XEmacs package

If you want to install to XEmacs package directory, please do
following:

  % make install-package

.* MUA Specific Installation

There are the convenient ways to get the LSDB functions insinuate into
some particular MUA.  Only Semi-gnus and Wanderlust are currently
supported.

If you use Semi-gnus or its variant, put the following lines into your
~/.gnus and you will get the functions in this package autoloaded.

  (autoload 'lsdb-gnus-insinuate "lsdb")
  (autoload 'lsdb-gnus-insinuate-message "lsdb")
  (add-hook 'gnus-startup-hook 'lsdb-gnus-insinuate)

  ;; If you are using T-gnus 6.15.7 or later, type M-x
  ;; customize-variable and set message-expand-name-function to
  ;; lsdb-complete-name, instead of adding the following lines.
  ;; (add-hook 'message-setup-hook
  ;;           (lambda ()
  ;;              (define-key message-mode-map "\M-\t" 'lsdb-complete-name)))

  (add-hook 'gnus-summary-mode-hook
            (lambda ()
              (define-key gnus-summary-mode-map ":" 'lsdb-toggle-buffer)))

If you use Wanderlust, put the following lines into your ~/.wl:

  (require 'lsdb)
  (lsdb-wl-insinuate)
  (add-hook 'wl-draft-mode-hook
            (lambda ()
               (define-key wl-draft-mode-map "\M-\t" 'lsdb-complete-name)))
  (add-hook 'wl-summary-mode-hook
            (lambda ()
              (define-key wl-summary-mode-map ":" 'lsdb-wl-toggle-buffer)))

If you use Mew, put the following lines into your ~/.mew:

  (autoload 'lsdb-mew-insinuate "lsdb")
  (add-hook 'mew-init-hook 'lsdb-mew-insinuate)
  (add-hook 'mew-draft-mode-hook
            (lambda ()
               (define-key mew-draft-header-map "\M-I" 'lsdb-complete-name)))
  (add-hook 'mew-summary-mode-hook
            (lambda ()
              (define-key mew-summary-mode-map "L" 'lsdb-toggle-buffer)))

If you use MU-CITE, put the following lines into your ~/.emacs:

  (autoload 'lsdb-mu-insinuate "lsdb")
  (eval-after-load "mu-cite"
    '(lsdb-mu-insinuate))

If you want to use x-face-e21 instead of the LSDB's builtin X-Face
functions, set lsdb-insert-x-face-function as follows:

  (setq lsdb-insert-x-face-function
        (lambda (x-face)
          (require 'x-face-e21)
          (insert-image (x-face-create-image x-face :scale-factor 0.5))))

.* Bug Reports
If you found bugs, please drop a note to the Lsdb-info Mailing List:

 * lsdb-info@lists.sourceforge.jp

.* File Release
Latest version of LSDB can be found at:

 * http://sourceforge.jp/projects/lsdb/files/

.* API
The API is simple and not written in a way that maximizes flexibility.

.. Record Management
. : Gathering Records
.  , lsdb-update-records<f>
lsdb-update-records<f> is called from the buffer which contains raw
contents of MIME entity.  It returns a list of records gathered from
the buffer.

. : Display Records
.  , lsdb-display-record<f>
lsdb-display-record<f> displays the formatted contents of the record
within the popup window.  If you want to display multiple records, use
lsdb-display-records<f> instead.

.. Internal Data Model
. : Primary Hash Table
There are two kinds of hash tables used in LSDB: a primary hash table
and secondary hash tables.  lsdb-hash-table is the primary hash table
which holds mappings for names and record objects.  You can operate on
LSDB hash tables in similar fashion to CL's hash-table API:
lsdb-puthash (for puthash), lsdb-gethash (for gethash), and
lsdb-maphash (for maphash) are available.

Here is an example to get the record object for "Daiki Ueno":

  (lsdb-gethash "Daiki Ueno" lsdb-hash-table)
  
  =>
  
  ((last-modified . "2002-04-23")
   (creation-date . "2002-04-26")
   (net "ueno@unixuser.org")
   (mailing-list "emacs-mime-ja")
   (attribution . "DU")
   (user-agent "T-gnus/6.15.6 (based on Oort Gnus v0.06) (revision 03)"))

. : Secondary Hash Tables
LSDB can also have one or more secondary hash tables.  These hash
tables are mainly used to define additional relationships between
record objects and their entries.  For example, lsdb-address-cache is
one of secondary hash table which maintains mappings of mail addresses
to record names.

The variable lsdb-secondary-hash-tables is a list of symbols for
_maintained_ secondary hash tables.  When the primary hash table is
loaded or saved, these hash tables are updated automatically.

.  , Operate on Secondary Hash Tables
You will need to follow the manner of the LSDB hooks.

.   ; lsdb-lookup-full-name-functions
List of functions to pick up the existing full-name of the sender.
The sender is passed to each function as the argument.

.   ; lsdb-update-record-functions
List of functions called after a record is modified.
The modified record is passed to each function as the argument.

.* Development
.. CVS
Development of LSDB uses CVS.  So latest developing version is
available at CVS.

. : cvs login (first time only)

  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
  CVS password: [CR] # NULL string

. : checkout

  % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout lsdb

If you would like to join CVS based development, please send mail to

  cvs@cvs.m17n.org

with your account name and your public key for ssh.  cvsroot is
:ext:cvs@cvs.m17n.org:/cvs/root.

If you cannot use ssh, please send UNIX /etc/passwd style crypted
password.  you can commit with the cvsroot
:pserver:<accountname>@cvs.m17n.org:/cvs/root.

We hope you will join the open development.
 

.* Authors
 * Daiki Ueno <ueno@unixuser.org>
 * Hideyuki SHIRAI <shirai@meadowy.org> (support for Mew)
 * Yuuichi Teranishi <teranisi@gohome.org>
 * TSUCHIYA Masatoshi  <tsuchiya@namazu.org>

.* Local emacs vars.
The following `allout-layout' local variable setting:
  - closes all topics from the first topic to just before the third-to-last,
  - shows the children of the third to last (config vars)
  - and the second to last (code section),
  - and closes the last topic (this local-variables section).
Local variables:
allout-layout: (0 : -1 -1 0)
End: