summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@red-bean.com>2023-01-08 16:35:21 -0800
committerGitHub <noreply@github.com>2023-01-08 16:35:21 -0800
commit26f4582293e0c11aaf5643c5064cd2c98444642c (patch)
tree069c44a0ed76afb3d0b19ebdc4ea4aec48930611
parent1f421fb9177afedba7c3759ad5f15776ea38a950 (diff)
parent47e7c849fffe5cbc73f454e0fdb9d1f17e46c58f (diff)
downloadrust-mode-26f4582293e0c11aaf5643c5064cd2c98444642c.tar.gz
Merge pull request #480 from psibi/playpen-fix
Abilty to customize the enabling of URL shortener for playpen
-rw-r--r--rust-playpen.el42
1 files changed, 25 insertions, 17 deletions
diff --git a/rust-playpen.el b/rust-playpen.el
index 1a9e583..a80a184 100644
--- a/rust-playpen.el
+++ b/rust-playpen.el
@@ -16,6 +16,12 @@
:type 'string
:group 'rust-mode)
+(defcustom rust-playpen-enable-shortener t
+ "Enable shortended URL for playpen links."
+ :type 'boolean
+ :safe #'booleanp
+ :group 'rust-mode)
+
(defcustom rust-shortener-url-format "https://is.gd/create.php?format=simple&url=%s"
"Format string to use for creating the shortened link of a playpen submission."
:type 'string
@@ -28,26 +34,28 @@
(interactive "r")
(let* ((data (buffer-substring begin end))
(escaped-data (url-hexify-string data))
- (escaped-playpen-url (url-hexify-string
- (format rust-playpen-url-format escaped-data))))
+ (playpen-url (format rust-playpen-url-format escaped-data))
+ (escaped-playpen-url (url-hexify-string playpen-url)))
(if (> (length escaped-playpen-url) 5000)
(error "encoded playpen data exceeds 5000 character limit (length %s)"
(length escaped-playpen-url))
- (let ((shortener-url (format rust-shortener-url-format escaped-playpen-url))
- (url-request-method "POST"))
- (url-retrieve shortener-url
- (lambda (state)
- ;; filter out the headers etc. included at the
- ;; start of the buffer: the relevant text
- ;; (shortened url or error message) is exactly
- ;; the last line.
- (goto-char (point-max))
- (let ((last-line (thing-at-point 'line t))
- (err (plist-get state :error)))
- (kill-buffer)
- (if err
- (error "failed to shorten playpen url: %s" last-line)
- (message "%s" last-line)))))))))
+ (if (not rust-playpen-enable-shortener)
+ (message "%s" playpen-url)
+ (let ((shortener-url (format rust-shortener-url-format escaped-playpen-url))
+ (url-request-method "POST"))
+ (url-retrieve shortener-url
+ (lambda (state)
+ ;; filter out the headers etc. included at the
+ ;; start of the buffer: the relevant text
+ ;; (shortened url or error message) is exactly
+ ;; the last line.
+ (goto-char (point-max))
+ (let ((last-line (thing-at-point 'line t))
+ (err (plist-get state :error)))
+ (kill-buffer)
+ (if err
+ (error "failed to shorten playpen url: %s" last-line)
+ (message "%s" last-line))))))))))
(defun rust-playpen-buffer ()
"Create a shareable URL for the contents of the buffer on the Rust playpen."