From 63a5219d626e4ed62dad28a51fb41034a69dc6f5 Mon Sep 17 00:00:00 2001 From: Per Cederqvist Date: Sat, 28 Apr 2001 18:56:09 +0000 Subject: [PATCH] Use @reqlink and @reqdlink where appropriate. Fix lots of malformed @ref, @xref and @pxref usages. Also: (@reqlink, @reqdlink, @linkhere): New markup macros. (Document Edition History): Added missing @async markup. (About Aux-Items): Added missing @field markup. (Simple Data Types): Removed an unbalanced close parenthesis. (LysKOM Data Types): Added missing @field markup. Removed an unbalanced close parenthesis. (lookup-name): Added a missing close parenthesis. (get-info-old): Added a missing close parenthesis. This returns Info-Old, not Info. (create-anonymous-text-old): Added missing @field markup. (login): Added missing close parenthesis. (local-to-global): Don't use fancy mathemtical notations for half-closed intervals. Added missing @type markup. --- doc/Protocol-A.texi | 480 +++++++++++++++++++++++++------------------- 1 file changed, 275 insertions(+), 205 deletions(-) diff --git a/doc/Protocol-A.texi b/doc/Protocol-A.texi index ed8a4161..1fba960e 100644 --- a/doc/Protocol-A.texi +++ b/doc/Protocol-A.texi @@ -2,10 +2,9 @@ @c @c FIXME: Explain how the garb works with nice and keep-commented @c FIXME: @i{Example:} is only used in front of some examples. -@c FIXME: @ref, @xref and @pxref are used wrongly. @c FIXME: Make all types clickable in HTML (and info?) @c -@c $Id: Protocol-A.texi,v 1.113 2001/04/23 21:15:26 ceder Exp $ +@c $Id: Protocol-A.texi,v 1.114 2001/04/28 18:56:09 ceder Exp $ @c %**start of header @setfilename protocol-a.info @settitle LysKOM Protocol A @@ -18,10 +17,67 @@ @set VERSION 1.0.4 @c @req{login} is used for protocol requests. + @macro req {n} @code{\n\} @end macro +@c @reqlink{login} is used for protocol requests, that shuld be linked. + +@ifhtml +@macro reqlink {n} +@code{@ref{\n\}} +@end macro +@end ifhtml + +@ifnothtml +@macro reqlink {n} +@code{\n\} (@pxref{\n\}) +@end macro +@end ifnothtml + +@c @reqdlink{login}...@linkhere{} is used for protocol requests, that +@c shuld be linked, where the link should occur a few words after the +@c request itself. + +@ifhtml + +@c HTML version: make the word a link. +@macro reqdlink {n} +@code{@ref{\n\}}@c +@unmacro linkhere +@macro linkhere +@end macro +@end macro + +@end ifhtml + +@ifnothtml +@ifnottex + +@c Info version: create linkhere as a macro that contains a reference. + +@macro reqdlink {n} +@code{\n\}@c +@unmacro linkhere +@macro linkhere +(@pxref{\n\}) +@end macro +@end macro +@end ifnottex +@iftex + +@c TeX version: for now, do like @reqlink{}. +@c FIXME: TeX magic here to simulate the Info version of the macro. +@macro reqdlink {n} +@code{\n\} (@pxref{\n\}) +@end macro +@macro linkhere +@end macro + +@end iftex +@end ifnothtml + @c @aux{mx-allow-filter} is used for aux-item names. @macro aux {n} @code{\n\} @@ -267,9 +323,9 @@ Some typos and other minor errors were fixed. Distributed with lyskomd Call @req{sub-comment} was incorrectly marked obsolete. This has been corrected. Regexps are case sensitive. The Info-Type enumeration was introduced in the description of the protocol. (Previous versions of -the protocol had broken definitions of add-recipient, -async-new-recipient and async-sub-recipient.) Distributed with lyskomd -2.0.1. +the protocol had broken definitions of @req{add-recipient}, +@async{async-new-recipient} and @async{async-sub-recipient}.) Distributed +with lyskomd 2.0.1. @item 10.0: 1999-06-27 The specification was translated to English and converted to Texinfo by @@ -435,8 +491,8 @@ It was largely up to the client to implement this. True passive memberships have been introduced in this protocol version through the Membership-type extension to the Membership type. In order to maintain compatibility with clients that interpret priority 0 as passive -membership, the old calls @pxref{add-member-old} and -@pxref{get-membership-old} perform magic, translating between priorities +membership, the old calls @reqlink{add-member-old} and +@reqlink{get-membership-old} perform magic, translating between priorities and membership types. The magic is documented with each call. @end itemize @end table @@ -669,7 +725,7 @@ and are never reused for a particular recipient, though different recipients will have articles with the same local numbers. Occasionally it is necessary to map between local and global numbers. -The server call @req{local-to-global} does this. +The server call @reqlink{local-to-global} does this. @@ -732,7 +788,7 @@ changed to this type, preexisting secret members remain secret. Persons are represented in the protocol by values of the type @type{Person}. Associated with persons are statistics, a set of personal -flags and a set of privileges (@pxref{Security}.) Persons are also +flags and a set of privileges (@pxref{Security}). Persons are also associated with a conference that has the same number as the person and the @conftype{letterbox} bit set. @@ -827,7 +883,7 @@ member of the recipient can also see it, as can the author of the text server. This type of group was introduced in protocol version 10. When -old-style calls such as get-text-stat-old (@pxref{get-text-stat-old}) +old-style calls such as @reqlink{get-text-stat-old} are used this will be converted to a CC recipient group by the server for the benefit of clients that don't understand this group. @@ -921,25 +977,26 @@ out a case where setting an aux-item on the mailbox wasn't as good as setting it on the person (another reason was that I was fed up writing aux-item code by the time they were working on texts and conferences.) -The exact structure of an aux item is specified elsewhere (@pxref{LysKOM -Data Types}). The important fields here are the aux-no, tag and data -fields. +The exact structure of an aux item is specified elsewhere +(@pxref{LysKOM Data Types}). The important fields here are the +@field{aux-no}, @field{tag} and @field{data} fields. -The aux-no field is used to identify an item. The aux-no together with a -text or conference number uniquely identifies a particular aux item. -Items are numbered from one and up within each item list. Once assigned, -the aux-no for an item is never changed. New items are guaranteed to -be assigned numbers that have never been used before within a particular -list. +The @field{aux-no} field is used to identify an item. The +@field{aux-no} together with a text or conference number uniquely +identifies a particular aux item. Items are numbered from one and up +within each item list. Once assigned, the @field{aux-no} for an item +is never changed. New items are guaranteed to be assigned numbers that +have never been used before within a particular list. -The tag field identifies the type of aux item. It is used by the server -and by clients to figure out how to interpret the data field, and by the -server to decide if the item needs special treatment. +The @field{tag} field identifies the type of aux item. It is used by +the server and by clients to figure out how to interpret the data +field, and by the server to decide if the item needs special +treatment. -The data field is a simple string. The meaning of the string is -determined by the tag field, but since it is a string, clients that have -no understanding of the contents can successfully parse the item anyway -(in contrast to items in the misc-info list.) +The @field{data} field is a simple string. The meaning of the string +is determined by the @field{tag} field, but since it is a string, +clients that have no understanding of the contents can successfully +parse the item anyway (in contrast to items in the misc-info list.) @@ -969,7 +1026,7 @@ introduced by @command{komimportmail}, see @ref{komimportmail Aux-Item Types}. @table @samp @item content-type [1] (text) Specifies the content type of a text. Data is a valid MIME type or one -of the special LysKOM types (@pxref{LysKOM Content Types}.) +of the special LysKOM types (@pxref{LysKOM Content Types}). This item may only be set by the author of a text. The inherit, secret and hide-owner bits are cleared. Only one content-type item can be @@ -1135,7 +1192,7 @@ set, it cannot be removed or changed. A typical value would be optional. The data should be the client name, a space, and the client version used -in the @req{set-client-version} call. The server may enforce this +in the @reqlink{set-client-version} call. The server may enforce this restriction. @item mx-author [16] (text) @@ -1553,17 +1610,18 @@ perhaps 50 articles at a time. The outline of the process is as follows: @enumerate @item Fetch the membership to get the @field{last-text-read} -@item Use @req{local-to-global} (@pxref{local-to-global}) to translate -a number of local numbers to global numbers. +@item Use @reqlink{local-to-global} to translate a number of local +numbers to global numbers. @item Remove the global numbers corresponding to local numbers contained in @field{read-texts} from the result. @item Get and translate more texts as needed. @end enumerate -The process is complicated because of the translation between local and -global text numbers. If the server does not implement the -@pxref{local-to-global} call, it is possible to use the less -efficient but perfectly serviceable @pxref{get-map} call instead. +The process is complicated because of the translation between local +and global text numbers. If the server does not implement the +@reqdlink{local-to-global} call@linkhere{}, it is possible to use the less +efficient but perfectly serviceable @reqdlink{get-map} call +instead@linkhere{}. @node Client-Server Dialog @@ -1591,6 +1649,7 @@ protocol-dependent. Protocol A servers will reply with the string % telnet kom.lysator.liu.se 4894 Trying 130.236.254.151 ... Connected to varg.lysator.liu.se. +@c This comment matches the bracket on the next line: [ Escape character is '^]'. A26Hbyers%kajsa.lysator.liu.se LysKOM @@ -1654,7 +1713,7 @@ request. Note that there is no whitespace after the initial indicator in the reply. -Error reporting is covered in more detail in chapter @ref{Error Codes}. +Error reporting is covered in more detail in @ref{Error Codes}. Data elements sent from the client to the server are separated by one or more space characters (ASCII 32). An entire call is terminated by a @@ -1769,7 +1828,7 @@ value-3. An enumeration can also be inherited from a SELECTION datatype: - Info-type : ENUMERATION_OF(Misc-Info)) + Info-type : ENUMERATION_OF(Misc-Info) This means that Info-type is an enumeration, that contains the same keys and values as the SELECTION Misc-Info. @@ -1863,7 +1922,7 @@ RPC calls are transmitted as @var{n} @var{request} where @var{n} and @var{request} have the same meaning as above. Note that in the client-server dialog a reference number must also be supplied with each request. This reference number is not part of the RPC itself, but is -required for communications @xref{Client-Server Dialog}. +required for communications; see @ref{Client-Server Dialog}. @@ -2021,10 +2080,10 @@ Aux-Item and Aux-Item-Input have the following meaning: @item aux-no The number of the item within the list where it is found. This number together with a conference or text number uniquely identifies a -particular aux-item. (There is also a global list of Aux-Items for the -server. That list is manipulated via the modify-system-info -(@pxref{modify-system-info}) request, and when using that request the -aux-no is enough to uniquely identify the aux-item.) +particular aux-item. (There is also a global list of Aux-Items for +the server. That list is manipulated via the +@reqdlink{modify-system-info} request@linkhere{}, and when using that request +the @field{aux-no} is enough to uniquely identify the aux-item.) This field is not present in @type{Aux-Item-Input}. It is assigned by the server. @@ -2319,7 +2378,7 @@ actually transmitted. See also the example in @ref{lookup-name}. A @type{Text-Mapping} is used when the client needs to look up which global @type{Text-No} that corresponds to a @type{Local-Text-No}. The -client uses @req{local-to-global} to ask for information about a few +client uses @reqlink{local-to-global} to ask for information about a few texts starting a a certain local text number, and the server returns the information in a @type{Text-Mapping}. @@ -2397,7 +2456,7 @@ The server version encoded as a number @var{aa}@var{bb}@var{cc} where @var{aa} is the major version number, @var{bb} the minor number and @var{cc} the secondary minor version. For instance, @code{10607} is version 1.6.7 of the server. If greater than 10699 the -@req{get-version-info} should be used instead. +@reqlink{get-version-info} should be used instead. @item conf-pres-conf The conference that contains conference presentations. @item pers-pres-conf @@ -2585,8 +2644,8 @@ existing memberships. @end example The @type{Member} structure encodes information about a member in a -conference. It is returned by the @ref{get-members} call. The fields of -a @type{Member} structure are +conference. It is returned by the @reqdlink{get-members} call@linkhere{}. The +fields of a @type{Member} structure are @table @field @item member @@ -2631,8 +2690,8 @@ to see the contents of the structure. @end example The @type{Membership} structure encodes information about a person's -membership in a conference. It is returned by the @ref{query-read-texts} -and @ref{get-membership} calls. +membership in a conference. It is returned by the +@reqlink{query-read-texts} and @reqdlink{get-membership} calls@linkhere{}. @table @field @item position @@ -2761,7 +2820,7 @@ The list of aux items for this article. @end table @type{Misc-Info}, when sent to the client, is sent in a particular order -(@pxref{The Misc-Info List}. The variants @type{Misc-Info} are +(@pxref{The Misc-Info List}). The variants @type{Misc-Info} are (briefly): @table @misc @@ -3040,7 +3099,7 @@ When true, the user requested an invisible session (@pxref{login}). Sessions where no-one is logged in also have the @field{invisible} flag set. @item user-active-used -When true, the user-active (@pxref{user-active}) call has been issued by +When true, the @reqdlink{user-active} call@linkhere{} has been issued by the session, which in turn means that @field{idle-time} field in the @type{Dynamic-Session-Info} is valid. @item user-absent @@ -3058,8 +3117,8 @@ logged on. @item working-conference The conference the session is currently in. @item idle-time -The number of seconds that have passed since the last time user-active -(@pxref{user-active}) was called in the session. +The number of seconds that have passed since the last time +@reqlink{user-active} was called in the session. @item flags The dynamic session flags (see above.) @item what-am-i-doing @@ -3074,10 +3133,10 @@ or KOM conventions. @subsection Regexp Matching -This type of expansion, used by the @pxref{re-z-lookup} call and its -predecessors simply matches @command{ed}(1) style regular expressions to -names in the database to find the list of matching names. The matching -is case sensitive. +This type of expansion, used by the @reqdlink{re-z-lookup} call and +its predecessors@linkhere{} simply matches @command{ed}(1) style +regular expressions to names in the database to find the list of +matching names. The matching is case sensitive. @subsection KOM Conventions @@ -3266,7 +3325,7 @@ long lines. passwd : HOLLERITH )) -> ( ); @end example -Log in as a person. This call has been replaced by call 62, @ref{login}. +Log in as a person. This call has been replaced by @reqlink{login}. @subheading Error codes @@ -3295,9 +3354,11 @@ bit set. Log out from LysKOM. -This call does not disconnect the session; use @ref{disconnect} for -that. After issuing a logout call the client can reconnect as the same -or a different person using the @ref{login} command. +This call does not disconnect the session; use @reqdlink{disconnect} +for that@linkhere{}. + +After issuing a @req{logout} call the client can reconnect as the same +or a different person using the @reqdlink{login} call@linkhere{}. For a client that needs to log in as several different users, issuing multiple logout and login requests during one session is faster and @@ -3467,7 +3528,7 @@ The string @rarg{passwd} is not a valid password. This call returns information about a person. If the low bit of @rarg{mask} is not set, then the name is not returned. This call is -obsolete and has been replaced by call 49 @ref{get-person-stat}. +obsolete and has been replaced by @reqlink{get-person-stat}. @subheading Error codes @@ -3495,7 +3556,7 @@ Conference @rarg{person} does not exist or is secret. @end example This call sets the privileges of @rarg{person} to -@rarg{privileges}. @ref{Security}. To successfully issue this call the +@rarg{privileges}. @xref{Security}. To successfully issue this call the session must be logged in as a person with sufficient privileges. @i{Example:} @@ -3761,7 +3822,7 @@ is corrupt.) @end example This call returns a list of conferences matching the string @rarg{name}. -lookup-name has been superseded by call 76, @ref{lookup-z-name}. +lookup-name has been superseded by @reqlink{lookup-z-name}. @i{Example:} @example @@ -3778,11 +3839,12 @@ lookup-name has been superseded by call 76, @ref{lookup-z-name}. @end example This example shows two attempts to look up a name. The first example -looks up @samp{a d} and finds three matches (the middle, number 674, is -a person. The second example looks up @samp{:::} which doesn't match -any conference (or person). Call number 3 and 4 issues the same lookup -using the @ref{lookup-z-name} call. (The return value for call number 3 -has been broken into three lines to fit on the page.) +looks up @samp{a d} and finds three matches (the middle, number 674, +is a person). The second example looks up @samp{:::} which doesn't +match any conference (or person). Call number 3 and 4 issues the same +lookup using the @reqdlink{lookup-z-name} call@linkhere{}. +(The return value for call number 3 has been broken into three lines +to fit on the page.) @subheading Error codes @@ -3800,8 +3862,8 @@ This call always succeeds. @end example This call retrieves the information associated with conference -@rarg{conf-no} in the LysKOM server. This call should no longer be used; -use call 91, @ref{get-conf-stat} instead. +@rarg{conf-no} in the LysKOM server. This call should no longer be +used; use @reqdlink{get-conf-stat} instead@linkhere{}. The @rarg{mask} argument determines if the name is returned or not. If the lowest bit is 1 the name is returned, otherwise the empty string is @@ -3978,10 +4040,11 @@ count on presentation texts. 5 1 5 0 5 0 77 1 1 0} @end example -This example shows how the presentation of person 6 is being changed. To -start with, the person had no presentation, as is shown by the -@ref{get-conf-stat-old} call. Later, after the set-presentation has been -called, the presentation field has changed. +This example shows how the presentation of person 6 is being +changed. To start with, the person had no presentation, as is shown by +the @reqdlink{get-conf-stat-old} call@linkhere{}. Later, after +@req{set-presentation} has been called, the presentation field has +changed. @subheading Error codes @@ -4026,7 +4089,7 @@ This call sets the message of the day on the conference or person message. To remove an old message without setting a new one, use a @rarg{text-no} of zero. This call protects the new message from automatic deletion and removes such protection from the old message just -as @ref{set-presentation}. +as @reqlink{set-presentation}. @i{Example:} @example @@ -4046,7 +4109,7 @@ as @ref{set-presentation}. This example shows how text number one is used as the message of the day for conference six (which happens to be a mailbox.) The -@ref{get-conf-stat-old} calls before and after demonstrate the change in +@req{get-conf-stat-old} calls before and after demonstrate the change in the conference structure. @@ -4083,7 +4146,7 @@ marks. -> ( ); @end example -The set-supervisor call changes the supervisor of an existing +The @req{set-supervisor} call changes the supervisor of an existing conference. The result is that all members of the conference @rarg{admin} become supervisors of the conference @rarg{conf-no}. Typically, but not always, @rarg{admin} will be a mailbox. @@ -4105,12 +4168,12 @@ Typically, but not always, @rarg{admin} will be a mailbox. @end example This example makes the members of conference six supervisors of -conference four (which is usually the ``News about LysKOM'' conference). -The change in the conference structure is evident from the -@ref{get-conf-stat-old} calls before and after the set-supervisor call. -Note that the original supervisor was not set. In order to change the -supervisor of such a conference, the session issuing the call must have -administration privileges. +conference four (which is usually the ``News about LysKOM'' +conference). The change in the conference structure is evident from +the @reqdlink{get-conf-stat-old} calls@linkhere{} before and after the +@req{set-supervisor} call. Note that the original supervisor was not +set. In order to change the supervisor of such a conference, the +session issuing the call must have administration privileges. @subheading Error codes @@ -4170,10 +4233,11 @@ the super-conference instead. @end example This example shows how all members of conference one are given -permission to send articles to conference four. From the beginning, only -members of conference four were permitted to submit articles. The change -is evident from the @ref{get-conf-stat-old} calls before and after the -set-permitted-submitters call. +permission to send articles to conference four. From the beginning, +only members of conference four were permitted to submit articles. The +change is evident from the @reqdlink{get-conf-stat-old} +calls@linkhere{} before and after the @req{set-permitted-submitters} +call. @subheading Error codes @@ -4216,7 +4280,7 @@ that does not accept it, it is sent to the super-conference instead. @end example This example demonstrates how the super-conference of conference 1 is -set to conference 8. The calls to @ref{get-conf-stat-old} demonstrate the +set to conference 8. The calls to @reqlink{get-conf-stat-old} demonstrate the change in the conference structure. @@ -4262,9 +4326,9 @@ with protocol version 8, either a four-bit conference type or an @end example This example shows a user removing the @conftype{allow-anonymous} bit -from conference four. The @req{get-uconf-stat} call -(@pxref{get-uconf-stat}) shows all eight bits of the conference type -before and after the @req{set-conf-type} call. +from conference four. The @reqdlink{get-uconf-stat} call@linkhere{} +shows all eight bits of the conference type before and after the +@req{set-conf-type} call. @subheading Error codes @@ -4375,8 +4439,8 @@ Login required before issuing this call. -> ( ); @end example -This call has been replaced by @req{mark-text} (@pxref{mark-text}) and -@req{unmark-text} (@pxref{unmark-text}) and should no longer be used. +This call has been replaced by @reqlink{mark-text} and +@reqlink{unmark-text} and should no longer be used. This call can only set @rarg{mark-type} to a value in the range 1 to 255 (inclusive). If @rarg{mark-type} is set to 0 the mark will be removed. @@ -4418,7 +4482,7 @@ many marks, or cause the text to have too many marks. Retrieve text number @rarg{text} from the LysKOM database, starting at position @rarg{start-char} and ending at position @rarg{end-char}. The first character in the text is numbered 0 and the last can be retrieved -using @ref{get-text-stat}. It is also permitted to request a character +using @reqlink{get-text-stat}. It is also permitted to request a character position beyond the actual end of the text, in which case as much text as is available will be returned. @@ -4579,7 +4643,7 @@ One of the numbers in @rarg{text} is zero. @end example Creates a new text with contents from @rarg{text} and recipients -etc. defined by @rarg{misc-info} (@pxref{The Misc-Info List}.) In +etc. defined by @rarg{misc-info} (@pxref{The Misc-Info List}). In addition to the result, the server will send an asynchronous message to all members of any of the recipients of the new text. It is not defined whether this messages comes before or after the reply to @@ -4835,7 +4899,7 @@ Add a comment link between the text @rarg{comment-to} and the text @rarg{comment-to}). This call is used to add comment links after a text has been created. The normal procedure for creating comments is to add a @misc{comm-to} element to the text's misc-info list when the text is -created (@pxref{The Misc-Info List}.) +created (@pxref{The Misc-Info List}). @example 1 26 1 @@ -4934,13 +4998,12 @@ anyway. -> ( Text-List ); @end example -This call has been superceded by @ref{local-to-global}. +This call has been superceded by @reqlink{local-to-global}. This call retrieves an array mapping local text numbers to global numbers. It is most often used to get a list of unread texts in a -conference. Clients will usually use the @req{query-read-texts} -(@pxref{query-read-texts}) or @req{get-membership} -(@pxref{get-membership}) calls to find the last local number a user has +conference. Clients will usually use the @reqlink{query-read-texts} or +@reqlink{get-membership} calls to find the last local number a user has read in a particular conference, then use the @req{get-map} call to retrieve the global numbers of all unread texts in the conference. @@ -5061,11 +5124,11 @@ This call always succeeds -> ( Info-Old ); @end example -This call returns the @type{Info} structure for the server -(@pxref{LysKOM Data Types}. Clients should call this in order to find +This call returns the @type{Info-Old} structure for the server +(@pxref{LysKOM Data Types}). Clients should call this in order to find out which conferences are used for presentations and such. -This call has been superceded by @ref{get-info}. +This call has been superceded by @reqlink{get-info}. This call can be issued without logging in. @@ -5198,9 +5261,9 @@ set and enabled to complete call anyway. -> ( ARRAY Who-Info-Old ); @end example -This call is obsolete. Use @ref{get-static-session-info} and -@ref{who-is-on-dynamic} instead. If the server does not support these -calls, use @ref{who-is-on} instead. +This call is obsolete. Use @reqlink{get-static-session-info} and +@reqlink{who-is-on-dynamic} instead. If the server does not support these +calls, use @reqlink{who-is-on} instead. The returned list contains all sessions where a person is logged in and the invisible flag of the session is unset. @@ -5231,9 +5294,9 @@ clients. Due to possible race conditions@footnote{Another client might create a new text immediately before the server processes this @req{set-unread} call, so you might end up setting @field{last-text-read} to something unexpected.}, this call is usually -better implemented using the @req{set-last-read} call -(@pxref{set-last-read}) which explicitly sets the -@field{last-text-read} field of the membership. +better implemented using the @reqdlink{set-last-read} call@linkhere{} +which explicitly sets the @field{last-text-read} field of the +membership. @example 1 9 5 6 @@ -5274,7 +5337,8 @@ Not a member of conference @rarg{conf-no}. This call sets the login message of LysKOM. It can only be executed by a privileged person, with the proper privileges enabled. A somewhat less -convenient way of doing this is to use the @ref{set-info} call. +convenient way of doing this is to use the @reqdlink{set-info} +call@linkhere{}. @example 1 36 @@ -5312,10 +5376,11 @@ The text @rarg{text-no} already has the maximum number of marks. -> ( ); @end example -Sets the security level for the current session to @rarg{level} -(@pxref{Security} for details.) The only levels that make any sense -right now are 0 and 255. This call may be issued by any person, but -without the right privilege bits set, it has no effect. +Sets the security level for the current session to @rarg{level}. +@xref{Security}, for details about security levels. The only levels +that make any sense right now are 0 and 255. This call may be issued +by any person, but without the right privilege bits set, it has no +effect. @example 1 41 1 @@ -5327,7 +5392,7 @@ without the right privilege bits set, it has no effect. @end example This example shows how @req{enable} makes a privileged call possible, -in this case a call to @ref{set-motd-of-lyskom}. +in this case a call to @reqlink{set-motd-of-lyskom}. @subheading Error codes @@ -5360,10 +5425,10 @@ server implementation. This call is privileged in most implementations. @t{=1} @end example -This example shows how the @ref{enable} call is used to enable all -privileges, then the @req{sync-kom} call is used to save the database. -The server responds with two asynchronous messages signaling that the -database is being saved. +This example shows how the @reqdlink{enable} call is used to enable +all privileges@linkhere{}, then the @req{sync-kom} call is used to +save the database. The server responds with two asynchronous messages +signaling that the database is being saved. @subheading Error codes @@ -5418,7 +5483,7 @@ Administrator bit not set or privileges not enabled. -> ( ); @end example -This call can been replaced by @ref{send-message}. It is a privileged +This call can been replaced by @reqlink{send-message}. It is a privileged call. @subheading Error codes @@ -5509,14 +5574,14 @@ person's membership list. -> ( Text-List ); @end example -This call is obsolete; instead you should use @ref{map-created-texts}. +This call is obsolete; instead you should use @reqlink{map-created-texts}. This call returns a list of the texts written by a person. @rarg{person} is the person whose created texts are to be retrieved. @rarg{first} is the first text to retrieve. @rarg{no-of-texts} is the number of texts to retrieve. -This call is essentially the same as @ref{get-map}, but instead of +This call is essentially the same as @reqlink{get-map}, but instead of returning the texts sent to a single conference, it returns the texts written by a single person to any conference. The number of texts written by any one person is contained in the Person record for that @@ -5623,7 +5688,7 @@ The conference @rarg{conf} does not exist or is secret. This call returns the person @rarg{pers-no}. This call does not return all the information a client usually needs since the name is not -included in the Person data structure. Use @ref{get-conf-stat} on the +included in the Person data structure. Use @reqlink{get-conf-stat} on the same number to get additional information about the person. @example @@ -5703,13 +5768,14 @@ The conference @rarg{conf-no} does not exist or is secret. -> ( ARRAY Who-Info ); @end example -This call is obsolete. Please use @ref{who-is-on-dynamic} and -@req{get-static-session-info} instead. Nonetheless, servers should -support this call since many clients still use it. +This call is obsolete. Please use @reqlink{who-is-on-dynamic} and +@reqdlink{get-static-session-info} calls instead@linkhere{}. +Nonetheless, servers should support this call since many clients still +use it. This call should simply return a list of visible sessions (sessions where a person is logged in and the invisible flag is unset). The data -structure is described elsewhere (@pxref{LysKOM Data Types}.) +structure is described elsewhere (@pxref{LysKOM Data Types}). @subheading Error codes @@ -5822,8 +5888,8 @@ message. @end example This call is obsolete. It has been replaced by -@req{get-session-info-ident}, which in turn is also obsolete. See -@pxref{get-session-info-ident} for more information. +@reqlink{get-session-info-ident}, which in turn is also obsolete. See +@req{get-session-info-ident} for more information. @subheading Error codes @@ -5924,7 +5990,7 @@ This call always succeeds. This call sets the user-area field for the person @rarg{pers-no} in the database to the text @rarg{user-area}. The user area is used to store -client data for a particular person. See @pxref{The User Area} for more +client data for a particular person. @xref{The User Area}, for more details. @example @@ -6007,9 +6073,9 @@ This call never fails. -> ( Text-No ); @end example -Similar to @pxref{create-text-old}, but the text is created the author -field set to zero. Not even the server has a record of who created the -text. +Similar to @reqlink{create-text-old}, but the text is created with the +@field{author} field set to zero. Not even the server has a record of +who created the text. The original intended use for this call was for importing texts from other sources, such as WWW, FTP or Gopher, but some clients include @@ -6154,7 +6220,7 @@ This call is used to log in. The session is logged in as person number @rarg{person} if @rarg{passwd} is the correct password for that person. If @rarg{invisible} is true, the session is invisible. It will not be returned by @req{who-is-on} and @req{who-is-on-ident} and the -dynamic session info (@pxref{LysKOM Data Types} +dynamic session info (@pxref{LysKOM Data Types}) will have the invisible flag set. Invisible sessions are primarily used by software agents that do not act @@ -6205,9 +6271,9 @@ Attempt to log in as person number 0. -> ( ARRAY Who-Info-Ident ); @end example -This call is obsolete. It has been replaced by @pxref{who-is-on-dynamic} -and @pxref{get-static-session-info}. It returns a list of all visible -sessions. +This call is obsolete. It has been replaced by +@reqlink{who-is-on-dynamic} and @reqlink{get-static-session-info}. It +returns a list of all visible sessions. @subheading Error codes @@ -6223,8 +6289,8 @@ This call always succeeds. -> ( Session-Info-Ident ); @end example -This call is obsolete. Use @pxref{who-is-on-dynamic} and -@req{get-static-session-info} instead. +This call is obsolete. Use @reqlink{who-is-on-dynamic} and +@reqlink{get-static-session-info} instead. @subheading Error codes @@ -6245,10 +6311,10 @@ The session @rarg{session-no} does not exist. -> ( ARRAY Pers-No ); @end example -This call is obsolete. It has been replaced by @pxref{re-z-lookup}. It -returns a list of persons matching the regular expression -@rarg{regexp}. The regexp syntax used is that of the @command{ed}(1) Unix -utility. +This call is obsolete. It has been replaced by @reqlink{re-z-lookup}. +It returns a list of persons matching the regular expression +@rarg{regexp}. The regexp syntax used is that of the @command{ed}(1) +Unix utility. @subheading Error codes @@ -6268,7 +6334,7 @@ not a correct regexp. -> ( ARRAY Conf-No ); @end example -This call is obsolete. It has been replaced by @pxref{re-z-lookup}. It +This call is obsolete. It has been replaced by @reqlink{re-z-lookup}. It returns a list of conferences matching the regular expression @rarg{regexp}. The regexp syntax used is that of the @command{ed}(1) Unix utility. @@ -6293,10 +6359,10 @@ not a correct regexp. -> ( ARRAY Pers-No ); @end example -This call is obsolete. It has been replaced by @pxref{lookup-z-name}. +This call is obsolete. It has been replaced by @reqlink{lookup-z-name}. This call returns a list of persons with names matching the -contracted name in @rarg{name}. See @pxref{Name Expansion} for a +contracted name in @rarg{name}. @xref{Name Expansion}, for a description of the matching process. @subheading Error codes @@ -6314,10 +6380,10 @@ This call always succeeds. -> ( ARRAY Conf-No ); @end example -This call is obsolete. It has been replaced by @pxref{lookup-z-name}. +This call is obsolete. It has been replaced by @reqlink{lookup-z-name}. This call returns a list of conferences with names matching the -contracted name in @rarg{name}. See @pxref{Name Expansion} for a +contracted name in @rarg{name}. @xref{Name Expansion}, for a description of the matching process. @subheading Error codes @@ -6340,8 +6406,8 @@ This call is used to tell the server which client and which version of that client is being used. The name of the client is passed in @rarg{client-name} and the version in @rarg{client-version}. The information sent in this call is made available to other sessions -through the @pxref{get-client-name} and @pxref{get-client-version} -calls. This call should be used exactly once per session. +through the @reqlink{get-client-name} and @reqdlink{get-client-version} +calls@linkhere{}. This call should be used exactly once per session. The following names are currently registered: @@ -6367,13 +6433,13 @@ The following names are currently registered: @t{=4 4H0.45} @end example -In this example the @pxref{who-am-i} call is used to find the ID of the -current session. Next, set-client-version is used to set the name of the -client to ``elisp-client'' and the version to ``0.45''. The third call -is to @pxref{get-client-name}, which returns the string just sent to the -server. Finally @pxref{get-client-version} is used to retrieve the -client version of session number 7, which is, as expected, the string -``0.45''. +In this example the @reqdlink{who-am-i} call is used to find the ID of +the current session@linkhere{}. Next, @req{set-client-version} is used +to set the name of the client to ``elisp-client'' and the version to +``0.45''. The third call is to @reqdlink{get-client-name}, which +returns the string just sent to the server@linkhere{}. Finally +@reqlink{get-client-version} is used to retrieve the client version of +session number 7, which is, as expected, the string ``0.45''. @subheading Error codes @@ -6398,11 +6464,11 @@ is undefined. This call returns the name of the client that owns session number @rarg{session}. This client name string returned is the one set by the -client using @pxref{set-client-version}. If @req{set-client-version} +client using @reqlink{set-client-version}. If @req{set-client-version} has not been issued in session number @rarg{session}, the empty string is returned. -See @pxref{set-client-version} for an example of this call. +@xref{set-client-version}, for an example of this call. @subheading Error codes @@ -6425,11 +6491,11 @@ The session @rarg{session} does not exist. This call returns the version of the client that owns session number @rarg{session}. This client version string returned is the one set by -the client using @pxref{set-client-version}. If +the client using @reqlink{set-client-version}. If @req{set-client-version} has not been issued in session number @rarg{session}, the empty string is returned. -See @pxref{set-client-version} for an example of this call. +@xref{set-client-version}, for an example of this call. @subheading Error codes @@ -6454,7 +6520,7 @@ The session @rarg{session} does not exist. This call associates the mark @rarg{mark-type} with the text @rarg{text}. The list of marks set by a person can be retrieved using -the @pxref{get-marks} call. +the @reqdlink{get-marks} call@linkhere{}. Currently, servers do not associate any particular meaning to the different types of marks, but that may change in the future. Currently, @@ -6470,7 +6536,7 @@ servers should not delete texts that have marks, except by user request. @end example This example shows how a person with no marks set sets mark 230 on text -number 110. The calls to @pxref{get-marks} show the effect of the call. +number 110. The calls to @reqlink{get-marks} show the effect of the call. @subheading Error codes @@ -6543,9 +6609,9 @@ the result will include non-mailbox conferences. If @rarg{want-persons} is true, then the result will include mailbox conferences. -See also @pxref{lookup-z-name} for an alternative way to look up names. +See also @ref{lookup-z-name}, for an alternative way to look up names. -Refer to @pxref{Name Expansion} for more details on how name lookup +Refer to @ref{Name Expansion}, for more details on how name lookup works. @example @@ -6623,9 +6689,9 @@ is true, then the result will include conferences that are not mailboxes. If @rarg{want-pers} is true, then the result will include conferences that are mailboxes. -See also @pxref{re-z-lookup} for an alternative way to look up names. +See also @ref{re-z-lookup}, for an alternative way to look up names. -Refer to @pxref{Name Expansion} for details on the matching process. +Refer to @ref{Name Expansion}, for details on the matching process. @example 1 76 0H 1 1 @@ -6676,7 +6742,7 @@ a specific number of unread texts in a particular conference. This example shows how person 7 originally had read everything up to and including local text number 6 in conference 6. After the call to -@req{set-last-read}, the @pxref{query-read-texts} call reports that +@req{set-last-read}, the @reqlink{query-read-texts} call reports that person 7 has read everything up to and including local text number 3. @subheading Error codes @@ -6704,10 +6770,10 @@ Not a member of conference @rarg{conference}. This call returns some information about conference @rarg{conference}. The information it returns is sufficient for most uses of conference information, and this call should be used instead of -@pxref{get-conf-stat} wherever possible. It uses less bandwidth and -the lyskomd server always keeps all @type{UConference} objects in -memory, so this call is significantly faster than -@pxref{get-conf-stat}. +@reqdlink{get-conf-stat} wherever possible@linkhere{}. It uses less +bandwidth and the lyskomd server always keeps all @type{UConference} +objects in memory, so this call is significantly faster than +@req{get-conf-stat}. This is also currently the only way to get all the flag bits of the conference. @@ -6725,7 +6791,7 @@ conference. @t{=4 11HDavid Byers 11111000 0 77} @end example -This example shows the difference between @pxref{get-conf-stat-old} and +This example shows the difference between @reqlink{get-conf-stat-old} and @req{get-uconf-stat}. In the first two examples conference 6 is retrieved, and in the second two, conference 7, which happens to be a person, is retrieved. Note the difference in length of the flag field. @@ -6750,10 +6816,10 @@ The conference @rarg{conference} does not exist or is secret. -> ( ); @end example -This call sets the server information retrieved by @ref{get-info-old}. The -version number in the info structure is ignored (but must be present); -all other fields are stored permanently in the LysKOM database. This is -a privileged call. +This call sets the server information retrieved by +@reqlink{get-info-old}. The version number in the info structure is +ignored (but must be present); all other fields are stored permanently +in the LysKOM database. This is a privileged call. @i{Example:} @example @@ -6807,7 +6873,7 @@ asynchronous messages listed in @rarg{request-list}. The server must send these messages to the client when applicable, but may also send other types of messages if it so desires. The list of currently requested asynchronous messages may be retrieved using the -@ref{query-async} call. +@reqdlink{query-async} call@linkhere{}. Don't forget that message type 12 is personal, group and global text messages. Most users will not want these turned off. @@ -7006,7 +7072,7 @@ This call always succeeds. @end example Creates a new text with contents from @rarg{text} and recipients -etc. defined by @rarg{misc-info} (@pxref{The Misc-Info List}.) In +etc. defined by @rarg{misc-info} (@pxref{The Misc-Info List}). In addition to the result, the server will send an asynchronous message to all members of any of the recipients of the new text. It is not defined whether this messages comes before or after the reply to @@ -7075,7 +7141,7 @@ Too many misc-items or aux-items were specified. @end example -Similar to @pxref{create-text}, but the text is created the author +Similar to @reqlink{create-text}, but the text is created the author field set to zero. Not even the server has a record of who created the text. @@ -7368,7 +7434,7 @@ One of the items in @rarg{add} is illegal for some reason. @end example This call returns the @type{Info} structure for the server -(@pxref{LysKOM Data Types}. Clients should call this in order to find +(@pxref{LysKOM Data Types}). Clients should call this in order to find out which conferences are used for presentations and such. It can be issued without logging in. @@ -7390,7 +7456,7 @@ This call always succeeds. @end example This call modifies the aux-item list of the server information (which -can be retrieved using @ref{get-info}.) It only succeeds when issued by +can be retrieved using @reqlink{get-info}.) It only succeeds when issued by a person with the admin bit set and privileges enabled. The items in @rarg{items-to-delete} are removed, and the items in @@ -7787,23 +7853,26 @@ The above example shows three calls to @req{local-to-global}. (Extra newlines have been inserted in the result of the two final calls to make the result more readable.) -The first call requests information about the first five existing texts -in conference 93. The result contains information about texts in the -range [1-7), and there are more texts. The server uses the dense form -of the Text-Mapping. As can be seen from the result, they have local -text numbers 1, 2, 3, 4 and 6. The global text number corresponding to -local text number 5 is sent as 0, indicating that it doesn't exist. +The first call requests information about the first five existing +texts in conference 93. The result contains information about texts +in the range 1-7 (including the lower limit, but not the upper), and +there are more texts. The server uses the dense form of the +@type{Text-Mapping}. As can be seen from the result, they have local +text numbers 1, 2, 3, 4 and 6. The global text number corresponding +to local text number 5 is sent as 0, indicating that it doesn't exist. In the second call, the client requests the same information, but one additional text. The result looks dramatically different, since the -next existing text in this example has local text number 62. The result -contains information about texts in the range [1-63), and there are more -texts. The server of course uses the sparse form of the Text-Mapping. +next existing text in this example has local text number 62. The +result contains information about texts in the range 1-63 (including +the lower limit, and excluding the upper), and there are more texts. +The server of course uses the sparse form of the @type{Text-Mapping}. The final call shows what happens when @rarg{first-local-no} doesn't -exist. The result contains information about texts in the range -[50-70); only local text number 62 and 69 actually exists in that -range. 69 is the highest local text number. +exist. The result contains information about texts in the range 50-70 +(including the lower limit and excluding the upper); only local text +number 62 and 69 actually exists in that range. 69 is the highest +local text number. (Note that local text number 69 corresponds to global text number 1006, which is lower than 1302. Situations like this often occurs when @@ -7949,14 +8018,15 @@ flags. Asynchronous messages are information messages sent from the server to the client. Clients can select which messages to receive by issuing an -@pxref{accept-async} call. They can find out which messages are being -sent by issuing the @pxref{query-async} call. Note that the server can -send other messages as well. For example, a broadcast message from a -person with admin bits set may get through even if the client has not -requests broadcast messages. +@reqdlink{accept-async} call@linkhere{}. They can find out which +messages are being sent by issuing the @reqdlink{query-async} +call@linkhere{}. Note that the server can send other messages as +well. For example, a broadcast message from a person with admin bits +set may get through even if the client has not requested broadcast +messages. When a connection is opened some messages are selected by default. -Clients should use the @ref{accept-async} call to select which +Clients should use the @req{accept-async} call to select which messages they want. Servers are encouraged to preselect the @async{async-new-text-old}, @async{async-new-name}, @async{async-sync-db}, @async{async-leave-conf}, @async{async-login}, @@ -7978,7 +8048,7 @@ calls. The messages with status "O" are included here for historical purposes only. Servers are not required to handle them, and are encouraged to reject them if a client uses it as an argument to -@ref{accept-async}. +@reqlink{accept-async}. @menu * async-new-text-old:: r A text has been created (0) @@ -8106,8 +8176,8 @@ for the removal is. Possible reasons include: @itemize @bullet -@item The session issued a @ref{sub-member} call. -@item Some other session issued a @ref{sub-member} call. +@item The session issued a @reqdlink{sub-member} call@linkhere{}. +@item Some other session issued a @reqdlink{sub-member} call@linkhere{}. @item The conference was deleted. @item The person was deleted. @end itemize @@ -8264,7 +8334,7 @@ This message indicates that the membership for @aarg{pers-no} in conference @aarg{conf-no} has been added. This message is currently sent only to @aarg{pers-no}, but that may change in the future. -See also @pxref{async-leave-conf}. +See also @ref{async-leave-conf}. @@ -8909,7 +8979,7 @@ to the server should attempt to ensure that texts confirm to the above conventions. The same conventions apply to messages sent with the -@pxref{send-message} call. +@reqdlink{send-message} call@linkhere{}. @node Content type specification @@ -8931,7 +9001,7 @@ aux-items to specify content type instead. This convention is only implemented by the Emacs-Lisp client, but since I work on that client, I'm free to write about it. This is a subprotocol between clients, transferred by messages sent using -@pxref{send-message}. +@reqlink{send-message}. @node Importing and Exporting E-Mail -- GitLab