diff options
Diffstat (limited to 'hoersten-pastebin-region.el')
| -rw-r--r-- | hoersten-pastebin-region.el | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/hoersten-pastebin-region.el b/hoersten-pastebin-region.el new file mode 100644 index 0000000..b03a042 --- /dev/null +++ b/hoersten-pastebin-region.el @@ -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)))))))))) |
