Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
266c63b5
Commit
266c63b5
authored
Jun 10, 2013
by
Albert Krewinkel
Committed by
Katsumi Yamaoka
Jun 10, 2013
Browse files
lisp/gnus/sieve.el: Fix handling of PORT parameter, quitting
parent
e4568f3b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
181 additions
and
7 deletions
+181
-7
lisp/gnus/ChangeLog
lisp/gnus/ChangeLog
+17
-0
lisp/gnus/eww.el
lisp/gnus/eww.el
+155
-0
lisp/gnus/shr.el
lisp/gnus/shr.el
+2
-1
lisp/gnus/sieve.el
lisp/gnus/sieve.el
+7
-6
No files found.
lisp/gnus/ChangeLog
View file @
266c63b5
2013-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
* eww.el: Don't require cl-lib.
* eww.el: Start writing a new, tiny web browser.
(eww-previous-url): New command.
(eww-quit): New command.
2013-06-10 Albert Krewinkel <krewinkel@moltkeplatz.de>
* sieve.el: Put point at beginning of buffer when viewing a script.
(sieve-open-server): respect the PORT parameter. Show the correct port
number in sieve-buffer's header. Fixed code to also work with a string
as port specifier. Properly close the connection on pressing 'q'. Make
sieve-manage-quit close the connection and process buffer. Also, remove
duplicate keybinding for 'q'.
2013-06-10 Roy Hashimoto <roy.hashimoto@gmail.com> (tiny change)
* mm-view.el (mm-pkcs7-signed-magic): Allow newline in the regexp and
...
...
lisp/gnus/eww.el
0 → 100644
View file @
266c63b5
;;; eww.el --- Emacs Web Wowser
;; Copyright (C) 2013 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: html
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
(
eval-when-compile
(
require
'cl
))
(
require
'shr
)
(
require
'url
)
(
defvar
eww-current-url
nil
)
(
defvar
eww-history
nil
)
(
defun
eww
(
url
)
"Fetch URL and render the page."
(
interactive
"sUrl: "
)
(
url-retrieve
url
'eww-render
(
list
url
)))
(
defun
eww-render
(
status
url
&optional
point
)
(
let*
((
headers
(
eww-parse-headers
))
(
content-type
(
mail-header-parse-content-type
(
or
(
cdr
(
assoc
"content-type"
headers
))
"text/plain"
)))
(
charset
(
intern
(
downcase
(
or
(
cdr
(
assq
'charset
(
cdr
content-type
)))
"utf8"
))))
(
data-buffer
(
current-buffer
)))
(
unwind-protect
(
progn
(
cond
((
equal
(
car
content-type
)
"text/html"
)
(
eww-display-html
charset
url
))
((
string-match
"^image/"
(
car
content-type
))
(
eww-display-image
))
(
t
(
eww-display-raw
charset
)))
(
when
point
(
goto-char
point
)))
(
kill-buffer
data-buffer
))))
(
defun
eww-parse-headers
()
(
let
((
headers
nil
))
(
while
(
and
(
not
(
eobp
))
(
not
(
eolp
)))
(
when
(
looking-at
"\\([^:]+\\): *\\(.*\\)"
)
(
push
(
cons
(
downcase
(
match-string
1
))
(
match-string
2
))
headers
))
(
forward-line
1
))
(
unless
(
eobp
)
(
forward-line
1
))
headers
))
(
defun
eww-display-html
(
charset
url
)
(
unless
(
eq
charset
'utf8
)
(
decode-coding-region
(
point
)
(
point-max
)
charset
))
(
let
((
document
(
list
'base
(
list
(
cons
'href
url
))
(
libxml-parse-html-region
(
point
)
(
point-max
)))))
(
eww-setup-buffer
)
(
setq
eww-current-url
url
)
(
let
((
inhibit-read-only
t
))
(
shr-insert-document
document
))
(
goto-char
(
point-min
))))
(
defun
eww-display-raw
(
charset
)
(
let
((
data
(
buffer-substring
(
point
)
(
point-max
))))
(
eww-setup-buffer
)
(
let
((
inhibit-read-only
t
))
(
insert
data
))
(
goto-char
(
point-min
))))
(
defun
eww-display-image
()
(
let
((
data
(
buffer-substring
(
point
)
(
point-max
))))
(
eww-setup-buffer
)
(
let
((
inhibit-read-only
t
))
(
shr-put-image
data
nil
))
(
goto-char
(
point-min
))))
(
defun
eww-setup-buffer
()
(
pop-to-buffer
(
get-buffer-create
"*eww*"
))
(
let
((
inhibit-read-only
t
))
(
erase-buffer
))
(
eww-mode
))
(
defvar
eww-mode-map
(
let
((
map
(
make-sparse-keymap
)))
(
suppress-keymap
map
)
(
define-key
map
"q"
'eww-quit
)
(
define-key
map
[tab]
'widget-forward
)
(
define-key
map
[backtab]
'widget-backward
)
(
define-key
map
[delete]
'scroll-down-command
)
(
define-key
map
"\177"
'scroll-down-command
)
(
define-key
map
" "
'scroll-up-command
)
(
define-key
map
"p"
'eww-previous-url
)
;;(define-key map "n" 'eww-next-url)
map
))
(
defun
eww-mode
()
"Mode for browsing the web.
\\{eww-mode-map}"
(
interactive
)
(
setq
major-mode
'eww-mode
mode-name
"eww"
)
(
set
(
make-local-variable
'eww-current-url
)
'author
)
(
set
(
make-local-variable
'browse-url-browser-function
)
'eww-browse-url
)
(
setq
buffer-read-only
t
)
(
use-local-map
eww-mode-map
))
(
defun
eww-browse-url
(
url
&optional
new-window
)
(
push
(
list
eww-current-url
(
point
))
eww-history
)
(
eww
url
))
(
defun
eww-quit
()
"Exit the Emacs Web Wowser."
(
interactive
)
(
setq
eww-history
nil
)
(
kill-buffer
(
current-buffer
)))
(
defun
eww-previous-url
()
"Go to the previously displayed page."
(
interactive
)
(
when
(
zerop
(
length
eww-history
))
(
error
"No previous page"
))
(
let
((
prev
(
pop
eww-history
)))
(
url-retrieve
(
car
prev
)
'eww-render
(
list
(
car
prev
)
(
cadr
prev
)))))
(
provide
'eww
)
;;; eww.el ends here
lisp/gnus/shr.el
View file @
266c63b5
...
...
@@ -945,7 +945,8 @@ ones, in case fg and bg are nil."
plist
)))
(
defun
shr-tag-base
(
cont
)
(
setq
shr-base
(
cdr
(
assq
:href
cont
))))
(
setq
shr-base
(
cdr
(
assq
:href
cont
)))
(
shr-generic
cont
))
(
defun
shr-tag-a
(
cont
)
(
let
((
url
(
cdr
(
assq
:href
cont
)))
...
...
lisp/gnus/sieve.el
View file @
266c63b5
...
...
@@ -109,7 +109,6 @@ require \"fileinto\";
;; various
(define-key map "
?
" 'sieve-help)
(define-key map "
h
" 'sieve-help)
(define-key map "
q
" 'kill-buffer)
;; activating
(define-key map "
m
" 'sieve-activate)
(define-key map "
u
" 'sieve-deactivate)
...
...
@@ -152,6 +151,8 @@ require \"fileinto\";
(defun sieve-manage-quit ()
"
Quit.
"
(interactive)
(sieve-manage-close sieve-manage-buffer)
(kill-buffer sieve-manage-buffer)
(kill-buffer (current-buffer)))
(defun sieve-activate (&optional pos)
...
...
@@ -206,6 +207,7 @@ require \"fileinto\";
(insert sieve-template))
(sieve-mode)
(setq sieve-buffer-script-name name)
(beginning-of-buffer)
(message
(substitute-command-keys
"
Press
\\[sieve-upload]
to
upload
script
to
server.
"))))
...
...
@@ -256,10 +258,9 @@ Used to bracket operations which move point in the sieve-buffer."
(setq buffer-read-only nil)
(erase-buffer)
(buffer-disable-undo)
(insert "
\
Server
:
" server "
:
" (or port sieve-manage-default-port) "
")
(let* ((port (or port sieve-manage-default-port))
(header (format "
Server
:
%s:%s\n\n
" server port)))
(insert header))
(set (make-local-variable 'sieve-buffer-header-end)
(point-max)))
...
...
@@ -305,7 +306,7 @@ Server : " server ":" (or port sieve-manage-default-port) "
(with-current-buffer
(or ;; open server
(set (make-local-variable 'sieve-manage-buffer)
(sieve-manage-open server))
(sieve-manage-open server
port
))
(error "
Error
opening
server
%s
" server))
(sieve-manage-authenticate)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment