diff -r 000000000000 -r c25fee3c92e9 hoersten-pastebin-region.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hoersten-pastebin-region.el Thu Jan 01 10:51:38 2009 -0600 @@ -0,0 +1,35 @@ +;; ~/.emacs.d/hoersten-pastebin-region.el - Luke Hoersten - v0.6 + +;; custom keys +(global-set-key (kbd "C-c w") 'pastebin-region) + +;; Based on http://www.emacswiki.org/cgi-bin/wiki/download/pastebin.el +(defvar pastebin-type-assoc + '((emacs-lisp-mode . "common-lisp") + (c-mode . "c") + (python-mode . "python") + (nxml-mode . "xml") + (c++-mode . "cpp"))) + +(defun pastebin-region (start end) + "Send selected text to dpaste pastebin." + (interactive "r") + (let* ((pastebin-url "http://build-ch-03/paste/") + (url-request-method "POST") + (url-request-extra-headers '(("Content-Type" . "application/x-www-form-urlencoded"))) + (url-request-data + (format "title=%s&content=%s&lexer=%s&author=%s" + (url-hexify-string (buffer-file-name)) ;; title + (url-hexify-string (buffer-substring-no-properties start end)) ;; content + (url-hexify-string (or (assoc-default major-mode pastebin-type-assoc) "text")) ;; lexer + (url-hexify-string (user-full-name))))) ;; author + (url-retrieve pastebin-url (lambda (arg) + (cond + ((equal :error (car arg)) + (signal (cdr arg))) + ((equal :redirect (car arg)) + (let ((redirected (cadr arg))) + (message redirected) + (with-temp-buffer + (insert redirected) + (clipboard-kill-ring-save (point-min) (point-max))))))))))