--- /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))))))))))