Commit 7675e888 authored by David Byers's avatar David Byers
Browse files

Detailed changes:
> 2006-03-31  David Byers  <davby@ida.liu.se>
>
> 	* menus.el (lyskom-menu-template): Added kom-review-more-comments
> 	to menu.
>
> 	Fix bug 1510:
> 	* vars.el.in (lyskom-commands): Added kom-review-mode-comments.
>
> 	* swedish-strings.el,english-strings.el
> 	(lyskom-sv-mode-map,lyskom-en-mode-map): Added
> 	kom-review-more-comments.
>
> 	* review.el (lyskom-review-by-to): Set lyskom-have-review to
> 	indicate what kind of review.
> 	(lyskom-last-review-comments): New variable.
> 	(lyskom-review-comments): Set lyskom-last-review-comments.
> 	(lyskom-review-comments): Handle a list of text-stats as the input
> 	to this function.
> 	(kom-review-more-comments): New command.
>
> 	Fix bug 1535:
> 	* commands1.el (lyskom-write-text): Added add-self parameter.
> 	(kom-send-letter): Always add sender as recipient.
>
> 	Fix bug 1589:
> 	* mime.el (lyskom-mime-string-charset): Handle server coding
> 	system in found charset.
>
> 	* compatibility.el (find-charset-string): Default to server
> 	coding-system or latin-1 if server coding system is unknown.
>
> 	Fix bug 1602:
> 	* mime.el (lyskom-mime-decode-content-type): Correctly match the
> 	type and subtype fields of content types. Downcase all values.
>
> 	Fix bug 1391:
> 	* commands2.el (lyskom-help): Handle printing top-level keymap.
>
> 	* help.el (lyskom-help-format-keymap): New function.
>
> 	* help-english.xml,help-swedish.xml: Added keyboard commands
> 	section.
>
> 	* help-compile.el (lyskom-help-syntax): Added keymap directive.
>
> 	Probably fix bug 1570:
> 	* compatibility.el (lyskom-map-keymap): Do not attempt to car or
> 	cdr non-conses when mapping over keymap.
>
> 2006-03-30  David Byers  <davby@ida.liu.se>
>
> 	Update handling of text/enriched:
> 	* lyskom-rest.el (lyskom-format-enriched): Handle new-style
> 	enriched text, with headers in a special aux-item.
>
> 	* edit-text.el (lyskom-edit-send): Handle aborted sending without
> 	error message.
>
> 	* aux-items.el (elisp-client-enriched-headers): Added aux-item
> 	definition.
>
> 	* edit-text.el (lyskom-edit-send): Replaced
> 	lyskom-send-text-transform-function with more general
> 	lyskom-send-text-transform-hook, which allows multiple
> 	transformations and changes to more than just the text.
>
> 	* vars.el.in (lyskom-send-text-transform-hook): Ditto.
>
> 2005-03-22  David Byers  <davby@ida.liu.se>
>
> 	* english-strings.el (lyskom-custom-strings): Fxied speling erorr
> 	in me.
parent 3e16820d
2006-03-31 David Byers <davby@ida.liu.se>
* menus.el (lyskom-menu-template): Added kom-review-more-comments
to menu.
Fix bug 1510:
* vars.el.in (lyskom-commands): Added kom-review-mode-comments.
* swedish-strings.el,english-strings.el
(lyskom-sv-mode-map,lyskom-en-mode-map): Added
kom-review-more-comments.
* review.el (lyskom-review-by-to): Set lyskom-have-review to
indicate what kind of review.
(lyskom-last-review-comments): New variable.
(lyskom-review-comments): Set lyskom-last-review-comments.
(lyskom-review-comments): Handle a list of text-stats as the input
to this function.
(kom-review-more-comments): New command.
Fix bug 1535:
* commands1.el (lyskom-write-text): Added add-self parameter.
(kom-send-letter): Always add sender as recipient.
Fix bug 1589:
* mime.el (lyskom-mime-string-charset): Handle server coding
system in found charset.
* compatibility.el (find-charset-string): Default to server
coding-system or latin-1 if server coding system is unknown.
Fix bug 1602:
* mime.el (lyskom-mime-decode-content-type): Correctly match the
type and subtype fields of content types. Downcase all values.
Fix bug 1391:
* commands2.el (lyskom-help): Handle printing top-level keymap.
* help.el (lyskom-help-format-keymap): New function.
* help-english.xml,help-swedish.xml: Added keyboard commands
section.
* help-compile.el (lyskom-help-syntax): Added keymap directive.
Probably fix bug 1570:
* compatibility.el (lyskom-map-keymap): Do not attempt to car or
cdr non-conses when mapping over keymap.
2006-03-30 David Byers <davby@ida.liu.se>
Update handling of text/enriched:
* lyskom-rest.el (lyskom-format-enriched): Handle new-style
enriched text, with headers in a special aux-item.
* edit-text.el (lyskom-edit-send): Handle aborted sending without
error message.
* aux-items.el (elisp-client-enriched-headers): Added aux-item
definition.
* edit-text.el (lyskom-edit-send): Replaced
lyskom-send-text-transform-function with more general
lyskom-send-text-transform-hook, which allows multiple
transformations and changes to more than just the text.
* vars.el.in (lyskom-send-text-transform-hook): Ditto.
2005-03-22 David Byers <davby@ida.liu.se>
* english-strings.el (lyskom-custom-strings): Fxied speling erorr
in me.
2006-02-16 Johan Sundstrm <jhs@lysator.liu.se>
* vars.el.in (lyskom-default-conference-strategy): Made
......@@ -30,11 +103,11 @@
* perf.el (fields-new): Dispose of marker when done.
* help.el (lyskom-help-format-p): Dito.
* lyskom-rest.el (lyskom-do-special-inserts): Dito.
(lyskom-insert-before-prompt): Dito.
(lyskom-render-html-region): Dito.
* commands2.el (lyskom-list-new-conferences): Dispose of marker when
we're done with it.
......@@ -43,7 +116,7 @@
(lyskom-edit-add-recipient/copy): Dito.
(lyskom-edit-insert-aux-item): Added FIXME about marker.
(lyskom-edit-replace-headers): Dispose of markers when done.
2005-03-08 David Byers <byers@lysator.liu.se>
* compatibility.el (lyskom-encode-coding-string): Renamed
......
......@@ -361,6 +361,8 @@ Invalid tests are silently ignored."
(info . lyskom-aux-item-info)
(status-print . lyskom-print-elisp-client-rejected-invitation))
(def-aux-item elisp-client-enriched-headers 10002)
;;; ================================================================
......
......@@ -498,7 +498,7 @@ comment; `kom-confirm-multiple-recipients' affects how multiple
recipients are handled."
(interactive)
(lyskom-tell-internat 'kom-tell-write-letter)
(lyskom-write-text pers-no 'who-letter-to))
(lyskom-write-text pers-no 'who-letter-to t))
;;; ================================================================
......@@ -1768,7 +1768,7 @@ recipients are handled."
(lyskom-tell-internat 'kom-tell-write-text)
(lyskom-write-text arg 'who-send-text-to))
(defun lyskom-write-text (arg prompt)
(defun lyskom-write-text (arg prompt &optional add-self)
"Start writing a new text."
(lyskom-nag-about-presentation)
(let* ((tono (cond ((and arg (listp arg)
......@@ -1796,7 +1796,8 @@ recipients are handled."
(lyskom-create-misc-list 'RECPT tono)
"" "")
(lyskom-edit-text lyskom-proc
(if (lyskom-get-membership tono)
(if (and (lyskom-get-membership tono)
(not add-self))
(lyskom-create-misc-list 'RECPT tono)
(lyskom-create-misc-list
'RECPT tono
......
......@@ -1168,7 +1168,7 @@ will be prompted for the mark."
;;; Author: Linus Tolke
(defun lyskom-help ()
(defun lyskom-help (&optional only-kom)
"Prints a short list of alternatives when you don't know what you can do."
(interactive)
(let* ((tohere (cond
......@@ -1187,38 +1187,53 @@ will be prompted for the mark."
((and (symbolp binding)
(fboundp binding))
(symbol-function binding))
(t binding)))
(t (if (eq binding lyskom-mode-map)
(keymap-parent binding)
binding))))
(keylis (lyskom-help-get-keylist keymap))
(text (format "\n%s: \n%s\n"
(mapconcat 'single-key-description tohere " ")
(mapconcat
(function
(lambda (arg)
(format "%s - %s"
(if (fboundp 'key-description)
(if (not (vectorp (car arg)))
(key-description (vector (car arg)))
(key-description (car arg)))
(cond ((symbolp (car arg))
(format "%s" (car arg)))
((lyskom-characterp (car arg))
(format "%c" (car arg)))
(t (format "%S" (car arg)))))
(or (lyskom-command-name (cdr arg))
(and (keymapp (cdr arg))
(lyskom-get-string
'multiple-choice))
(cdr arg)))))
keylis
"\n")))
(keydes (mapconcat 'single-key-description tohere " "))
(text (lyskom-format
(if (string= keydes "")
"\n%#2s\n"
"\n%#1s:\n%#2s\n")
keydes
(mapconcat
'identity
(delq nil (mapcar
(lambda (arg)
(if (or (null (cdr arg))
(eq (cdr arg) 'undefined)
(and only-kom
(not (or (lyskom-command-name (cdr arg))
(keymapp (cdr arg))))))
nil
(format "%s - %s"
(if (fboundp 'key-description)
(if (not (vectorp (car arg)))
(key-description (vector (car arg)))
(key-description (car arg)))
(cond ((symbolp (car arg))
(format "%s" (car arg)))
((lyskom-characterp (car arg))
(format "%c" (car arg)))
(t (format "%S" (car arg)))))
(or (lyskom-command-name (cdr arg))
(and (keymapp (cdr arg))
(lyskom-get-string
'multiple-choice))
(cdr arg)))))
keylis))
"\n")))
;; next-char
)
(if (eq major-mode 'lyskom-mode)
(progn
(lyskom-insert text)
(lyskom-end-of-command))
(with-output-to-temp-buffer "*Help*"
(princ text)))))
(when (interactive-p)
(if (eq major-mode 'lyskom-mode)
(progn
(lyskom-insert text)
(lyskom-end-of-command))
(with-output-to-temp-buffer "*Help*"
(princ text))))
text))
(defun lyskom-help-get-keylist (keymap)
......
......@@ -164,7 +164,7 @@ KEYS should be a string in the format used for saving keyboard macros
(setq r (1+ r))))
((char-table-p el)
(map-char-table fn el))
(t (funcall fn (car el) (cdr el)))))))))
((consp el) (funcall fn (car el) (cdr el)))))))))
;; set-keymap-parent also comes from XEmacs
......@@ -225,7 +225,8 @@ KEYS should be a string in the format used for saving keyboard macros
(lyskom-function-alias find-coding-systems-for-charsets (cs) nil)
(lyskom-function-alias coding-system-get (cs prop) nil)
(lyskom-function-alias char-width (c) 1)
(lyskom-function-alias find-charset-string (str) '(ascii))
(lyskom-function-alias find-charset-string (str) (list (or (lyskom-default-value-safe 'lyskom-server-coding-system)
'ascii)))
(lyskom-function-alias string-as-unibyte (str) str)
(lyskom-function-alias string-make-unibyte (str) str)
(lyskom-function-alias string-make-multibyte (str) str)
......
......@@ -435,6 +435,11 @@ so it's not as clean as it ought to be."
;;; Functions bound to keyboard seqences in lyskom-edit-mode
;;;
(defvar lyskom-edit-aux-list)
(defvar lyskom-edit-misc-list)
(defvar lyskom-edit-subject)
(defvar lyskom-edit-text)
(defun kom-edit-send-anonymous ()
"Send the text anonymously to the server. Be aware that although the text
will be truly anonymous, it is easy to slip up in such a way that the author
......@@ -525,11 +530,16 @@ anonymously and take actions to avoid revealing the sender."
;; Transform the message text
;;
(setq message
(if (fboundp lyskom-send-text-transform-function)
(funcall lyskom-send-text-transform-function
(lyskom-edit-extract-text))
(lyskom-edit-extract-text)))
(let ((lyskom-edit-aux-list aux-list)
(lyskom-edit-misc-list misc-list)
(lyskom-edit-subject subject)
(lyskom-edit-text (lyskom-edit-extract-text)))
(run-hook-with-args-until-success
'lyskom-send-text-transform-hook)
(setq aux-list lyskom-edit-aux-list)
(setq misc-list lyskom-edit-misc-list)
(setq subject lyskom-edit-subject)
(setq message lyskom-edit-text))
(save-excursion
(let* ((full-message
......@@ -634,7 +644,7 @@ anonymously and take actions to avoid revealing the sender."
;;
(lyskom-edit-text-abort
(apply 'lyskom-message (cdr-safe err)))
(and (cdr err) (apply 'lyskom-message (cdr err))))
(lyskom-no-subject
(lyskom-beep kom-ding-on-no-subject)
(if (cdr-safe (cdr-safe err))
......@@ -1034,33 +1044,52 @@ Cannot be called from a callback."
;;UNUSED: lyskom-send-enriched
(defun lyskom-send-enriched (message)
(condition-case err
(let ((buf (lyskom-get-buffer-create 'lyskom-enriched
"lyskom-enriched"
t)))
(unwind-protect
(save-excursion
(set-buffer buf)
(insert message)
(goto-char (point-min))
(format-encode-buffer 'text/enriched)
(goto-char (point-min))
(search-forward "\n\n")
(if (and (not (lyskom-string= (buffer-substring (point)
(point-max)) message))
(save-excursion
(set-buffer lyskom-buffer)
(lyskom-j-or-n-p
(lyskom-get-string 'send-formatted))))
(concat "enriched:\n" (buffer-string))
message))
(kill-buffer buf)))
(error (if (lyskom-j-or-n-p
(lyskom-format (lyskom-get-string 'transform-error)
(error-message-string err)))
message
(signal 'lyskom-edit-text-abort nil)))))
(defun lyskom-send-enriched ()
(let ((content-type (lyskom-get-aux-item lyskom-edit-aux-list 1)))
(when (or (null content-type)
(and (= (length content-type) 1)
(string-match "^text/enriched" (aux-item->data (car content-type)))))
(condition-case err
(let ((buf (lyskom-get-buffer-create 'lyskom-enriched
"lyskom-enriched"
t)))
(unwind-protect
(save-excursion
(set-buffer buf)
(insert lyskom-edit-text)
(goto-char (point-min))
(format-encode-buffer 'text/enriched)
(goto-char (point-min))
(search-forward "\n\n")
(when (and (not (lyskom-string=
(replace-in-string (buffer-substring (point) (point-max))
"<<" "<" t)
lyskom-edit-text))
(save-excursion
(set-buffer lyskom-buffer)
(lyskom-j-or-n-p
(lyskom-get-string 'send-formatted))))
(setq lyskom-edit-text (buffer-substring (point) (point-max)))
(unless content-type
(setq lyskom-edit-aux-list
(cons (lyskom-create-aux-item 0 1 nil nil
(lyskom-create-aux-item-flags nil nil nil nil nil nil nil nil)
0
"text/enriched")
lyskom-edit-aux-list)))
(setq lyskom-edit-aux-list
(cons (lyskom-create-aux-item 0 10002 nil nil
(lyskom-create-aux-item-flags nil nil nil nil nil nil nil nil)
0
(buffer-substring (point-min) (point)))
lyskom-edit-aux-list)))
'stop-transforming-texts)
(kill-buffer buf)))
(error (if (lyskom-j-or-n-p
(lyskom-format (lyskom-get-string 'transform-error)
(error-message-string err)))
nil
(signal 'lyskom-edit-text-abort nil)))))))
......
......@@ -2217,6 +2217,7 @@ Change privileges for %#1P (%#1p)...")
(kom-view . "Review text")
(kom-find-root-review . "Review tree")
(kom-review-comments . "Review all comments")
(kom-review-more-comments . "Review more comments")
(kom-review-tree . "Review all comments recursively")
(kom-review-clear . "Review and skip")
(kom-review-last-normally-read
......@@ -2820,6 +2821,7 @@ Change privileges for %#1P (%#1p)...")
(define-key lyskom-en-review-prefix (kbd "C") 'kom-view-previous-commented-text)
(define-key lyskom-en-review-prefix (kbd "a ?") 'lyskom-help)
(define-key lyskom-en-review-prefix (kbd "a c") 'kom-review-comments)
(define-key lyskom-en-review-prefix (kbd "a M") 'kom-review-more-comments)
(define-key lyskom-en-review-prefix (kbd "a r") 'kom-review-tree)
(define-key lyskom-en-review-prefix (kbd "a x") 'kom-review-cross-references)
(define-key lyskom-en-review-prefix (kbd "j") 'kom-review-clear)
......
......@@ -146,6 +146,8 @@ settings and save them to your emacs init file."
(data (lyskom-encode-coding-string
(lyskom-flag-value-to-string var)
(or lyskom-server-coding-system 'raw-text))))
(when (lyskom-multibyte-string-p data)
(lyskom-format-insert-before-prompt "Errors encoding %#1s\n" name))
(format "%dH%s %dH%s"
(lyskom-string-bytes name) name
(lyskom-string-bytes data) data)))
......
......@@ -75,7 +75,7 @@ Value returned is always nil."
(defvar lyskom-help-syntax
'((help (language) nil (section) lyskom-help-parse-process-finish)
(section (id prompt) nil (p list h1 h2 h3 inline refer) lyskom-help-parse-process-section)
(section (id prompt) nil (p list h1 h2 h3 inline refer keymap) lyskom-help-parse-process-section)
(h1 nil nil (cref TEXT) nil)
(h2 nil nil (cref TEXT) nil)
(h3 nil nil (cref TEXT) nil)
......@@ -84,6 +84,7 @@ Value returned is always nil."
(i nil nil (cref TEXT) nil)
(list nil (header) (item) nil)
(item nil nil (refer b i cref TEXT) nil)
(keymap nil nil nil)
(inline (id) nil nil lyskom-help-parse-process-section-ref)
(refer (id) nil nil lyskom-help-parse-process-section-ref)
(cref (id) nil nil lyskom-help-parse-process-command-ref)
......
<!-- -*-mode: xml-*- -->
<help language="en">
<section id="commands" prompt="Keyboard commands">
<p>Keyboard commands:</p>
<keymap />
</section>
<section id="language-help" prompt="">
<h2>Language Settings</h2>
......
<!-- -*-mode: xml-*- -->
<help language="sv">
<section id="commands" prompt="Snabbkommandon">
<p>Snabbommandon:</p>
<keymap />
</section>
<section id="language-help" prompt="">
<h2>Language Settings</h2>
......
......@@ -87,6 +87,7 @@
(i . lyskom-help-format-i)
(list . lyskom-help-format-list)
(item . lyskom-help-format-item)
(keymap . lyskom-help-format-keymap)
(inline . lyskom-help-format-inline)
(refer . lyskom-help-format-refer)
(cref . lyskom-help-format-cref)
......@@ -160,6 +161,10 @@
(lyskom-do-help-format (lyskom-help-data-get-data data))
(lyskom-insert "\n"))
(defun lyskom-help-format-keymap (data)
(let ((this-command-keys nil))
(lyskom-insert (lyskom-help t))))
(defun lyskom-help-format-refer (data)
(let* ((id (intern (lyskom-help-data-get-attr 'id data)))
(section (lyskom-help-get-section id))
......
......@@ -305,6 +305,9 @@ If there is no active area, then do something else."
(defun lyskom-fix-pseudo-url (url)
(save-match-data
(when (string-match "^google:/*" url)
(setq url (concat "http://www.google.com/search?q="
(substring url (match-end 0)))))
(if (not (string-match lyskom-url-protocol-regexp url))
(cond ((string-match "^www\\." url)
(concat "http://" url))
......
......@@ -2271,7 +2271,12 @@ in lyskom-messages."
(unwind-protect
(save-excursion
(set-buffer tmpbuf)
(insert (substring text 10))
(if (lyskom-get-aux-item (text-stat->aux-items text-stat) 10002)
(insert (aux-item->data (car (lyskom-get-aux-item (text-stat->aux-items text-stat) 10002))))
(insert "Content-Type: text/enriched\n\n"))
(if (lyskom-get-aux-item (text-stat->aux-items text-stat) 1)
(insert text)
(insert (substring text 10)))
(format-decode-buffer)
(lyskom-signal-reformatted-text 'reformat-enriched)
(lyskom-button-transform-text (buffer-string) text-stat)
......
......@@ -64,6 +64,7 @@
(item kom-find-root)
(item kom-view-commented-text)
(item kom-review-comments)
(item kom-review-more-comments)
(item kom-review-cross-references)
(item kom-review-tree)
(item kom-find-root-review)
......@@ -245,6 +246,9 @@
(item kom-redirect-comments)
(item kom-change-privileges)))
(hline)
(item kom-befriend)
(item kom-moronify)
(hline)
(item kom-who-am-i)))
(menu server
......
......@@ -78,10 +78,12 @@
(defun lyskom-mime-string-charset (data)
(let* ((cs (lyskom-find-charset-string data))
(the-cs (and (eq (length cs) 1) (car cs)))
(tmp lyskom-charset-alist)
(best-guess (let ((system nil))
(while (and tmp cs)
(if (lyskom-subset-p cs (car (car tmp)))
(if (or (lyskom-subset-p cs (car (car tmp)))
(eq the-cs (cdr (car tmp))))
(setq system (cdr (car tmp)) tmp nil)
(setq tmp (cdr tmp))))
system)))
......@@ -117,26 +119,85 @@
(lyskom-decode-coding-string data coding-system)
data)))
(defvar lyskom-mime-type-regexp)
(defvar lyskom-mime-parameter-regexp)
(defvar lyskom-mime-wrap-regexp)
(defvar lyskom-mime-comment-regexp)
(defconst lyskom-mime-parameter-name-match 1)
(defconst lyskom-mime-parameter-value-match 2)
(let* ((whitespace "[\000-\040]*")
(tspecials "][()<>@,;:\\\"/?=\000-\040")
(qstring "\"\\([^\"\\]\\|\\\\[\000-\377]\\)*\"")
(notspecials (format "[^%s]+" tspecials))
(comment-base "\\((\\([^()]*%s\\)*[^()]*)\\)"))
(setq lyskom-mime-parameter-regexp
(concat whitespace ";" whitespace
"\\(" notspecials "\\)"
whitespace "=" whitespace
"\\(" notspecials
"\\|" qstring
"\\)"
"[^;]*"))
(setq lyskom-mime-type-regexp
(concat whitespace "\\(" notspecials "/" notspecials "\\)"))
(setq lyskom-mime-wrap-regexp (concat "\\\\\\r?\n" whitespace))
;; We cheat with comments, and only allow limited nesting
(setq lyskom-mime-comment-regexp comment-base)
(let ((nesting 2))
(while (> nesting 0)
(setq lyskom-mime-comment-regexp
(format lyskom-mime-comment-regexp comment-base))
(setq nesting (1- nesting))))
(setq lyskom-mime-comment-regexp
(concat whitespace
(format lyskom-mime-comment-regexp "")
whitespace))
)
;;; Parse content-type header according to RFC2045, with some
;;; exceptions. We do not allow comments everywhere, which is
;;; wrong, but I don't care. We do allow comments in many
;;; places, and hopefully those places people will use.
(defun lyskom-mime-decode-content-type (data)
(let ((content-type nil)
(params nil)
(start 0))
(when (string-match "^[^;]*" data)
(setq content-type (match-string 0 data))
(setq start (match-end 0)))
(while (string-match ";\\s *\\([^=;]*\\)\\(=\\([^;]*\\)\\)" data start)
(let ((param-name (intern (match-string 1 data)))
(param-value (match-string 3 data)))
(when (and (memq param-name '(charset format))
param-value)
(setq param-value (intern param-value)))
(setq params (cons (cons param-name (or param-value t)) params)))
(setq start (match-end 0)))
(cons content-type params)))
(when (and (string-match lyskom-mime-comment-regexp data start)
(eq (match-beginning 0) start))
(setq start (match-end 0)))
(when (string-match lyskom-mime-type-regexp data)
(setq content-type (downcase (match-string 1 data)))
(setq start (match-end 1)))
(when (and (string-match lyskom-mime-comment-regexp data start)
(eq (match-beginning 0) start))
(setq start (match-end 0)))
(while (string-match lyskom-mime-parameter-regexp data start)
(let ((param-name (intern (downcase (match-string lyskom-mime-parameter-name-match data))))
(param-value (downcase (match-string lyskom-mime-parameter-value-match data))))
(setq start (match-end 0))
(when (string-match "^\"[\000-\377]*\"$" param-value)
(setq param-value (substring param-value 1 -1)))
(setq param-value (replace-in-string param-value
lyskom-mime-wrap-regexp ""))
(when (and (memq param-name '(charset format)) param-value)
(setq param-value (intern param-value)))
(when (and (string-match lyskom-mime-comment-regexp data start)
(eq (match-beginning 0) start))
(setq start (match-end 0)))
(setq params (cons (cons param-name (or param-value t)) params)))
)
(cons content-type params)))
(provide 'lyskom-mime)
......@@ -378,7 +378,11 @@ Each element is parsed by PARSER, a function that takes no arguments."
((lyskom-char-p ?*) (lyskom-expect-char ?*))