Commit fa163ab3 authored by David Byers's avatar David Byers
Browse files

New file

parent 34b417f4
......@@ -54,6 +54,7 @@ $Id$
@author Linus Tolke @file{linus@@lysator.liu.se}
@author Per Cederqvist @file{ceder@@lysator.liu.se}
@author Inge Wallin @file{ingwa@@isy.liu.se} eller @file{inge@@lysator.liu.se}
@author David Byers @file{byers@@lysator.liu.se}
@page
Copyright @copyright{} 1991,1992,1993,1994 Lysator
......@@ -89,6 +90,7 @@ Lysator vid Link
Den som för tillfället arbetar mest med LysKOMs emacslispklient är:
Linus Tolke --- @file{linus@@lysator.liu.se}
David Byers --- @file{byers@@lysator.liu.se}
Andra mer eller mindre aktiva personer är:
......@@ -153,6 +155,7 @@ K
* Prompten:: Hur LysKOMs prompt fungerar.
* Scrollning:: Hur LysKOM scrollar och varför.
* Filtrering:: Hur du väljer bort vissa inlägg.
* Kommandon:: Vilka kommandon finns och vad gör de.
* Administratörskommandon:: Administratörskommandon
......@@ -180,6 +183,7 @@ Kommandon
* Ändra personuppgifter::
* Ändra mötesuppgifter::
* Meddelande:: Meddelande
* Filtrera:: Kommandon för att filtrera inlägg.
* Prioritera:: Kommando för att prioritera om möten.
* Ändra inställningarna::
......@@ -484,6 +488,7 @@ f
@menu
* Prompten:: Hur LysKOMs prompt fungerar.
* Scrollning:: Hur LysKOM scrollar och varför.
* Filtrering:: Hur du väljer bort vissa inlägg.
* Kommandon:: Vilka kommandon finns och vad gör de.
* Administratörskommandon:: Administratörskommandon
......@@ -507,14 +512,52 @@ surrogat f
alfarelease.
@node Scrollning, Kommandon, Prompten, Köra LysKOM
@node Scrollning, Filtrering, Prompten, Köra LysKOM
@comment node-name, next, previous, up
@section Scrollning
Om inte allt ryms på skärmsidan så syns en procentsats i mode-raden.
Tryck på mellanslag när du läst klart så scrollas nästa sida fram.
@node Kommandon, Administratörskommandon, Scrollning, Köra LysKOM
@node Filtrering, Kommandon, Scrollning, Köra LysKOM
@comment node-name, next, previous, up
@section Filtrering
För att hantera den stora mängd information som kan finnas i LysKOM
finns funktioner för att filtrera inlägg. Filtrering innebär att inlägg
med vissa egenskaper inte visas.
LysKOMs filtreringsfunktioner är mycket flexibla, och tillåter filter
som fritt kombinerar författare, ärende, textinnehåll och mottagare,
angivna som text, med reguljära uttryck eller, för författare och
mottagare, nummer. Varje del i ett filter kan omfatta alla inlägg som
antingen uppfyller eller inte uppfyller villkoren.
Filtreringen kan göras på tre olika sätt:
@table @asis
@item Visa inte
Visa första raden i inläggshuvudet och lista kommentarer till
inlägget. Denna filtermetod är mest användbar om man vill välja om man
skall se vissa inlägg i en diskussion.
@item Hoppa över
Hoppa över texten och hämta nästa text i läslistan. Endast ett
meddelande om att inlägget har hoppats över visas. Denna metod är
användbar om man aldrig vill se vissa inlägg i en diskussion.
@item Hoppa över kommentarer
Som hoppa över, men hoppar dessutom över alla kommentarer under
inlägget. Denna metod är användbar om man helt vill undvika vissa
diskussioner.
@end table
Filter är antingen tillfälliga eller permanenta. Tillfälliga filter
försvinner när du avslutar Emacs.
@node Kommandon, Administratörskommandon, Filtrering, Köra LysKOM
@comment node-name, next, previous, up
@section Kommandon
......@@ -559,6 +602,7 @@ f
* Ändra personuppgifter::
* Ändra mötesuppgifter::
* Meddelande:: Meddelande
* Filtrera:: Kommandon för att filtrera inlägg.
* Prioritera:: Kommando för att prioritera om möten.
* Ändra inställningarna::
......@@ -620,6 +664,13 @@ osv. F
och söker klienten bara rekursivt vidare om kommentaren i varje steg
är nyare än det kommenterade inlägget.
@item @kbd{H}
@itemx @code{Superhoppa}
@findex Superhoppa
@kindex H
Skapa ett filter som hoppar över alla texter i det aktuella mötet med
samma ärenderad som den senast lästa texten. Detta kommando är bra om
man vill hoppa över alla grenar i en gamma diskussion.
@item @kbd{e}
@itemx @code{Endast läsa senaste}
......@@ -1458,7 +1509,90 @@ skickar iv
@end table
@node Prioritera, Ändra inställningarna, Meddelande, Kommandon
@node Filtrera, Prioritera, Meddelande, Kommandon
@comment node-name, next, previous, up
@subsection Filtrera
@comment byers
@table @asis
@item @kbd{ff}
@itemx @code{Filtrera Författare}
@findex Filtrera Författare
@kindex ff
Lägger till ett filter som tar bort alla inlägg av en viss
person. Frågar efter författare, möte och typ av filtrering.
@item @code{fä}
@itemx @code{Filtrera Ärende}
@findex Filtrera Ärende
@kindex fä
Lägger till ett filter som tar bort alla inlägg med en viss
ärenderad. Frågar efter ärende, möte och typ av filtrering.
@item @kbd{ft}
@itemx @code{Filtrera Text}
@findex Filtrera Text
@kindex ft
Lägger till ett filter som tar bort alla inlägg som innehåller en viss
text. Frågar efter text, möte och typ av filtrering.
@item @kbd{äf}
@itemx @code{Ändra Filter}
@findex Ändra Filter
@kindex äf
Poppar upp en ny buffert som listar alla filter. I den här bufferten har
man tillgång till speciella kommandon för att ändra, ta bort och lägga
till nya filter. De kommandon som finns är:
@table @asis
@item @kbd{n, C-n}
Flytta markören till nästa rad i listan.
@item @kbd{p, C-p}
Flytta markören till föregående rad i listan.
@item @kbd{N, M-n}
Flytta markören till nästa filter i listan.
@item @kbd{P, M-p}
Flytta markören till föregående filter i listan.
@item @kbd{>, M->}
Flytta markören till slutet av sista filtret i listan.
@item @kbd{<, M-<}
Flytta markören till första raden av första filtret i listan.
@item @kbd{d, C-d}
Radera den rad markören står på.
@item @kbd{D, M-d}
Radera det filter markören står i.
@item @kbd{i}
Lägg till en rad i ett filter. Frågar efter filterfunktion.
@item @kbd{I, M-i}
Lägg till ett filter. Frågar efter filtertyp och tidsbegränsning.
@item @kbd{a}
Byt filtertyp. Kommandot växlar mellan alla tillgängliga alternativ.
@item @kbd{t}
Byt tidsbegränsning (bara mellan permanent och tillfällig).
@item @kbd{s}
Spara filterlistan.
@item @kbd{q}
Avsluta.
@end table
@end table
@node Prioritera, Ändra inställningarna, Filtrera, Kommandon
@comment node-name, next, previous, up
@subsection Prioritera
......@@ -1975,6 +2109,25 @@ Antalet rader som Vilkabufferten skall visas med n
@ref{Annat, Visa vilkalistan}.
@item @code{kom-text-buttons}
@itemx @code{(Komplicerad)} (@code{elisp})
@vindex kom-text-buttons
En lista med sökmönser som används för att skapa aktiva områden i
texten. Värdet skall vara en lista av listor med formen
@example
(regexp action arg)
@end example
där REGEXP är en regexp som eftersöks i texten, ACTION är funktionen som
skall anropas vid musklick och ARG är ett extra argument till
funktionen. En knapp skapas på texten som matchar hela REGEXP, eller om
REGEXP innehåller en @code{\(\)}-konstruktion, den text som matchas av
den första sådana konstruktionen.
@item{kom-mosaic-command}
@itemx @code{"/usr/local/bin/mosaic"} (@code{elisp})
@vindex kom-mosaic-command
Variabeln anger var mosaic finns.
@item @code{kom-do-when-starting}
@itemx @code{nil} (@code{elisp})
@vindex kom-do-when-starting
......
LysKOM Extended String Formatting
By David Byers
CONTENTS
1 .................................... The Format String
2 .................................... Format Directives
2.1 ................................ Format nLetters
2.2 ................................ Format Arguments
2.3 ................................ Format Flags
3 .................................... Formatting Functions
3.1 ................................ Main Functions
3.2 ................................ Auxiliary functions
3.3 ................................ Related functions
4 .................................... Format States
1. THE FORMAT STRING
The format string is a character string which is inserted verbatim
into the result string with the exception of special format directives
which cause values from the argument list to be inserted.
2. FORMAT DIRECTIVES
The syntax of all format directives is
%[pad-length]#[arg-no][flags][format-letter]
pad-length is the length of the resulting string. If it is negative,
is will be left-justified in the length, otherwise
right-justified. This field is optional.
arg-no is the argument number from the argument list to insert, and
must be prefixed by a hash mark when it exists. This field is
mandatory for all format directives that use an argument.
flags are optional flags applicable to certain format letters. When
not applicable, the flags field is ignored. Flags are optional.
format-letter is one of the format letters given below. It determines
how the given argument is inserted.
2.1 Format Letters
% - Insert a percent character. This directive does not use an
argument.
s - Insert a string. If the argument is a character string it is
inserted verbatim. If it is a symbol, the name of the symbol is
inserted.
d - Insert an integer in decimal format.
o - Insert an integer in octal format.
x - Insert an integer in hexadecimal format.
c - Interpret and insert an integer as a single character.
@ - The argument must be a valid text property list, and will be
inserted into the buffer at the point of this directive provided
one of the lyskom-format-insert functions was called. The extent
of the format in the buffer is to the end of the current subformat
string or the entire format string if processing is at the top
level.
[ - Begin subformat. This directive does not use an argument.
] - Exit subformat. This directive does not use an argument.
M - The argument must be a conf-stat or character string. The
directive inserts the name of the conference (or the character
string) and adds text properties as appropriate.
m - The argument must be a conf-stat or an integer. The directive
inserts the conference number or the integer in decimal format and
adds text properties as appropriate.
P - The argument must be a conf-stat or a character string. This
direcive works similarly to %M, but assums the conf-stat or string
represents a LysKOM user, not a regular conference.
p - The argument must be a conf-stat or integer. This directive works
similarly to %m, but assumes the conf-stat or integer representes
a LysKOM user, not a regular conference.
t - The argument must be a character string or a text structure. The
text is inserted and appropriate text properties added. The first
line of the text is NOT assumed to be the subject line.
n - The argument must be an integer or a text-stat. The integer or
text-no is inserted and appropriate text properties added.
r - The argument is a string and will be formatted as a subject line.
2.2 Format Arguments
The type of argument appropriate for each format directive is
presented above. In addition, all format directives accept a
format-props structure as an argument. The format-props structure
contains a regular argument as shown above and text properties to be
applied to the extent of the text inserted by the directive.
The format-props structure is constructed using the make-format-props
function which takes the regular format argument and the property list
as its two arguments.
The %[ direcive also accepts format-props structures as its (optional)
argument, but ignores the regular argument part of the structure, but
applies the text properties to the entire subformat result. Thus,
(lyskom-format-insert "%#1[From: %#2P]\n"
(make-format-props nil '(face blue))
pers-conf-stat)
would format the entire line blue. The same effect can be achieved by
using the %@ directive as the first directive in the subformat string.
2.3 Format Flags
The M, m, P, p, r and n directives accept the : character as a flag.
If it is supplied, the regular text properties are not inserted.
3. FORMATTING FUNCTIONS
The functions used for string formatting can be divided into main
functions, auxiliary functions and related functions. Main functions
are those that are commonly called to format strings. Auxiliary
functions are those that are used by the main functions. Related
functions are those that accept the private data types of the string
formatting functions.
3.1 Main Functions
(lyskom-format FORMAT-STRING &rest ARGL)
Format arguments according to FORMAT-STRING and ARGL. This
function is similar to the elisp function format, but uses
LysKOM's extended formatting strings. Note that since this
function returns a string, text properties will be lost.
(lyskom-format-insert FORMAT-STRING &rest ARGL)
Format and insert a string at point according to FORMAT-STRING
and ARGL. The result of this function is similar to inserting
the result of lyskom-format, but also inserts text properties.
(lyskom-format-insert-before-prompt FORMAT-STRING &rest ARGL)
Same as lyskom-format-insert, but the text is inserted before
the LysKOM prompt, no matter where point is.
(insert-state STATE CONVERT-ISO)
Insert the format state STATE at point. If CONVERT-ISO is
non-nil and kom-emacs-knows-iso-8859-1 is nil the result
string will be converted to swascii before insertion. This
function calls lyskom-do-insert-before-prompt to do most of
the work.
(lyskom-insert-state-before-prompt STATE)
Insert the format state STATE before the prompt in the current
buffer. This function calls lyskom-do-insert-before-state to
do most of the work.
(lyskom-insert-state STATE)
Insert the format state STATE at point in the current
buffer. This function calls insert and lyskom-insert-props to
do most of the work.
(lyskom-do-format FORMAT-STRING &rest ARGL)
Generates and returns a format state according to
FORMAT-STRING and ARGL. This function is used by other
lyskom-format functions to create their results.
3.2 Auxiliary Functions
(lyskom-format-aux FORMAT-STATE)
Same as lyskom-do-format, but does less error checking and
requires a format state as its argument. lyskom-format-aux can
be, and is, called recursively.
(lyskom-format-aux-help FORMAT-STATE PAD-LENGTH ARG-NO
FORMAT-LETTER EQUALS-FLAG COLON-FLAG
PAD-LETTER)
From a parsed format directive, augment the format state. This
function is used exclusively by lyskom-format-aux. UTSL.
(lyskom-format-tweak-format-state FORMAT-STATE)
If the format state FORMAT-STATE has any unterminated property
bounds in the text property list, modify them to terminate at
the end of the current result. This function is what makes
subformat strings possible.
3.3 Related Functions
(lyskom-insert-props START PROPL)
Starting at START in the current buffer, insert the text
properties indicated in PROPL. PROPL is the text properties
part of a format state, described elsewhere.
(lyskom-do-insert-before-prompt STRING PROPL)
Insert the string STRING with the text properties in PROPL
before the prompt in the current buffer. PROPL should either
be NULL or the text property list from a format state.
4. FORMAT STATES
The extended string formatting is based on a format state. The format
state encodes information about the format string, the format
arguments, the format results and the text properties of the results.
Format states contain the following fields:
start - The position to start looking at the format string. This is
incremented successively as the format string is parsed.
argl - The format argument list. This is the argument list passed to
all format functions.
parts - Parts is a list of strings that together represent the result
of the formatting. For reasons of efficiency they are stored
in reverse order. For instance, a parts field of ("A" "BC"
"D") would represent a format result of "DBCA".
output-length - This is an integer that is equal to the total number
of characters that have been ouput to the parts list up to
now. It is used primarily for creating the text property
list.
propl - The text properties list. This is a list of elements of the
following format: (START END PROPERTIES). Start is the
starting position in the output of the properties. End is the
end position in the output of the properties. Properties is a
property list, identical to what is used for
add-text-properties.
Format states are manipulated using the following functions defined in
clienttypes.el.
(make-format-state FORMAT-STRING START ARGL PARTS OUTPUT-LENGTH PROPL)
Creates a new format state based on its arguments.
(format-state-p ARG)
Tests if ARG is a format state.
(format-state->format-string ARG)
Extracts the format string from the format state ARG
(set-format-stat->format-string ARG STR)
Sets the format string in state ARG to STR.
(format-state->start ARG)
Extracts the starting position of format state ARG.
(set-format-state->start ARG POS)
Set the starting point of format string parsing for the format
state ARG to POS.
(format-state->args ARG)
Returns the ARGL field of the format state ARG.
(set-format-state->args ARG ARGL)
Set the ARGL field of format state ARG to ARGL.
(format-state->args-length ARG)
Returns the length of the argl field of the format state ARG.
(format-state->parts ARG)
Returns the parts field of format state ARG.
(set-format-state->parts ARG OUTPUT-LIST)
Sets the parts field of format state ARG to OUTPUT-LIST.
(format-state->output-length ARG)
Returns the output-length field of format state ARG.
(set-format-state->output-length ARG LEN)
Sets the output-length field of format state ARG to LEN.
(format-state->propl ARG)
Returns the propl field of format state ARG.
(set-format-state->propl ARG PROPL)
Sets the propl field of format state ARG to PROPL.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment