source: branches/lscan/source/cocoa-ide/hemlock/doc/user/netnews.mss

Last change on this file was 6, checked in by Gary Byers, 21 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 22.0 KB
Line 
1@comment{-*- Dictionary: /afs/cs/project/clisp/docs/hem/hem; Mode: spell; Package: Hemlock -*-}
2
3@chap[The Hemlock Netnews Interface]
4@section[Introduction to Netnews in Hemlock]
5
6
7@hemlock provides a facility for reading bulletin boards through the
8NetNews Transfer Protocol (NNTP). You can easily read Netnews, reply to
9news posts, post messages, etc. The news reading interface is consistent
10with that of the @hemlock mailer, and most Netnews commands function in the
11same manner as their mailer counterparts.
12
13Netnews can be read in one of two different modes. The first mode, invoked
14by the @hid(Netnews) command, allows the user to read new messages in
15groups which the user has specified. This method of reading netnews will
16track the highest numbered message in each newsgroup and only show new
17messages which have arrived since then. The @hid(Netnews Browse) command
18invokes the other method of reading netnews. This mode displays a list of
19all newsgroups, and the user may choose to read messages in any of them.
20By default, the news reader will not track the latest message read when
21browsing, and it will always display the last few messages.
22
23
24@section[Setting Up Netnews]
25
26To start reading bulletin boards from @hemlock you probably need to create a
27file containing the newsgroups you want to read.
28
29@defhvar[var "Netnews Group File", val {".hemlock-groups"}]
30 When you invoke the @hid(Netnews) command, @hemlock merges the value of
31 this variable with your home directory and looks there for a list of
32 groups (one per line) to read.
33@enddefhvar
34
35@defhvar[var "Netnews Database File", val{".hemlock-netnews"}]
36When you invoke the @hid(Netnews) command, @hemlock merges the value of
37this variable with your home directory. This file maintains a pointer to
38the highest numbered message read in each group in @hid(Netnews Group
39File).
40@enddefhvar
41
42@defcom[com "List All Groups"]
43 When you invoke this command, @hemlock creates a buffer called
44 @hid(Netnews Groups) and inserts the names of all accessible Netnews
45 groups into it alphabetically. You may find this useful if you choose to set
46 up your @hid(Netnews Group File) manually.
47@enddefcom
48
49@defhvar[var "Netnews NNTP Server", val{"netnews.srv.cs.cmu.edu"}]
50This variable stores the host name of the machine which @hemlock will use
51as the NNTP server.
52@enddefhvar
53
54@defhvar[var "Netnews NNTP Timeout Period", val{30}]
55This is the number of seconds @hemlock will wait trying to connect to the
56NNTP server. If a connection is not made within this time period, the
57connection will time out and an error will be signalled.
58@enddefhvar
59
60@subsection[News-Browse Mode]
61
62 @hid(News-Browse) mode provides an easy method of adding groups to
63 your @hid(Netnews Group File).
64
65@defcom[com "Netnews Browse"]
66 This command sets up a buffer in @hid{News-Browse} mode with all
67 available groups listed one per line. Groups may be read or added
68 to your group file using various commands in this mode.
69@enddefcom
70
71@defcom[com "Netnews Browse Add Group To File", stuff (bound to @bf[a] in @hid[News-Browse] mode)]
72@defcom1[com "Netnews Browse Pointer Add Group to File"]
73@hid(Netnews Browse Add Group to File) adds the group under the point to
74your group file, and @hid(Netnews Browse Pointer Add Group To File) adds
75the group under the mouse pointer without moving the point.
76@enddefcom
77
78@defcom[com "Netnews Browse Read Group", stuff (bound to @bf[space] in @hid[News-Browse] mode)]
79@defcom1[com "Netnews Browse Pointer Read Group"]
80@hid(Netnews Browse Read Group) and @hid(Netnews Browse Pointer Read Group)
81read the group under the cursor and the group under the mouse pointer,
82respectively. These commands neither use nor modify the contents of your
83@hid(Netnews Database File); they will always present the last few messages
84in the newsgroup, regardless of the last message read. @hid(Netnews Browse
85Pointer Read Group) does not modify the position of the point.
86@enddefcom
87
88@defcom[com "Netnews Quit Browse"]
89 This command exits @hid(News-Browse) mode.
90@enddefcom
91
92The @hid(Next Line) and @hid(Previous Line) commands are conveniently bound to
93@bf[n] and @bf[p] in this mode.
94
95@section[Starting Netnews]
96
97Once your @hid(Netnews Group File) is set up, you may begin reading netnews.
98
99@defcom[com "Netnews"]
100 This command is the main entry point for reading bulletin boards in
101 @hemlock. Without an argument, the system looks for what bulletin boards to
102 read in the value of @hid(Netnews Group File) and reads each of them in
103 succession. @hemlock keeps a pointer to the last message you read in each
104 of these groups in your @hid(Netnews Database File). Bulletin boards may
105 be added to your @hid(Netnews Group File) manually or by using
106 the @hid(Netnews Browse) facility. With an argument, @hemlock prompts the
107 user for the name of a bulletin board and reads it.
108@enddefcom
109
110@defcom[com "Netnews Look at Group"]
111 This command prompts for a group and reads it, ignoring the information
112 in your @hid(Netnews Database File).
113@enddefcom
114
115When you read a group, @hemlock creates a buffer that contains important
116header information for the messages in that group. There are four fields
117in each header, one each for the @i(date), @i(lines), @i(from), and
118@i(subject). The @i(date) field shows when the message was sent, the
119@i(lines) field displays how long the message is in lines, the @i(from)
120field shows who sent the message, and the @i(subject) field displays the
121subject of this message. If a field for a message is not available, @f(NA)
122will appear instead. You may alter the length of each of these fields by
123modifying the following @hemlock variables:
124
125@defhvar[var "Netnews Before Date Field Pad", val 1]
126 How many spaces should be inserted before the date in @hid(News-Headers)
127 buffers.
128@enddefhvar
129
130@defhvar[var "Netnews Date Field Length", val 6]
131@defhvar1[var "Netnews Line Field Length", val 3]
132@defhvar1[var "Netnews From Field Length", val 20]
133@defhvar1[var "Netnews Subject Field Length", val 43]
134 These variables control how long the @i(date), @i(line), @i(from), and
135 @i(subject) fields should be in @hid{News-Headers} buffers.
136@enddefhvar
137
138@defhvar[var "Netnews Field Padding", val 2]
139 How many spaces should be left between the Netnews @i(date), @i(from),
140 @i(lines), and @i(subject) fields after padding to the required length.
141@enddefhvar
142
143For increased speed, @hemlock only inserts headers for a subset of the
144messages in each group. If you have never read a certain group, and the
145value of @hid(Netnews New Group Style) is @f(:from-end) (the default),
146@hemlock inserts some number of the last messages in the group, determined
147by the value of @hid(Netnews Batch Count). If the value of @hid(Netnews
148New Group Style) is @f(:from-start), @hemlock will insert the first batch
149of messages in the group. If you have read a group before, @hemlock will
150insert the batch of messages following the highest numbered message that
151you had read previously.
152
153@defhvar[var "Netnews Start Over Threshold", val {350}]
154 If the number of new messages in a group exceeds the value of this
155 variable and @hid(Netnews New Group Style) is @f(:from-end), @hemlock asks
156 if you would like to start reading this group from the end.
157@enddefhvar
158
159You may at any time go beyond the messages that are visible using the
160@hid(Netnews Next Line), @hid(Netnews Previous Line),
161@hid(Netnews Headers Scroll Window Up), and
162@hid(Netnews Headers Scroll Down) commands in @hid(News-Headers) mode,
163or the @hid(Netnews Next Article) and @hid(Netnews Previous Article)
164commands in @hid(News-Message) mode.
165
166@defhvar[var "Netnews Fetch All Headers", val {nil}]
167This variable determines whether Netnews will fetch all headers immediately
168upon entering a new group.
169@enddefhvar
170
171@defhvar[var "Netnews Batch Count", val {50}]
172 This variable determines how many headers the Netnews facility will fetch
173 at a time.
174@enddefhvar
175
176@defhvar[var "Netnews New Group Style", val {:from-end}]
177This variable determines what happens when you read a group that you have
178never read before. When it is @f(:from-start), the @hid(Netnews) command
179will read from the beginning of a new group forward. When it is @f(:from-end),
180the default, @hid(Netnews) will read the group from the end backward.
181@enddefhvar
182
183@section[Reading Messages]
184
185From a @hid{News-Headers} buffer, you may read messages, reply to messages
186via the @hemlock mailer, or reply to messages via post. Some commands are
187also bound to ease getting from one header to another.
188
189@defcom[com "Netnews Show Article", stuff (bound to @bf[space] in @hid{News-Headers} mode)]
190@defhvar1[var "Netnews Read Style", val {:multiple}]
191@defhvar1[var "Netnews Headers Proportion", val {0.25}]
192This command puts the body of the message header under the current point
193into a @hid{News-Message} buffer. If the value of @hid(Netnews Read
194Style) is @f(:single), @hemlock changes to the @hid{News-Message}
195buffer. If it is @f(:multiple), then @hemlock splits the current window
196into two windows, one for headers and one for message bodies. The headers
197window takes up a proportion of the current window based on the value of
198@hid(Netnews Headers Proportion). If the window displaying the
199@hid(News-Headers) buffer has already been split, and the message
200currently displayed in the @hid(News-Message) window is the same as the
201one under the current point, this command behaves just like @hid(Netnews
202Message Scroll Down).
203@enddefcom
204
205@defhvar[var "Netnews Message Header Fields", val {nil}]
206 When this variable is @nil, all available fields are displayed in the
207 header of a message. Otherwise, this variable should containt a list of
208 fields to include in message headers. If an element of this
209 list is an atom, then it should be the string name of a field. If it is
210 a cons, then the car should be the string name of a field, and the cdr
211 should be the length to which this field should be limited. Any string
212 name is acceptable, and fields that do not exist are ignored.
213@enddefhvar
214
215@defcom[com "Netnews Show Whole Header", stuff (bound to @bf[w] in @hid{News-Headers} and @hid{News-Message} modes.)]
216This command displays the entire header for the message currently being
217read. This is to undo the effects of @hid{Netnews Message Header Fields}
218for the current message.
219@enddefcom
220
221@defcom[com "Netnews Next Line", stuff (bound to @bf[C-n] and @bf[Downarrow] in @hid{News-Headers} mode)]
222@defhvar1[var "Netnews Last Header Style", val {:next-headers}]
223This command moves the current point to the next line. If you are on the
224last visible message, and there are more in the current group, headers for
225these messages will be inserted. If you are on the last header and there
226are no more messages in this group, then @hemlock will take some action
227based on the value of @hid(Netnews Last Header Style). If the value of
228this variable is @f(:feep), @hemlock feeps you indicating there are no
229more messages. If the value is @f(:next-headers), @hemlock reads in the
230headers for the next group in your @hid(Netnews Group File). If the value
231is @f(:next-article), @hemlock goes on to the next group and shows you
232the first unread message.
233@enddefcom
234
235@defcom[com "Netnews Previous Line", stuff (bound to @bf[C-p] and @bf[Uparrow] in @hid{News-Headers} mode)]
236This command moves the current point to the previous line. If you are on
237the first visible header, and there are more previous messages, @hemlock
238inserts the headers for these messages.
239@enddefcom
240
241@defcom[com "Netnews Headers Scroll Window Down", stuff (bound to @bf[C-v] in @hid{News-Headers} mode)]
242@defcom1[com "Netnews Headers Scroll Window Up", stuff (bound to @bf[M-v] in @hid{News-Headers} mode)]
243 These commands scroll the headers window up or down one screenfull. If the
244 end of the buffer is visible, @hemlock inserts the next batch of headers.
245@enddefcom
246
247@defcom[com "Netnews Next Article", stuff (bound to @bf[n] in @hid{News-Message} and @hid{News-Headers} modes)]
248@defcom1[com "Netnews Previous Article", stuff (bound to @bf[p] in @hid{News-Message} and @hid{News-Headers} modes)]
249 These commands insert the next or previous message into a message buffer.
250@enddefcom
251
252@defcom[com "Netnews Message Scroll Down", stuff (bound to @bf[space] in @hid{News-Message} mode)]
253@defhvar1[var "Netnews Scroll Show Next Message", val {t}]
254If the end of the current message is visible, @hemlock feeps the user if
255the value of @hid(Netnews Scroll Show Next Message) is non-@nil, or it
256inserts the next message into this message buffer if that variable is @nil.
257If the end of the message is not visible, then @hemlock shows the next
258screenfull of the current message.
259@enddefcom
260
261@defcom[com "Netnews Message Quit", stuff (bound to @bf[q] in @hid{News-Message} mode)]
262 This command deletes the current message buffer and makes the associated
263 @hid{News-Headers} buffer current.
264@enddefcom
265
266@defcom[com "Netnews Goto Headers Buffer", stuff (bound to @bf[H-h] in @hid{News-Message} mode)]
267 This command, when invoked from a @hid(News-Message) buffer with an
268 associated @hid(News-Headers) buffer, places the associated
269 @hid(News-Headers) buffer into the current window.
270@enddefcom
271
272@defcom[com "Netnews Message Keep Buffer", stuff (bound to @bf[k] in @hid{News-Message} mode)]
273 By default, @hemlock uses one buffer to display all messages in a group,
274 one at a time. This command tells @hemlock to keep the current message
275 buffer intact and start reading messages in another buffer.
276@enddefcom
277
278@defcom[com "Netnews Select Message Buffer", stuff (bound to @bf[H-m] in @hid{News-Headers} and @hid{Post} modes.)]
279 In @hid{News-Headers} mode, this command selects the buffer
280 containing the last message read. In @hid{Post} mode, it selects the
281 associated @hid{News-Message} buffer, if there is one.
282@enddefcom
283
284@defcom[com "Netnews Append to File", stuff (bound to @bf[a] in @hid{News-Headers} and @hid{News-Message} modes.)]
285@defhvar1[var "Netnews Message File", val {"netnews-messages.txt"}]
286This command prompts for a file which the current message will be appended
287to. The default file is the value of @hid(Netnews Message File) merged
288with your home directory.
289@enddefcom
290
291@defcom[com "Netnews Headers File Message", stuff (bound to @bf[o] in @hid{News-Headers} mode)]
292This command prompts for a mail folder and files the message under the
293point into it. If the folder does not exist, @hemlock will ask if it should
294be created.
295@enddefcom
296
297@defcom[com "Netnews Message File Message", stuff (bound to @bf[o] in @hid{News-Message} mode)]
298This command prompts for a mail folder and files the current message there.
299If the folder does not exist, @hemlock will ask if it should be created.
300@enddefcom
301
302@defcom[com "Fetch All Headers", stuff (bound to @bf[f] in @hid{Netnews Headers} mode)]
303 In a forward reading @hid(Netnews headers) buffer, this command inserts
304 all headers after the last visible one into the headers buffer. If
305 @hemlock is reading this group backward, the system inserts all headers
306 before the first visible one into the headers buffer.
307@enddefcom
308
309@defcom[com "Netnews Go to Next Group", stuff (bound to @bf[g] in @hid{News-Headers} and @hid{News-Message} modes.)]
310This command goes to the next group in your @hid(Netnews Group File).
311Before going on, it sets the group pointer in @hid(Netnews Database
312Filename) to the last message you read. With an argument, the command does
313not modify the group pointer for the current group.
314@enddefcom
315
316@defcom[com "Netnews Quit Starting Here", stuff (bound to @bf[.] in @hid{News-Headers} and @hid{News-Message} modes)]
317 This command goes to the next group in your @hid(Netnews Group File),
318 setting the netnews pointer for this group to the message before the one
319 under the current point, so the next time you read this group, the message
320 indicated by the point will appear first.
321@enddefcom
322
323@defcom[com "Netnews Group Punt Messages", stuff (bound to @bf[G] in @hid{News-Headers} mode)]
324 This command goes on to the next bulletin board in your group
325 file. Without an argument, the system sets the pointer for the current
326 group to the last message. With an argument, @hemlock sets the
327 pointer to the last visible message in the group.
328@enddefcom
329
330@defcom[com "Netnews Exit", stuff (bound to @bf[q] in @hid{News-Headers} mode)]
331@defhvar1[var "Netnews Exit Confirm", val {t}]
332 This command cleans up and deletes the @hid(News-Headers) buffer and
333 all associated @hid(News-Message) buffers. If the value of
334 @hid(Netnews Exit Confirm) is @nil, then @hemlock will not prompt before
335 exiting.
336@enddefcom
337
338@section[Replying to Messages]
339
340The @hemlock Netnews interface also provides an easy way of replying to
341messages through the @hemlock Mailer or via @hid{Post} mode.
342
343@defcom[com "Netnews Reply to Sender"]
344 When you invoke this command, @hemlock creates a @hid(Draft) buffer and
345 tries to fill in the @i(to) and @i(subject) fields of the draft. For
346 the @i(to) field, @hemlock looks at the @i(reply-to) field of the
347 message you are replying to, or failing that, the @i(from) field. If
348 the @i(subject) field does not start with @f(Re:), @hemlock inserts this
349 string, signifying that this is a reply.
350@enddefcom
351
352@defcom[com "Netnews Reply to Sender in Other Window", stuff (bound to @bf[r] in @hid{News-Headers} and @hid{News-Message}.)]
353This command splits the current window, placing the message you are
354replying to in the top window and a new @hid{Draft} buffer in the bottom
355one. This command fills in the header fields in the same manner as
356@hid(Netnews Reply to Sender).
357@enddefcom
358
359@defcom[com "Netnews Reply to Group"]
360This command creates a @hid{Post} buffer with the @i(newsgroups) field set
361to the current group and the @i(subject) field constructed in the same way
362as in @hid(Netnews Reply to Sender).
363@enddefcom
364
365@defcom[com "Netnews Reply to Group in Other Window", stuff (bound to @bf[R] in @hid{News-Headers} and @hid{News-Message}.)]
366 This command splits the current window, placing the message you are
367 replying to in the top window and a new @hid{Post} buffer in the bottom
368 one. This command will fill in the header fields in the same manner as
369 @hid(Netnews Reply to Group).
370@enddefcom
371
372@defcom[com "Netnews Post Message", stuff (bound to @bf[C-x P])]
373 This command creates a @hid{Post} buffer. If you are in a
374 @hid(News-Headers) or @hid{News-Message} buffer, @hemlock fills in the
375 @i(newsgroups) field with the current group.
376@enddefcom
377
378@defcom[com "Netnews Forward Message", stuff (bound to @bf[f] in @hid{News-Headers} and @hid{News-Message} modes.)]
379This command creates a @hid{Post} buffer. If you are in a @hid{Netnews
380Headers} or @hid{News-Message} buffer, @hemlock will put the text of the
381current message into the buffer along with lines delimiting the forwarded
382message.
383@enddefcom
384
385@defcom[com "Netnews Goto Post Buffer", stuff (bound to @bf[H-p] in @hid{News-Message} mode)]
386 This command, when invoked in a @hid(News-Message) or @hid(Draft) buffer
387 with an associated @hid(News-Headers) buffer, places the associated
388 @hid(News-Headers) buffer into the current window.
389@enddefcom
390
391@defcom[com "Netnews Goto Draft Buffer", stuff (bound to @bf[H-d] in @hid{News-Message} mode)]
392 This command, when invoked in a @hid(News-Message) buffer with an
393 associated @hid(Draft) buffer, places the @hid(Draft) buffer into the
394 current window.
395@enddefcom
396
397@section[Posting Messages]
398
399@defcom[com "Netnews Deliver Post", stuff (bound to @bf[H-s] in @hid{Post} mode)]
400@defhvar1[var "Netnews Deliver Post Confirm", val "t"]
401This command delivers the contents of a @hid(Post) buffer to the NNTP
402server. If @hid(Netnews Deliver Post Confirm) is @f(t), @hemlock will ask for
403confirmation before posting the message. @hemlock feeps you if NNTP does
404not accept the message.
405@enddefcom
406
407@defcom[com "Netnews Abort Post", stuff (bound to @bf[H-q] in @hid{Post} mode)]
408 This command deletes the current @hid(Post) buffer.
409@enddefcom
410
411
412As in the mailer, when replying to a message you can be excerpt sections of
413it using @hid(Insert Message Buffer) and @hid(Insert Message Region) in
414@hid(Post) and @hid(News-Message) modes, respectively. You can also use
415these commands when replying to a message via mail in a @hid(Draft) buffer.
416In all cases, the same binding is used: @bf[H-y].
417
418@newpage
419@section[Wallchart]
420
421@tabclear
422@tabdivide(5)
423
424@begin[format, spacing 1.5]
425
426
427@Begin[Center] @b[Global bindings:] @End[Center]
428
429@hid[Netnews Post Message]@\@\@bf[C-x P]
430
431
432@Begin[Center] @b[News-Headers and News-Message modes bindings:] @End[Center]
433
434@hid[Netnews Next Article]@\@\@\@bf[n]
435@hid[Netnews Previous Article]@\@\@bf[p]
436@hid[Netnews Go to Next Group]@\@\@bf[g]
437@hid[Netnews Group Punt Messages]@\@\@bf[G]
438@hid[List All Groups]@\@\@\@bf[l]
439@hid[Netnews Append to File]@\@\@bf[a]
440@hid[Netnews Forward Message]@\@\@bf[f]
441@hid[Netnews Reply to Sender in Other Window]@\@\@bf[r]
442@hid[Netnews Reply to Group in Other Window]@\@\@bf[R]
443@hid[Netnews Quit Starting Here]@\@\@bf[.]
444
445@Begin[Center] @b[News-Headers mode bindings:] @End[Center]
446
447@hid[Netnews Show Article]@\@\@bf[Space]
448@hid[Netnews Previous Line]@\@\@bf[C-p], @bf[Uparrow]
449@hid[Netnews Next Line]@\@\@\@bf[C-n], @bf[Downarrow]
450@hid[Netnews Headers Scroll Window Down]@\@\@bf[C-v]
451@hid[Netnews Headers Scroll Window Up]@\@\@bf[M-v]
452@hid[Netnews Select Message Buffer]@\@\@bf[H-m]
453@hid[Netnews Exit]@\@\@\@bf[q]
454@hid[Netnews Headers File Message]@\@\@bf[o]
455
456
457@Begin[Center] @b[News-Message mode bindings:] @End[Center]
458
459@hid[Netnews Message Scroll Down]@\@\@bf[Space]
460@hid[Scroll Window Up]@\@\@\@bf[Backspace]
461@hid[Netnews Goto Headers Buffer]@\@\@bf[H-h], @bf[^]
462@hid[Netnews Message Keep Buffer]@\@\@bf[k]
463@hid[Netnews Message Quit]@\@\@bf[q]
464@hid[Netnews Message File Message]@\@\@bf[o]
465@hid[Netnews Goto Post Buffer]@\@\@bf[H-p]
466@hid[Netnews Goto Draft Buffer]@\@\@bf[H-d]
467@hid[Insert Message Region]@\@\@bf[H-y]
468
469
470@Begin[Center] @b[Post mode bindings:] @End[Center]
471
472@hid[Netnews Select Message Buffer]@\@\@bf[H-m]
473@hid[Netnews Deliver Post]@\@\@bf[H-s]
474@hid[Netnews Abort Post]@\@\@\@bf[H-q]
475@hid[Insert Message Buffer]@\@\@bf[H-y]
476
477
478@Begin[Center] @b[News-Browse mode bindings:] @End[Center]
479
480@hid[Netnews Quit Browse]@\@\@bf[q]
481@hid[Netnews Browse Add Group To File]@\@\@bf[a]
482@hid[Netnews Browse Read Group]@\@\@bf[Space]
483@hid[Next Line]@\@\@\@bf[n]
484@hid[Previous Line]@\@\@\@bf[p]
485
486
487@end[format]
488@tabclear
Note: See TracBrowser for help on using the repository browser.