• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/emacs-93/emacs/lisp/gnus/

Lines Matching +defs:mm +defs:url +defs:insert

0 ;;; mm-url.el --- a wrapper of url functions/commands for Gnus
26 ;; Some codes are stolen from w3 and url packages. Some are moved from
35 (require 'mm-util)
46 (defvar url-current-object)
47 (defvar url-package-name)
48 (defvar url-package-version)
50 (defgroup mm-url nil
51 "A wrapper of url package and external url command for Gnus."
54 (defcustom mm-url-use-external (not
56 (require 'url)
58 "*If non-nil, use external grab program `mm-url-program'."
61 :group 'mm-url)
63 (defvar mm-url-predefined-programs
64 '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
67 (curl "curl" "--silent" "--user-agent" "mm-url" "--location")))
69 (defcustom mm-url-program
76 "The url grab program.
85 :group 'mm-url)
87 (defcustom mm-url-arguments nil
88 "The arguments for `mm-url-program'."
91 :group 'mm-url)
97 (defvar mm-url-package-name
102 (defvar mm-url-package-version gnus-version-number)
105 (defvar mm-url-html-entities
268 (defconst mm-url-unreserved-chars
277 (defun mm-url-load-url ()
278 "Load `url-insert-file-contents'."
281 (require 'url-handlers)
282 (require 'url-parse)
283 (require 'url-vars))
287 (require 'url)))
290 (defun mm-url-insert-file-contents (url)
292 If `mm-url-use-external' is non-nil, use `mm-url-program'."
293 (if mm-url-use-external
295 (if (string-match "^file:/+" url)
296 (insert-file-contents (substring url (1- (match-end 0))))
297 (mm-url-insert-file-contents-external url))
299 (if (fboundp 'url-generic-parse-url)
300 (setq url-current-object
301 (url-generic-parse-url url)))
302 (list url (buffer-size)))
303 (mm-url-load-url)
305 (url-request-extra-headers
307 ;; older versions of url included with w3, but it does more
309 (if (not (and (boundp 'url-version)
310 (equal url-version "Emacs")))
312 (url-package-name (or mm-url-package-name
313 url-package-name))
314 (url-package-version (or mm-url-package-version
315 url-package-version))
317 (setq result (url-insert-file-contents url))
323 (if (and (fboundp 'url-generic-parse-url)
325 (setq url-current-object (url-generic-parse-url
330 (defun mm-url-insert-file-contents-external (url)
331 "Insert file contents of URL using `mm-url-program'."
333 (if (symbolp mm-url-program)
334 (let ((item (cdr (assq mm-url-program mm-url-predefined-programs))))
336 args (append (cdr item) (list url))))
337 (setq program mm-url-program
338 args (append mm-url-arguments (list url))))
340 (error "Couldn't fetch %s" url))))
342 (defvar mm-url-timeout 30
345 (defvar mm-url-retries 10
348 (defun mm-url-insert (url &optional follow-refresh)
350 If FOLLOW-REFRESH is non-nil, redirect refresh url in META."
351 (let ((times mm-url-retries)
357 (with-timeout (mm-url-timeout)
359 (message "Trying again (%s)..." (- mm-url-retries times)))
364 (mm-url-insert-file-contents url)
368 (let ((url (match-string 1)))
370 (setq result (mm-url-insert url t)))))
371 (setq result (mm-url-insert-file-contents url)))
375 (defun mm-url-decode-entities ()
383 (if (mm-char-or-char-int-p c) c 32))
385 mm-url-html-entities))
391 (defun mm-url-decode-entities-nbsp ()
393 (let ((mm-url-html-entities (cons '(nbsp . 32) mm-url-html-entities)))
394 (mm-url-decode-entities)))
396 (defun mm-url-decode-entities-string (string)
398 (insert string)
399 (mm-url-decode-entities)
402 (defun mm-url-form-encode-xwfu (chunk)
415 ((memq char mm-url-unreserved-chars) (char-to-string char))
427 (defun mm-url-encode-www-form-urlencoded (pairs)
431 (concat (mm-url-form-encode-xwfu (car data)) "="
432 (mm-url-form-encode-xwfu (cdr data))))
435 (defun mm-url-fetch-form (url pairs)
437 (mm-url-load-url)
438 (let ((url-request-data (mm-url-encode-www-form-urlencoded pairs))
439 (url-request-method "POST")
440 (url-request-extra-headers
442 (url-insert-file-contents url)
446 (defun mm-url-fetch-simple (url content)
447 (mm-url-load-url)
448 (let ((url-request-data content)
449 (url-request-method "POST")
450 (url-request-extra-headers
452 (url-insert-file-contents url)
456 (defun mm-url-remove-markup ()
467 (provide 'mm-url)
470 ;;; mm-url.el ends here