Subject: bug#1187 closed by Stefan Monnier <[email-masked]> (Re: bug#1187: 23.0.60; Cannot read vline.el - invalid read syntax)

From: [email-masked] (Emacs bug Tracking System)

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#1187: 23.0.60; Cannot read vline.el - invalid read syntax

It has been closed by Stefan Monnier <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Stefan Monnier <[email-masked]> by
replying to this email.

-- 
1187: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1187
Emacs Bug Tracking System
Contact [email-masked] with problems
>From [email-masked] Fri Oct 17 08:46:13 2008
From: Stefan Monnier <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], Lawrence Mitchell <[email-masked]>
Subject: Re: bug#1187: 23.0.60; Cannot read vline.el - invalid read syntax
Date: Fri, 17 Oct 2008 11:46:05 -0400

http://www.emacswiki.org/cgi-bin/emacs/download/vline.el contains
non-ascii chars, but does not contain any coding tag, so depending on
your coding settings, it will decode it in different ways, some of which
will lead to load-time errors, others to incorrect behavior.
There's nothing for Emacs to do here.
Such uses are OK for a file you wrote for your own use, but for
distribution to people who may use other locales, it's not.

        Stefan

>From [email-masked] Thu Oct 16 14:24:22 2008
From: "Drew Adams" <[email-masked]>
To: <[email-masked]>
Subject: 23.0.60; Cannot read vline.el - invalid read syntax
Date: Thu, 16 Oct 2008 14:22:45 -0700

This is a multi-part message in MIME format.

------=_NextPart_000_00F9_01C92F9A.A8938900
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_00FA_01C92F9A.A8938900"

------=_NextPart_001_00FA_01C92F9A.A8938900
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Library vline.el can be read fine in Emacs 22, but Emacs 23 raises an
error, saying Invalid read syntax: "?".

In GNU Emacs 23.0.60.1 (i386-mingw-nt5.1.2600)
 of 2008-10-03 on LENNART-69DE564
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/g/include
-fno-crossjumping'
 
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default-enable-multibyte-characters: t
 
Major mode: Emacs-Lisp
 
Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
 
Recent input:
C-x C-f c o n r r <backspace> <backspace> t r i b / 
v l i n e <tab> <return> M-x l o a d - f <return> <return> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <menu-bar> <help-menu> 
<send-emacs-bug-report>
 
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading c:/drews-lisp-20/CONTRIB/vline.el (source)...
load-with-code-conversion: Invalid read syntax: "?"

------=_NextPart_001_00FA_01C92F9A.A8938900
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<META content=3D"MSHTML 6.00.2900.3429" name=3DGENERATOR></HEAD>
<BODY>
<DIV><FONT face=3DArial size=3D2>Library vline.el can be read fine in =
Emacs 22, but=20
Emacs 23 raises an<BR>error, saying Invalid read syntax: =
"?".</FONT></DIV>
<DIV>&nbsp;</DIV><FONT face=3DArial size=3D2>
<DIV><BR>In GNU Emacs 23.0.60.1 (i386-mingw-nt5.1.2600)<BR>&nbsp;of =
2008-10-03=20
on LENNART-69DE564<BR>Windowing system distributor `Microsoft Corp.', =
version=20
5.1.2600<BR>configured using `configure --with-gcc (3.4) --no-opt =
--cflags=20
-Ic:/g/include -fno-crossjumping'</DIV>
<DIV>&nbsp;</DIV>
<DIV>Important settings:<BR>&nbsp; value of $LC_ALL: nil<BR>&nbsp; value =
of=20
$LC_COLLATE: nil<BR>&nbsp; value of $LC_CTYPE: nil<BR>&nbsp; value of=20
$LC_MESSAGES: nil<BR>&nbsp; value of $LC_MONETARY: nil<BR>&nbsp; value =
of=20
$LC_NUMERIC: nil<BR>&nbsp; value of $LC_TIME: nil<BR>&nbsp; value of =
$LANG:=20
ENU<BR>&nbsp; value of $XMODIFIERS: nil<BR>&nbsp; locale-coding-system:=20
cp1252<BR>&nbsp; default-enable-multibyte-characters: t</DIV>
<DIV>&nbsp;</DIV>
<DIV>Major mode: Emacs-Lisp</DIV>
<DIV>&nbsp;</DIV>
<DIV>Minor modes in effect:<BR>&nbsp; tooltip-mode: t<BR>&nbsp; =
tool-bar-mode:=20
t<BR>&nbsp; mouse-wheel-mode: t<BR>&nbsp; menu-bar-mode: t<BR>&nbsp;=20
file-name-shadow-mode: t<BR>&nbsp; global-font-lock-mode: t<BR>&nbsp;=20
font-lock-mode: t<BR>&nbsp; blink-cursor-mode: t<BR>&nbsp;=20
global-auto-composition-mode: t<BR>&nbsp; auto-composition-mode: =
t<BR>&nbsp;=20
auto-encryption-mode: t<BR>&nbsp; auto-compression-mode: t<BR>&nbsp;=20
line-number-mode: t<BR>&nbsp; transient-mark-mode: t</DIV>
<DIV>&nbsp;</DIV>
<DIV>Recent input:<BR>C-x C-f c o n r r &lt;backspace&gt; =
&lt;backspace&gt; t r=20
i b / <BR>v l i n e &lt;tab&gt; &lt;return&gt; M-x l o a d - f =
&lt;return&gt;=20
&lt;return&gt; <BR>&lt;help-echo&gt; &lt;help-echo&gt; &lt;help-echo&gt; =

