unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Xah Lee <xah@xahlee.org>
To: help-gnu-emacs@gnu.org
Subject: mac/dos/unix newline conversion without specify from
Date: Sun, 2 Dec 2007 10:14:44 -0800 (PST)	[thread overview]
Message-ID: <b0c41105-0c5d-4249-b4c9-fe136d9d076e@s36g2000prg.googlegroups.com> (raw)

i was surprised today, to find that Carbon Emacs 22 and also Aquamacs,
does not open a file with classic Mac OS line endings properly? (i.e.
EOL shows up as ^M)

i realized this when trying to write a elisp program to do the
conversion given a file name.

originally, i thought set-buffer-file-coding-system does it. But not
so if the file opened is a classic mac os file with CR as newline.
After some elisp doc reading, i find that i have to call (coding-
system-for-read 'mac) first. But then, it is not better if i actually
just do the newline replacement myself like this:

; code untested
(defun xx ()
  "temp... Convert list of files to unix/mac/dos's newline char."
  (interactive)
  (let (fpath mybuffer)
    (setq fpath "~/web/emacs/x2/x1mac")
    (setq mybuffer (find-file fpath))
    ; note: Mac here denote Mac OS up to 9.
    ; In Mac OS X, both unix newline and old mac newline are accepted,
but unix newline is recommended.
    (replace-string "\n" "\r" nil 1 (1+ (buffer-size))) ; unix to mac
    (replace-string "\n" "\r\n" nil 1 (1+ (buffer-size))) ; unix to
dos
    (replace-string "\r" "\n" nil 1 (1+ (buffer-size))) ; mac to unix
    (replace-string "\r" "\r\n" nil 1 (1+ (buffer-size))) ; mac to dos
    (replace-string "\r\n" "\n" nil 1 (1+ (buffer-size))) ; dos to
unix
    (replace-string "\r\n" "\r" nil 1 (1+ (buffer-size))) ; dos to mac
;    (set-buffer-file-coding-system 'unix) ; or 'mac or 'dos
    (save-buffer)
    (kill-buffer mybuffer)
   )
)

Basically, i was trying to avoid having both to specify the from and
to. I was hoping to just specifiy the to.

any suggestions? Thanks.

  Xah
  xah@xahlee.org
\xAD\xF4 http://xahlee.org/

             reply	other threads:[~2007-12-02 18:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-02 18:14 Xah Lee [this message]
2007-12-04 14:18 ` mac/dos/unix newline conversion without specify from David Reitter
2007-12-05 14:37   ` Xah Lee
2007-12-05 15:05     ` David Kastrup
2007-12-05 16:16       ` Xah Lee
2007-12-05 16:25         ` David Kastrup
2007-12-05 16:51           ` Xah Lee
2007-12-05 17:05             ` David Kastrup
2007-12-07 18:03               ` Xah Lee
2007-12-07 22:35                 ` Stefan Monnier
2007-12-07 16:27         ` Stefan Monnier
2007-12-07 18:04           ` Xah Lee
2007-12-07 22:30             ` Stefan Monnier
2007-12-08  0:38               ` Xah Lee
2007-12-08 11:47                 ` Eli Zaretskii
     [not found]                 ` <mailman.4757.1197114470.18990.help-gnu-emacs@gnu.org>
2007-12-08 17:12                   ` Xah Lee
2007-12-09  1:23                     ` David Kastrup

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=b0c41105-0c5d-4249-b4c9-fe136d9d076e@s36g2000prg.googlegroups.com \
    --to=xah@xahlee.org \
    --cc=help-gnu-emacs@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.
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).