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

Jag tror vi klarar oss i Emacs 20.1

edit-text.el: lyskom-edit-mode är en minor mode
utilities.el: Ny version av lyskom-lookup-keys
commands.el: Gör alltid lyskom-end-of-command i LysKOM-bufferten.

Lite småfixar för att elint skall klaga lite mindre.
parent 6acaf3da
......@@ -7,14 +7,35 @@ Version 0.45.1 av elispklienten finns nu tillg
<URL:ftp://ftp.lysator.liu.se/pub/lyskom/elisp-client/>
Filen heter lyskom-0.45.1.tar.gz, och en kopia av den text du läser
just nu finns under namnet NEWS-0.45 samt under namnet NEWS-0.45.1 i
just nu finns under namnet NEWS-0.45.1 samt under namnet NEWS-0.45.1 i
tar-arkivet.
David Byers <byers@lysator.liu.se>
* Se NEWS-0.45 för information om 0.45 i största allmänhet.
* Se NEWS-0.45 för information om 0.45 i största allmänhet. Rätt
mycket har ändrats från 0.44.2, så det kan vara värt att läsa detta.
* Fitjurs och förbättringar
** Om man vill ändra kom-tell-phrases så är det enklaste sättet att
helt enkelt sätta variabeln i sin .emacs. Innehållet kommer att
kopieras när man laddar LysKOM. Om man vill ändra kom-tell-phrases
efter att ha ladded lyskom.elc så är lösningen att UTSL.
** lyskom-edit-mode-mode-hook är tillbaks. lyskom-edit-mode-mode-map
är dock fortfarande borta, och kommer inte att komma tillbaks.
Motsvarande funktionalitet går antagligen att få genom att göra
use-local-map ifrån lyskom-edit-mode-mode-hook.
** Edit-moden är numera en minor mode. Det gör att man enkelt kan
välja "grundmode" via lyskom-edit-mode-mode-hook och att man kan
byta mode medan man skriver ett inlägg.
** Klienten startar Netscape bättre på en Windows-maskin. Patch från
Daniel Bratell.
* Bugfixar
......@@ -24,3 +45,21 @@ tar-arkivet.
** Fel som hade med utskrift av kommandonamn är rättade.
** C-c } k är kanske tillbaks i edit-moden.
** kom-write-text och vänner är lite robustare m.a.p. fel i
lyskom-edit-mode-mode-hook.
** En bug som gjorde att Status Session i vissa fall inte fungerade
har blivit rättad.
* Kända buggar
** För att alls fungera i Gnu Emacs 20.1 så stänger elispklienten
explicit av stödet för multibytetecken i sina buffertar. Det kan
hända att vi har missat något ställe. Säg till om du upptäcker
något som verkar underligt.
** Det kan vara problem att prata med lyskomd 1.7.0 eller äldre. I
Nästa version kommer det garanterat inte att fungera alls.
......@@ -107,10 +107,23 @@ while [ ! "$q1" ] ; do
fi
done
revision=""
ask "Vill du gra en numerisk revision fr alla filer" ja
if [ "$yes" ] ; then
echo "Revision: \c"
read revision
fi
tag=`echo v$version | tr "." "-"`
if [ "$revision" ] then
echo "cvs revision blir $revision"
else
echo "cvs revision blir ofrndrad"
fi
cat <<EOF
cvs revision blir $version
cvs symboliska tag blir $tag
Du str i begrepp att brja checka in, ndra revisioner och tagga
......@@ -139,13 +152,15 @@ else
fi
fi
echo "Uppdaterar revisionsnumret..."
if ( set -x; cvs commit -r $version ) ; then
;
else
echo "Fortstt trots att revisionsndringen inte gick bra" nej
if [ "$no" ] ; then
exit 1
if [ "$revision" ] ; then
echo "Uppdaterar revisionsnumret..."
if ( set -x; cvs commit -r $version ) ; then
;
else
echo "Fortstt trots att revisionsndringen inte gick bra" nej
if [ "$no" ] ; then
exit 1
fi
fi
fi
......
Sun Sep 21 10:25:51 1997 David Byers <davby@ida.liu.se>
* lyskom-rest.el (silent-read): Stt enable-multibyte-characters
till nil.
* startup.el (lyskom): Anvnd lyskom-generate-new-buffer
* lyskom-rest.el (lyskom-format-enriched): Anvnd
lyskom-generate-new-buffer.
* cache.el (cache-initiate-who-info-buffer): Anvnd
lyskom-get-buffer-create.
* buffers.el (lyskom-generate-new-buffer): Ny funktion.
(lyskom-get-buffer-create): Stt enable-multibyte-characters i
bufferten.
* defvar.el (lyskom-setup-minibuffer-variables): Stt
enable-multibyte-characters i minibufferten.
* commands1.el (lyskom-quit): F tyst p elint.
* edit-text.el (lyskom-edit-error): F tyst p elint.
(lyskom-edit-text-abort): Dito.
* completing-read.el (lyskom-completing-use-dynamic-info): Ge
variabeln ett vrde.
Fri Sep 19 08:34:01 1997 David Byers <davby@ida.liu.se>
* TODO: Gjorde om i outline-mode.
* macros.el (lyskom-ignore-errors): Nytt makro.
* command.el (lyskom-end-of-command): Vlj lyskom-buffer innan vi
kr kroppen.
Thu Sep 18 17:51:10 1997 David Byers <davby@ida.liu.se>
* edit-text.el: Gjorde om lyskom-edit-mode-till en minor-mode. Det
innebar ndringar i flera funktioner. Se instanser av
lyskom-edit-sending-mode, lyskom-edit-sent-mode och
lyskom-edit-mode.
* utilities.el: (lyskom-overlay-keys): Ny funktion.
(lyskom-overlay-keymap): Dito.
(lyskom-lookup-key): Dito.
* lyskom-rest.el (j-or-n-p): Anvnd nya lyskom-lookup-key
Wed Sep 17 13:56:29 1997 David Byers <davby@ida.liu.se>
* swedish-strings.el ((and (boundp 'kom-tell-phrases)
kom-tell-phrases)): Lt innehllet i variabeln kom-tell-phrases
verrajda det som stts som default.
(lyskom-sv-edit-mode-map): Lade tillbaks C-c } k
Tue Sep 16 11:24:24 1997 David Byers <davby@ida.liu.se>
* commands2.el (kom-previous-kom): Anvnd def-kom-command.
......
......@@ -36,7 +36,7 @@
# makefile too!
#
CLIENTVERSION = 0.45.1
CLIENTVERSION = 0.45.1-beta-2
DOCFILES=NEWS-0.45.1 MIGRATION-0.44-0.45
FTPDIR=/home/davby/www-pub
......
-*- Mode: outline; -*-
Att göra i elisp-klienten
=========================
* BUGGAR
-------- Buggar
** DEFERRED INSERT
lyskom-replace-deferred verkar inte använda lyskom-last-viewed i
alla fall. Och den beter sig fel när man står vid prompten och
vill bläddra bakåt.
Om ett namn som fylls i i efterhand gör att sista raden blir för
lång, så scrollar klienten trots att den inte borde. Jag trodde
jag hade fixat det.
** PREFETCH
Dubbla prefetcher kan vara väldigt förvirrande. Om man t.ex. gör
endast i ett möte (säg IÅM) innan det prefetchas får man två
parallella prefetcher på samma möte.
......@@ -19,6 +29,9 @@ Att g
Lista nyheter visar fel innan prefetchen har hämtat alla mappar.
** COMPLETING READ
lyskom-read-session-no hanterar inte att man anger specifikt
sessionsnummer om samma person har flera sessioner, tror jag.
Problemet är att s xxxx hanteras i lyskom-read-conf-internal som
......@@ -29,6 +42,9 @@ Att g
samma mappar som complete.el gör, till wrappers runt complete.el
som kollar om completion är LysKOM-completion eller något annat.
** HANTERING AV FOTNOTER
Den försöker fortfarande följa hemliga kommentarer om
kom-show-footnotes-immediately är satt.
......@@ -40,46 +56,69 @@ Att g
Prefixargument ger fler. Frågan om det är *bra* eller inte är en
helt annan...]
Om ett namn som fylls i i efterhand gör att sista raden blir för
lång, så scrollar klienten trots att den inte borde. Jag trodde
jag hade fixat det.
Sentinelmeddelanden i ikoniferade frames buggar. Prova att kasta
ut en session i ett ikonifierat fönster. Eller kanske till och med
bara i en gömd buffert. (HEISENBUG?)
Fotnoter som visas på en gång filtreras inte. [verkar fixat]
kom-review-tree på en text med fotnoter visar fotnoterna på en
gång. Är det en bug?
Fotnoter som visas på en gång filtreras inte. [verkar fixat]
** PROMPTEN
När jag ska läsa en kommentar till ett brev i min brevlåda så blir
prompten "Läsa nästa brev" i stället för "Läsa nästa
kommentar". Kommentaren ligger inte i brevlådan. (LÅG PRIORITET)
-------- Allmänna förbättringar
** HEISENBUGS
Sentinelmeddelanden i ikoniferade frames buggar. Prova att kasta
ut en session i ett ikonifierat fönster. Eller kanske till och med
bara i en gömd buffert.
Tommy Persson får LysKOM protocol error. Det kan bero på strulande
modem.
* FöRBäTTRINGAR
** EDIT-BUFFERTEN
Defaultplaceringen av nya mottagare i editbufferten är fånig.
Filtrera asynkrona meddelanden (Pontus Lidman)
Radera inlägg borde gnälla lite om det finns markeringar.
** FILTER
Återse alla markerade borde gå att avbryta med nästa möte.
Ny filter-edit-mode
Använd den nya filterkompilatorn.
Gör inte nästa kommando efter en filtrering. Kontrollera med
variabel.
** ASYNKRONA MEDDELANDEN
Färgläggning av meddelanden baserat på varifrån de kommer, och
vart det går. John Olsson efterfrågar.
Filtrera asynkrona meddelanden (Pontus Lidman)
** MEDLEMSSKAPSINFORMATION
Lista medlemsskap borde hållas uppdaterad. Vi behöver hookar för
* Gå in i möte (uppdatera datum)
* Ändra prioritet (det har vi)
* Ändra olästa
* Invalidera conf-stat (kanske)
- Gå in i möte (uppdatera datum)
- Ändra prioritet (det har vi)
- Ändra olästa
- Invalidera conf-stat (kanske)
Plus att vi måste fixa en datastruktur till bufferten. Vilket slit.
Kanske kan man mergea prioritera och lista medlemsskap? Det skulle
ju förenkla...
** ÅTERSE
Återse senaste borde vara superinkrementell. Man kunde hämta så
mycket man hinner under säg tre sekunder och stoppa någonting på
read-listan som hämtar nästa tre sekunder eller så.
......@@ -90,32 +129,37 @@ Att g
Strunta i hemliga texter vid åar.
Gör inte nästa kommando efter en filtrering. Kontrollera med
variabel.
Återse alla markerade borde gå att avbryta med nästa möte.
Sortera vilkaslistan efter t.ex. idletid.
Inför en membership-cache.
Skriv inte ut stora fonoter på en gång.
** INTERNA SAKER
Inför en membership-cache.
Har detta att göra med lite för optimistisk cache att göra? Kanske
bör man läsa om person-staten innan man varnar för lapp på dörren?
Visa fotnoter på ett bättre sätt.
Reentrant blocking-do [FINNS, MEN ANVÄNDS INTE]
Presentationer ska ha samma mottagare som tidigare
presentationer.
** FOTNOTER
Skriv inte ut stora fonoter på en gång.
Visa fotnoter på ett bättre sätt.
Kommandot kom-review-comments visar fotnoter sist, inte först.
Det skulle vara bra om skönsvärde för att skriva fotnot vore den
senaste text man själv skrev, inte den senaste man läste. Eller
kanske den senaste man läste om det var man själv som skrev den?
Snarare den sista man läste av sig själv alt. den sista man skrev
om man inte har läst något av sig själv sedan dess.
Klickbara kommandon, vad nu det är.
Reentrant blocking-do [FINNS, MEN ANVÄNDS INTE]
** ANVäNDARVäNLIGHET
Klickbara kommandon, vad nu det är.
Det behövs dokumentation: fråmst användarhandledning, men det
skulle inte skada med en kortfattad beskrivning av stabila delar
......@@ -123,143 +167,20 @@ Att g
Språkgranskning av den engelska versionen.
-------- Fixade saker
kom-customize skall nog inte ta med alla variabler, bara sådana
som många vill ändra på. Annars blir det svåröverskådligt. [FIXAT?]
När man sparar texter vill man inte att det ska stå t.ex. "idag".
[FIXAT]
Fixa klart z-initiate-get-map. [BEHÖVS INTE]
Modifiera interna datastrukturer vid utträd. [FIXAT]
lyskom-add-membership gör membership-listan sorterad, vilket inte
prefetch-koden är gjord för. Alltså borde det kunna bli problem
att gå med i möten om man ger dem fel prioritet. [FIXAT]
Endast gör fel ibland. [FIXAT]
Jag har satt kom-show-footnotes-immediately till nil. Det verkar
som man inte får läsa fotnötter först då, t ex fick jag läsa
1443562 (en vanlig kommentar) och trädet under det innan jag fig
läsa 1443602 (en fotnot till 1443554. Det är inte första gången
det händer.
Återse igen (kom-review-last-normally-read) borde kanske använda
buffertlokala variabler för vilket inlägg som är det senaste man
har läst, så man kan återse det senaste i det KOM man är i.
Definiera faces när man startar klienten istället för när den
laddas.
Completion bryr sig inte om MUSTMATCH-parametern. (FIXAT)
Om KOMNAME är satt till "" så kommer completionkoden att försöka
komplettera det till alla personer. Det vill man *inte*. (FIXAT)
(lyskom-lookup-conf-by name är snabbare på att returnera nil).
Man kan inte skicka in inlägg med kom-emacs-knows-iso-8859-1 satt
till nil. (FIXAT)
LysKOMs completing-read är skit. Den gör fel. Den borde skrivas om.
(FIXAT)
lyskom-try-complete-partials borde returnera exakta matchar före
längsta match. Nu blir (lyskom-try-complete-partials "link"
'(("(foo) link (bar)" . 1) ("linkfoobar" . 2))) "linkfoobar", inte
"(foo) link (bar)". (FUNKTIONEN ERSATT; FIXAT)
M-> i prioritera-bufferten. Text 1320736. (FIXAT)
Om man försöker logga in med en förkortning som matchar flera namn
tror klienten att man inte finns. (FIXAT?)
Lista meddelanden via fjärrkontroll listar baklänges. (FIXAT)
** DIVERSE OSORTERAT
Ändra variabler klarar inte att hantera buffertlokala variabler. FIXAT.
Återinför Olästa
Completion-koden är ivägen när man vill skapa nya personer. [Nåja,
inte så mycket. Det är bara att man inte får skapa namn som är
prefix till existerande namn]
När det frågas om alla mottagare av ett inlägg är relevanta så
vore det bra om bufferten scrollades upp så att man fick se dem...
[FIXAT]
Bygga Ändra Variabler mha widget.el. [FIXAT]
kom-recover (antagligen lyskom-refetch) är en no-op. [FIXAT]
Inläggsnumren borde vara mer kontextkänsliga. Om man klickar på
ett inläggs eget nummer, alltså det som står precis innan datumet
och det som står inom parentesen precis efter inläggstexten, så
vill man antagligen inte återse det, eftersom man ju bevisligen
har det framför sig. I stället vill man antagligen kommentera
det. [IGNORERAT FÖR TILLFÄLLET -- JAG GILLADE DET INTE /dcb]
Det är knepigt att avmarkera raderade texter, eftersom man inte
får se textnumret. [FIXAT -- åam lm så får man se numret]
Text 1306568 [OMÖJLIGT ATT SPÅRA]
I vilkalistan borde nog hemliga personer skrivas ut med någon
annan text än "Ej närvarande i något möte" [FIXAT]
lyskom-read-session-no hittar inte osynliga sessioner. [FIXAT]
kom-find-root måste nog skrivas om så den inte är så förbaskat
rekursiv. Man överskrider ibland max-specpdl-size eller något
sådant. [FIXAT]
prefix-kommandon änndras inte vid språkbyten. [FIXAT]
Hanteringen av buffertlokala variabler är kass. Vi borde lista ut
automagiskt vilka variabler som skall vara lokala: alla i
user-arean samt alla som deklareras lokala med något makro som vi
inte har ännu. [FIXAT!!!]
lyskom-clear-vars är en konstig funktion. Se över hur och var den
används och se om man inte kan ersätta den med
lyskom-protect-environment. [FIXAT!!!]
Prioritera möten i XEmacs resulterar garanterat i
lyskom-parse-error. [BUG I XEMACS; FIXAT]
När man startar en ny session i en återanvänd buffert läggs en session
för mycket till i sessionslistan. Överhuvudtaget bör nl med vänner
putsas på. [FIXAT]
Läsningen av user-arean buggade i XEmacs av någon anledning. Det
såg ut som en XEmacs-bug. Jag *tror* jag har gjort en workaround.
När man skickar in en kommentar borde klienten kolla att inga nya
kommentarer till texten har skrivits under tiden. [FIXAT]
Trycka C-g medan man loggar in kan göra att man inte kan logga in
igen. (Rapporterat av Tommy Persson.) Felmeddelandet blir "Illegal
nånting: listp not-yet-gotten"
Visa i prompten om man är i administratörsläge.
I prioritera möten så borde ledtexterna till prioritera mfl spegla
om man prioriterar markerade möten eller det möte man står på.
När man har utplånat sig själv, och tryckt C-g vid loginprompten
som följer blir vissa kommandon förvirrade. [ÄR MAN SÅ DUM FÅR MAN
VÄL SKYLLA SIG SJÄLV. JU!]
Radera inlägg borde gnälla lite om det finns markeringar.
Gå med i möten startar inte prefetch på mötet. [FIXAT?]
Presentationer ska ha samma mottagare som tidigare
presentationer.
Efter återse senaste fick jag fel prompt. Jag vill ha återse
nästa-prompten direkt om det finns texter som matchar villkoret.
[Lustigt. Jag fick rätt prompt]
Sortera vilkaslistan efter t.ex. idletid.
Nu när lyskom-bufferten återanvänds så kanske M-x lyskom inte ska
döda bufferten om den misslyckas med att koppla upp sig. [FIXAT]
Långsamma kommandon buggar, eftersom bufferten är skrivskyddad.
Local variables:
mode: outline
paragraph-separate: "[ \t ]*$"
outline-regexp: "[* ]+"
end:
......@@ -257,6 +257,14 @@ categories")
(add-hook 'kill-buffer-query-functions 'lyskom-quit-query)
(add-hook 'kill-emacs-query-functions 'lyskom-quit-query)
(defun lyskom-generate-new-buffer (name)
(let ((buf (generate-new-buffer name)))
(save-excursion
(set-buffer buf)
(make-local-variable 'enable-multibyte-characters)
(setq enable-multibyte-characters nil))
buf))
(defun lyskom-get-buffer-create (category name &optional unique)
"Create a new buffer of category CATEGORY with name generated from NAME.
If UNIQUE is non-nil, re-use the first existing buffer of category
......@@ -284,7 +292,9 @@ The created buffer is made a child of the current buffer."
(lyskom-set-buffer-parent buffer (current-buffer))
(lyskom-update-inherited-variables buffer)
(save-excursion (set-buffer buffer)
(setq lyskom-buffer-category category))
(setq lyskom-buffer-category category)
(make-local-variable 'enable-multibyte-characters)
(setq enable-multibyte-characters nil))
buffer))
......
......@@ -248,7 +248,7 @@ otherwise return nil"
(setq lyskom-who-info-cache (list 'WHO-INFO-LIST))
(lyskom-save-excursion
(setq lyskom-who-info-buffer
(get-buffer-create (concat (buffer-name) "-who")))
(lyskom-get-buffer-create 'WHO-INFO (concat (buffer-name) "-who") t))
(set-buffer lyskom-who-info-buffer)
(make-local-variable 'kom-buffer)
(setq lyskom-buffer kombuf)
......
......@@ -226,36 +226,40 @@ chosen according to this"
(defun lyskom-end-of-command ()
"Print prompt, maybe scroll, prefetch info."
(message "")
(while (and lyskom-to-be-printed-before-prompt
(lyskom-queue->first lyskom-to-be-printed-before-prompt))
(if (not (bolp)) (lyskom-insert "\n"))
(lyskom-insert (car (lyskom-queue->first
lyskom-to-be-printed-before-prompt)))
(lyskom-queue-delete-first lyskom-to-be-printed-before-prompt))
(setq lyskom-executing-command nil)
(setq lyskom-current-command nil)
(setq lyskom-current-prompt nil) ; Already set in s-o-c really
(lyskom-scroll)
(setq mode-line-process (lyskom-get-string 'mode-line-waiting))
(if (pos-visible-in-window-p (point-max) (selected-window))
(lyskom-set-last-viewed))
(lyskom-prefetch-and-print-prompt)
(run-hooks 'lyskom-after-command-hook)
(if lyskom-idle-time-flag
(save-excursion (set-buffer lyskom-buffer)
(initiate-user-active 'background nil)))
(if kom-inhibit-typeahead
(discard-input))
;; lyskom-pending-commands should probably be a queue or a stack.
(when lyskom-pending-commands
(let ((command (car lyskom-pending-commands)))
(setq lyskom-pending-commands (cdr lyskom-pending-commands))
(if (symbolp command)
(call-interactively command)
(eval command))))
(when lyskom-slow-mode
(buffer-enable-undo)))
(lyskom-save-excursion
(when (and (boundp 'lyskom-buffer)
(buffer-live-p lyskom-buffer))
(set-buffer lyskom-buffer))
(message "")
(while (and lyskom-to-be-printed-before-prompt
(lyskom-queue->first lyskom-to-be-printed-before-prompt))
(if (not (bolp)) (lyskom-insert "\n"))
(lyskom-insert (car (lyskom-queue->first
lyskom-to-be-printed-before-prompt)))
(lyskom-queue-delete-first lyskom-to-be-printed-before-prompt))
(setq lyskom-executing-command nil)
(setq lyskom-current-command nil)
(setq lyskom-current-prompt nil) ; Already set in s-o-c really
(lyskom-scroll)
(setq mode-line-process (lyskom-get-string 'mode-line-waiting))
(if (pos-visible-in-window-p (point-max) (selected-window))
(lyskom-set-last-viewed))
(lyskom-prefetch-and-print-prompt)
(run-hooks 'lyskom-after-command-hook)
(if lyskom-idle-time-flag
(save-excursion (set-buffer lyskom-buffer)
(initiate-user-active 'background nil)))
(if kom-inhibit-typeahead
(discard-input))
;; lyskom-pending-commands should probably be a queue or a stack.
(when lyskom-pending-commands
(let ((command (car lyskom-pending-commands)))
(setq lyskom-pending-commands (cdr lyskom-pending-commands))
(if (symbolp command)
(call-interactively command)
(eval command))))
(when lyskom-slow-mode
(buffer-enable-undo))))
(provide 'lyskom-command)
......
......@@ -916,7 +916,7 @@ Don't ask for confirmation."
(delq lyskom-buffer lyskom-sessions-with-unread-letters))
(set-process-sentinel lyskom-proc nil)
(delete-process lyskom-proc)
(setq lyskom-proc)
(setq lyskom-proc nil)
(lyskom-insert-string 'session-ended)
(lyskom-scroll)
(setq mode-line-process (lyskom-get-string 'mode-line-down))
......
......@@ -52,7 +52,7 @@
(defvar lyskom-completing-lookup-name-cache nil
"Temporary cache of server queries")
(defvar lyskom-completing-use-dynamic-info)
(defvar lyskom-completing-use-dynamic-info nil)
(defun lyskom-completing-clear-cache ()
(setq lyskom-completing-who-info-cache nil)
......@@ -516,6 +516,7 @@ function work as a name-to-conf-stat translator."
; (save-excursion
; (pop-to-buffer (get-buffer-create "*kom*-complete"))
; (erase-buffer)
; (setq enable-multibyte-characters nil)
; (while data
; (insert
; (format "%s\n" (substring (aref (car data) 2)
......
......@@ -39,6 +39,8 @@
(provide 'lyskom)
;; Just to get rid of a compiler warning
(defvar enable-multibyte-characters)
(defvar lyskom-local-variables nil
"List of variables to make local in a LysKOM buffer")
......@@ -116,7 +118,9 @@ is saved before executing FORMS and restored when FORMS have finished."
(