unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Wedler, Christoph" <christoph.wedler@sap.com>
Cc: emacs-devel@gnu.org
Subject: RE: [Bug] Issues with format.el: coding system, byte/char confusi on
Date: Tue, 8 Apr 2003 20:01:22 +0200	[thread overview]
Message-ID: <67B8CED503F3D511BB9F0008C75DAD6605485571@dewdfx17> (raw)

 >      1. Shouldn't `format-annotate-function' also save the buffer-local
 > 	variable `buffer-file-coding-system' (as it does with
 > 	`selective-display' and `enable-multibyte-characters' since v1.38)?

 > That seems plausible, but one ought to test it.

Currently, I do it in the format-encode function of my package X-Symbol
since July 2002 (it wouldn't work without), but I think this should be
done in general.

 >      2. To compute the coding system of the current buffer, Emacs adds
 > 	function `after-insert-file-set-buffer-file-coding-system' to
 > 	`after-insert-file-functions'.  Is this correct?

 > Yes.

 > 	 - decode functions using format.el,
 > 	 - decode functions in `after-insert-file-functions' before
 > 	   `after-insert-file-set-buffer-file-coding-system',
 > 	 - Emacs determines the coding system with
 > 	   `after-insert-file-set-buffer-file-coding-system',
 > 	 - decode functions in `after-insert-file-functions' after
 > 	   `after-insert-file-set-buffer-file-coding-system'

 > That would be true, if there is anything in
 > after-insert-file-functions other than
 > after-insert-file-set-buffer-file-coding-system.  Normally I believe
 > there isn't anything else.

What does this mean?  Is `after-insert-file-functions' obsolete without
being declared as such?

 > 	I would assume that the coding system must be determined before any
 > 	of the decode functions have been executed...

 > Not necessarily.  That would depend on what those other functions are.
 > Normally there aren't any others.  I suppose if you add other functions
 > to this hook that you should put them in the proper order.

As I said, the coding system is determined not only after some functions
in this hook, but also after the format-decode functions.

I also don't think that the order is correct (if
after-insert-file-set-buffer-file-coding-system doesn't do much, it
might not matter): since the `buffer-file-coding-system' is used to save
the RESULT of the format encode functions, it must be determined BEFORE
the format-decode functions have been executed.

 > Is there any real example where this question arises, or is it
 > purely hypothetical.

I'm not sure since I don't know what
`after-insert-file-set-buffer-file-coding-system' does exactly (is it
more than eol-type handling?).

 >      3. The docstring of `after-insert-file-functions' includes "It should
 > 	return the new byte count", whereas `format-decode' returns the
 > 	new char count.

 > It looks like they are really both measured in characters.
 > I will fix some doc strings.

In this case, you might also want to check (`position-bytes', but this might
be OK):

(defun after-insert-file-set-buffer-file-coding-system (inserted)
   ...
	      (let ((pos-byte (position-bytes (+ (point) inserted))))
		(set-buffer-multibyte nil)
		(setq inserted (- pos-byte (position-bytes (point))))))
	  (set-buffer-modified-p modified-p))))
  inserted)

- Christoph

             reply	other threads:[~2003-04-08 18:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-08 18:01 Wedler, Christoph [this message]
2003-04-09  5:37 ` [Bug] Issues with format.el: coding system, byte/char confusi on Kenichi Handa
2003-04-09  5:39 ` Richard Stallman
2003-04-15  2:06 ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2003-04-09 18:26 Wedler, Christoph
2003-04-10  6:23 ` Richard Stallman
2003-04-10 12:05   ` Kenichi Handa
2003-04-11  8:51     ` Richard Stallman
2003-04-11 11:04       ` Kenichi Handa
2003-05-02 14:11 Wedler, Christoph
2003-05-03 15:03 ` Richard Stallman
2003-05-13 17:18 Wedler, Christoph

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=67B8CED503F3D511BB9F0008C75DAD6605485571@dewdfx17 \
    --to=christoph.wedler@sap.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).