&lt;help-echo&gt; &lt;help-echo&gt; <BR>&lt;help-echo&gt; =
&lt;help-echo&gt;=20
&lt;help-echo&gt; &lt;menu-bar&gt; &lt;help-menu&gt;=20
<BR>&lt;send-emacs-bug-report&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Recent messages:<BR>For information about GNU Emacs and the GNU =
system,=20
type C-h C-a.<BR>Loading c:/drews-lisp-20/CONTRIB/vline.el=20
(source)...<BR>load-with-code-conversion: Invalid read syntax:=20
"?"</FONT></DIV></BODY></HTML>

------=_NextPart_001_00FA_01C92F9A.A8938900--

------=_NextPart_000_00F9_01C92F9A.A8938900
Content-Type: application/octet-stream;
	name="vline.el"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="vline.el"

;;; vline.el --- show vertical line mode.=0A=
=0A=
;; Copyright (C) 2002, 2008 by Taiki SUGAWARA <[email-masked]>=0A=
=0A=
;; Author: Taiki SUGAWARA <[email-masked]>=0A=
;; Keywords: faces, editing, emulating=0A=
;; Version: 1.03=0A=
;; Time-stamp: <2008-01-22 17:58:43 UTC taiki>=0A=
;; URL: http://www.emacswiki.org/cgi-bin/wiki/vline.el=0A=
=0A=
;; This file is free software; you can redistribute it and/or modify=0A=
;; it under the terms of the GNU General Public License as published by=0A=
;; the Free Software Foundation; either version 2, or (at your option)=0A=
;; any later version.=0A=
=0A=
;; This file is distributed in the hope that it will be useful,=0A=
;; but WITHOUT ANY WARRANTY; without even the implied warranty of=0A=
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the=0A=
;; GNU General Public License for more details.=0A=
=0A=
;; You should have received a copy of the GNU General Public License=0A=
;; along with GNU Emacs; see the file COPYING.  If not, write to=0A=
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,=0A=
;; Boston, MA 02110-1301, USA.=0A=
=0A=
;;; Usage=0A=
;; put followings your .emacs=0A=
;;   (require 'vline)=0A=
;;=0A=
;; if you display a vertical line, type M-x vline-mode. `vline-mode' =
doesn't=0A=
;; effect other buffers, because it is a buffer local minor mode. if you =
hide=0A=
;; a vertical line, type M-x vline-mode again.=0A=
;;=0A=
;; if you display a vertical line in all buffers, type M-x =
vline-global-mode.=0A=
;;=0A=
;; `vline-style' provides a display style of vertical line. see =
`vline-style' docstring.=0A=
=0A=
;;; Changes=0A=
;;=0A=
;; 2008-01-22 taiki=0A=
;; applied patch from Lennart Borgman=0A=
;; - Added :group 'vline=0A=
;; - Added defcustom vline-current-window-only=0A=
;; - Added header items to simplify for users=0A=
=0A=
;;; Code:=0A=
=0A=
(defvar vline-overlay-table-size 200)=0A=
(defvar vline-overlay-table (make-vector vline-overlay-table-size nil))=0A=
(defvar vline-line-char ?|)=0A=
=0A=
(defcustom vline-style 'face=0A=
  "*This variable holds vertical line display style.=0A=
Available values are followings:=0A=
`face'	    : use face.=0A=
`compose'   : use composit char.=0A=
`mixed'	    : use face and composit char."=0A=
  :type '(radio=0A=
	  (const face)=0A=
	  (const compose)=0A=
	  (const mixed))=0A=
  :group 'vline)=0A=
