* lisp/thingatpt.el (thing-at-point): Accept optional second argument
NO-PROPERTIES to strip the text properties from the return value. * lisp/net/browse-url.el (browse-url-url-at-point): Pass NO-PROPERTIES to `thing-at-point' instead of stripping the properties ourselves. Also, when `thing-at-point' fails to find a url, prepend "http://" to the filename at point on the assumption that the user is pointing at something like gnu.org/gnu.
This commit is contained in:
parent
5cb15713d8
commit
72d3cfca0a
3 changed files with 27 additions and 9 deletions
|
@ -1,3 +1,13 @@
|
|||
2013-05-08 Sam Steingold <sds@gnu.org>
|
||||
|
||||
* thingatpt.el (thing-at-point): Accept optional second argument
|
||||
NO-PROPERTIES to strip the text properties from the return value.
|
||||
* net/browse-url.el (browse-url-url-at-point): Pass NO-PROPERTIES
|
||||
to `thing-at-point' instead of stripping the properties ourselves.
|
||||
Also, when `thing-at-point' fails to find a url, prepend "http://"
|
||||
to the filename at point on the assumption that the user is
|
||||
pointing at something like gnu.org/gnu.
|
||||
|
||||
2013-05-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* emacs-lisp/bytecomp.el (byte-compile-insert-header):
|
||||
|
|
|
@ -658,9 +658,10 @@ regarding its parameter treatment."
|
|||
;; URL input
|
||||
|
||||
(defun browse-url-url-at-point ()
|
||||
(let ((url (thing-at-point 'url)))
|
||||
(set-text-properties 0 (length url) nil url)
|
||||
url))
|
||||
(or (thing-at-point 'url t)
|
||||
;; assume that the user is pointing at something like gnu.org/gnu
|
||||
(let ((f (thing-at-point 'filename t)))
|
||||
(and f (concat "http://" f)))))
|
||||
|
||||
;; Having this as a separate function called by the browser-specific
|
||||
;; functions allows them to be stand-alone commands, making it easier
|
||||
|
|
|
@ -128,20 +128,27 @@ positions of the thing found."
|
|||
(error nil)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun thing-at-point (thing)
|
||||
(defun thing-at-point (thing &optional no-properties)
|
||||
"Return the THING at point.
|
||||
THING should be a symbol specifying a type of syntactic entity.
|
||||
Possibilities include `symbol', `list', `sexp', `defun',
|
||||
`filename', `url', `email', `word', `sentence', `whitespace',
|
||||
`line', `number', and `page'.
|
||||
|
||||
When the optional argument NO-PROPERTIES is non-nil,
|
||||
strip text properties from the return value.
|
||||
|
||||
See the file `thingatpt.el' for documentation on how to define
|
||||
a symbol as a valid THING."
|
||||
(if (get thing 'thing-at-point)
|
||||
(funcall (get thing 'thing-at-point))
|
||||
(let ((bounds (bounds-of-thing-at-point thing)))
|
||||
(if bounds
|
||||
(buffer-substring (car bounds) (cdr bounds))))))
|
||||
(let ((text
|
||||
(if (get thing 'thing-at-point)
|
||||
(funcall (get thing 'thing-at-point))
|
||||
(let ((bounds (bounds-of-thing-at-point thing)))
|
||||
(when bounds
|
||||
(buffer-substring (car bounds) (cdr bounds)))))))
|
||||
(when (and text no-properties)
|
||||
(set-text-properties 0 (length text) nil text))
|
||||
text))
|
||||
|
||||
;; Go to beginning/end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue