Browse Source

org-table.el: Throw an error when importing a non-csv/tsv/txt file

* lisp/org-table.el (org-table-import): Throw an error when
interactively trying to import a non-csv/tsv/txt file.

Reported-by: swedebugia <swedebugia@riseup.net>
See https://orgmode.org/list/20200912135043.0354bac4@parabola/
Bastien Guerry 4 years ago
parent
commit
9c31cba002
1 changed files with 11 additions and 8 deletions
  1. 11 8
      lisp/org-table.el

+ 11 - 8
lisp/org-table.el

@@ -921,19 +921,22 @@ nil      When nil, the command tries to be smart and figure out the
 The command tries to be smart and figure out the separator in the
 The command tries to be smart and figure out the separator in the
 following way:
 following way:
 
 
-  - when each line contains a TAB, assume TAB-separated material
-  - when each line contains a comma, assume CSV material
-  - else, assume one or more SPACE characters as separator.
+- when each line contains a TAB, assume TAB-separated material;
+- when each line contains a comma, assume CSV material;
+- else, assume one or more SPACE characters as separator.
 
 
 When non-nil, SEPARATOR specifies the field separator in the
 When non-nil, SEPARATOR specifies the field separator in the
 lines.  It can have the following values:
 lines.  It can have the following values:
 
 
-(4)     Use the comma as a field separator
-(16)    Use a TAB as field separator
-(64)    Prompt for a regular expression as field separator
-integer When a number, use that many spaces, or a TAB, as field separator
-regexp  When a regular expression, use it to match the separator."
+- (4)     Use the comma as a field separator.
+- (16)    Use a TAB as field separator.
+- (64)    Prompt for a regular expression as field separator.
+- integer When a number, use that many spaces, or a TAB, as field separator.
+- regexp  When a regular expression, use it to match the separator."
   (interactive "f\nP")
   (interactive "f\nP")
+  (when (and (called-interactively-p 'any)
+	     (not (string-match-p "\.\\(?:[tc]sv\\|txt\\)$" file)))
+    (user-error "Cannot import such file"))
   (unless (bolp) (insert "\n"))
   (unless (bolp) (insert "\n"))
   (let ((beg (point))
   (let ((beg (point))
 	(pm (point-max)))
 	(pm (point-max)))