=0A=
=0A=
(defface vline=0A=
  '((t (:background "gray90")))=0A=
  "*A default face for vertical line highlighting."=0A=
  :group 'vline)=0A=
=0A=
(defcustom vline-face 'vline=0A=
  "*A face for vertical line highlighting."=0A=
  :type 'face=0A=
  :group 'vline)=0A=
=0A=
(defcustom vline-current-window-only nil=0A=
  "*If non-nil then show column in current window only.=0A=
If the buffer is shown in several windows then show column only=0A=
in the currently selected window."=0A=
  :type 'boolean=0A=
  :group 'vline)=0A=
=0A=
(define-minor-mode vline-mode=0A=
  "Display vertical line mode."=0A=
  :global nil=0A=
  :lighter " VL"=0A=
  :group 'vline=0A=
  (if vline-mode=0A=
      (add-hook 'post-command-hook 'vline-post-command-hook nil t)=0A=
    (vline-clear)=0A=
    (remove-hook 'post-command-hook 'vline-post-command-hook t)))=0A=
=0A=
(define-minor-mode vline-global-mode=0A=
  "Display vertical line mode as globally."=0A=
  :global t=0A=
  :lighter " VL"=0A=
  :group 'vline=0A=
  (if vline-global-mode=0A=
      (add-hook 'post-command-hook 'vline-global-post-command-hook)=0A=
    (vline-clear)=0A=
    (remove-hook 'post-command-hook 'vline-global-post-command-hook)))=0A=
=0A=
=0A=
(defun vline-post-command-hook ()=0A=
  (when (and vline-mode (not (minibufferp)))=0A=
    (vline-show)))=0A=
=0A=
(defun vline-global-post-command-hook ()=0A=
  (when (and vline-global-mode (not (minibufferp)))=0A=
    (vline-show)))=0A=
=0A=
(defun vline-clear ()=0A=
  (mapcar (lambda (ovr)=0A=
	    (and ovr (delete-overlay ovr)))=0A=
	  vline-overlay-table))=0A=
=0A=
(defun vline-show (&optional point)=0A=
  (vline-clear)=0A=
  (save-excursion=0A=
    (if point=0A=
	(goto-char point)=0A=
      (setq point (point)))=0A=
    (let* ((column (current-column))=0A=
	   (i 0)=0A=
	   (compose-p (memq vline-style '(compose mixed)))=0A=
	   (face-p (memq vline-style '(face mixed)))=0A=
	   (line-char (if compose-p vline-line-char ? ))=0A=
	   (line-str (make-string 1 line-char)))=0A=
      (when face-p=0A=
	(setq line-str (propertize line-str 'face vline-face)))=0A=
      (goto-char (window-start))=0A=
      (while (and (< i (1- (window-height)))=0A=
		  (< i (length vline-overlay-table))=0A=
		  (not (eobp)))=0A=
	(move-to-column column)=0A=
	;; non-cursor line only (workaround of eol probrem.=0A=
	(unless (=3D (point) point)=0A=
	  ;; if column over the cursor's column (when tab or wide char is =
appered.=0A=
	  (when (> (current-column) column)=0A=
	    (backward-char))=0A=
	  (let ((ovr (aref vline-overlay-table i))=0A=
		;; consider a newline, tab and wide char.=0A=
		(str (concat (make-string (- column (current-column)) ? )=0A=
			     line-str))=0A=
		(char (char-after)))=0A=
	    ;; create overlay if not found.=0A=
	    (unless ovr=0A=
	      (setq ovr (make-overlay 0 0))=0A=
	      (overlay-put ovr 'rear-nonsticky t)=0A=
	      (aset vline-overlay-table i ovr))=0A=
=0A=
	    ;; initialize overlay.=0A=
	    (overlay-put ovr 'face nil)=0A=
	    (overlay-put ovr 'before-string nil)=0A=
	    (overlay-put ovr 'after-string nil)=0A=
	    (overlay-put ovr 'invisible nil)=0A=
	    (overlay-put ovr 'window=0A=
			 (if vline-current-window-only=0A=
			     (selected-window)=0A=
			   nil))=0A=
=0A=
	    (cond=0A=
	     ;; tab, wide-space.=0A=
	     ((memq char '(?\t ?=E3=80=80))=0A=
	      (setq str=0A=
		    (concat str=0A=
			    (make-string (- (save-excursion (forward-char)=0A=
							    (current-column))=0A=
					    (current-column)=0A=
					    (string-width str))=0A=
					 ? )))=0A=
	      (move-overlay ovr (point) (1+ (point)))=0A=
	      (overlay-put ovr 'invisible t)=0A=
	      (overlay-put ovr 'after-string str))=0A=
	     ;; eol=0A=
	     ((eolp)=0A=
	      (move-overlay ovr (point) (point))=0A=
	      (overlay-put ovr 'after-string str))=0A=
	     (t=0A=
	      (cond=0A=
	       (compose-p=0A=
		(let (str)=0A=
		  (when char=0A=
		    (setq str (compose-chars=0A=
			       char=0A=
			       (cond ((=3D (char-width char) 1)=0A=
				      '(tc . tc))=0A=
				     ((=3D (current-column) column)=0A=
				      '(tc . tr))=0A=
				     (t=0A=
				      '(tc . tl)))=0A=
			       line-char))=0A=
		    (when face-p=0A=
		      (setq str (propertize str 'face vline-face)))=0A=
		    (move-overlay ovr (point) (1+ (point)))=0A=
		    (overlay-put ovr 'invisible t)=0A=
		    (overlay-put ovr 'after-string str))))=0A=
	       (face-p=0A=
		(move-overlay ovr (point) (1+ (point)))=0A=
		(overlay-put ovr 'face vline-face)))))))=0A=
	(setq i (1+ i))=0A=
	(forward-line)))))=0A=
=0A=
(provide 'vline)=0A=
=0A=
;;; vline.el ends here=0A=

------=_NextPart_000_00F9_01C92F9A.A8938900--