X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fmm-url.el;h=109bd265faac13ac5b78005ae2393bb80bf448c6;hp=c963bdae00bbc76e0a4b8ba21af064af72d826a1;hb=992509a3574f9add376cc480db9bb5656285bd5b;hpb=ff68cca86ada04bcf29226994ed98fdb083c6270 diff --git a/lisp/mm-url.el b/lisp/mm-url.el index c963bdae0..109bd265f 100644 --- a/lisp/mm-url.el +++ b/lisp/mm-url.el @@ -1,7 +1,6 @@ ;;; mm-url.el --- a wrapper of url functions/commands for Gnus -;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -;; Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu @@ -84,13 +83,6 @@ Likely values are `wget', `w3m', `lynx' and `curl'." ;;; Internal variables -(defvar mm-url-package-name - (gnus-replace-in-string - (gnus-replace-in-string gnus-version " v.*$" "") - " " "-")) - -(defvar mm-url-package-version gnus-version-number) - ;; Stolen from w3. (defvar mm-url-html-entities '( @@ -299,10 +291,6 @@ If `mm-url-use-external' is non-nil, use `mm-url-program'." (if (not (and (boundp 'url-version) (equal url-version "Emacs"))) (list (cons "Connection" "Close")))) - (url-package-name (or mm-url-package-name - url-package-name)) - (url-package-version (or mm-url-package-version - url-package-version)) result) (setq result (url-insert-file-contents url)) (save-excursion @@ -365,15 +353,23 @@ If FOLLOW-REFRESH is non-nil, redirect refresh url in META." (defun mm-url-decode-entities () "Decode all HTML entities." (goto-char (point-min)) - (while (re-search-forward "&\\(#[0-9]+\\|[a-z]+[0-9]*\\);" nil t) - (let ((elem (if (eq (aref (match-string 1) 0) ?\#) - (let ((c (mm-ucs-to-char - (string-to-number - (substring (match-string 1) 1))))) - (if (mm-char-or-char-int-p c) c ?#)) - (or (cdr (assq (intern (match-string 1)) - mm-url-html-entities)) - ?#)))) + (while (re-search-forward "&\\(#[0-9]+\\|#x[0-9a-f]+\\|[a-z]+[0-9]*\\);" + nil t) + (let* ((entity (match-string 1)) + (elem (if (eq (aref entity 0) ?\#) + (let ((c + ;; Hex number: ㈒ + (if (eq (aref entity 1) ?x) + (string-to-number (substring entity 2) + 16) + ;; Decimal number:  + (string-to-number (substring entity 1))))) + (setq c (or (cdr (assq c mm-extra-numeric-entities)) + (mm-ucs-to-char c))) + (if (mm-char-or-char-int-p c) c ?#)) + (or (cdr (assq (intern entity) + mm-url-html-entities)) + ?#)))) (unless (stringp elem) (setq elem (char-to-string elem))) (replace-match elem t t)))) @@ -420,69 +416,6 @@ spaces. Die Die Die." (autoload 'mml-compute-boundary "mml") -(defun mm-url-encode-multipart-form-data (pairs &optional boundary) - "Return PAIRS encoded in multipart/form-data." - ;; RFC1867 - - ;; Get a good boundary - (unless boundary - (setq boundary (mml-compute-boundary '()))) - - (concat - - ;; Start with the boundary - "--" boundary "\r\n" - - ;; Create name value pairs - (mapconcat - 'identity - ;; Delete any returned items that are empty - (delq nil - (mapcar (lambda (data) - (when (car data) - ;; For each pair - (concat - - ;; Encode the name - "Content-Disposition: form-data; name=\"" - (car data) "\"\r\n" - "Content-Type: text/plain; charset=utf-8\r\n" - "Content-Transfer-Encoding: binary\r\n\r\n" - - (cond ((stringp (cdr data)) - (cdr data)) - ((integerp (cdr data)) - (int-to-string (cdr data)))) - - "\r\n"))) - pairs)) - ;; use the boundary as a separator - (concat "--" boundary "\r\n")) - - ;; put a boundary at the end. - "--" boundary "--\r\n")) - -(defun mm-url-fetch-form (url pairs) - "Fetch a form from URL with PAIRS as the data using the POST method." - (mm-url-load-url) - (let ((url-request-data (mm-url-encode-www-form-urlencoded pairs)) - (url-request-method "POST") - (url-request-extra-headers - '(("Content-type" . "application/x-www-form-urlencoded")))) - (url-insert-file-contents url) - (setq buffer-file-name nil)) - t) - -(defun mm-url-fetch-simple (url content) - (mm-url-load-url) - (let ((url-request-data content) - (url-request-method "POST") - (url-request-extra-headers - '(("Content-type" . "application/x-www-form-urlencoded")))) - (url-insert-file-contents url) - (setq buffer-file-name nil)) - t) - (defun mm-url-remove-markup () "Remove all HTML markup, leaving just plain text." (goto-char (point-min)) @@ -496,5 +429,4 @@ spaces. Die Die Die." (provide 'mm-url) -;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f ;;; mm-url.el ends here