unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Cc: sds@gnu.org, emacs-devel@gnu.org
Subject: Re: Unicode support for the MS Windows clipboard
Date: Thu, 27 May 2004 11:45:42 +0200	[thread overview]
Message-ID: <m33c5mgq49.fsf@seneca.benny.turtle-trading.net> (raw)
In-Reply-To: <9681-Thu27May2004100522+0300-eliz@gnu.org> (Eli Zaretskii's message of "Thu, 27 May 2004 10:05:22 +0200")

Hi Eli,


>> From: Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
>> - Introduce a new variable `w32-clipboard-type'

"Eli Zaretskii" <eliz@gnu.org> writes:
> Couldn't this be done without introducing Windows-specific options?

I'd certainly love to.  In general all three modes have their use:

- CF_TEXT - This is obviously the fallback. 

- CF_UNICODETEXT - The most capable choice on NT/W2K/XP.  According to
  MSDN not supported on 9x/Me.

- CF_OEMTEXT - If you want to cut-and-paste line drawing characters
  between Emacs and other console apps on 9x/Me this would be the type
  to use.

  You could consider this scenario too exotic, so that we could drop
  it.  OTOH I know of at least one user that is actually using and
  maintaining files with line drawing characters in Emacs.

> AFAIK, the logic employed by Windows when it encodes clipboard text
> is quite simple, something like: if it cannot be encoded with the
> system codepage, use Unicode.  Why cannot Emacs simply follow this
> logic?

Conceptually, Windows doesn't encode, it just marshals memory blocks.

Windows *will* automatically generate any additional supported text
type from whatever an application provides, so that an application
only needs to know one of the three text types.  In this context at
least, 9x/Me only supports CF_TEXT and CF_OEMTEXT while Windows
NT/W2K/XP also supports CF_UNICODETEXT (or so MSDN says).

I don't have a 9x machine ready here at the moment, but I will
probably install one on the weekend for testing of other things
anyway.

> Also, AFAIK CF_UNICODETEXT _can_ be used on Windows 9x, as any
> program like clipbrd.exe or ClipConvert will show you.

9x/Me is explicitly documented on MSDN not to support that.  Being
that - from Windows' POV - we are just talking about memory blocks,
CF_UNICODETEXT is probably marshalled fine, but is it also
automatically converted?  I.e. will any non-Unicode application be
able to retrieve the CF_TEXT format that it is entitled to expect,
when we just post CF_UNICODETEXT?  And the other way around?

Even if not we could probably try a scheme similar to what you
outlined above:

- Receiving:  First try CF_UNICODETEXT.  If CF_UNICODETEXT doesn't
  exist, try CF_TEXT. 

- Posting: Post CF_UNICODETEXT.  Test if CF_TEXT is there now.  If
  CF_TEXT is not automatically provided by Windows, post CF_TEXT
  ourself in additiona to CF_UNICODETEXT.  Note that this last
  situation would triple the amount of memory required.


Anyway, what happens to the MULE problem in this unified scenario?  Do
all problems go away with unify-8859-on-{de,en}coding?


>> - Drop optimizations for ASCII-only text.

> Is that optimization indeed an optimization?

It was obviously intented as such, but it may just have been a remnant
of the code that was there before the introduction of the
{en,de}coding via coding systems into that module.  I will build a
version without my patch and test it.


Thanks for your input,
benny

  reply	other threads:[~2004-05-27  9:45 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-26 18:01 [Patch] Unicode support for the MS Windows clipboard Benjamin Riefenstahl
2004-05-27  7:58 ` Jason Rumney
2004-05-27 10:12   ` Benjamin Riefenstahl
2004-05-27 15:43     ` Jason Rumney
2004-05-27 17:46       ` Stefan Monnier
2004-05-27 21:30         ` Jason Rumney
2004-05-27  8:05 ` [Patch] " Eli Zaretskii
2004-05-27  9:45   ` Benjamin Riefenstahl [this message]
2004-05-28  7:44     ` Jason Rumney
2004-05-28  9:20     ` Eli Zaretskii
2004-05-29 14:46       ` Benjamin Riefenstahl
2004-05-28 13:26     ` Benjamin Riefenstahl
2004-05-28 14:48       ` Jason Rumney
2004-05-29  0:15         ` Kenichi Handa
2004-05-29 12:21       ` Eli Zaretskii
2004-05-29 14:52         ` Benjamin Riefenstahl
2004-05-29 17:40           ` Eli Zaretskii
2004-06-03  9:17       ` Benjamin Riefenstahl
2004-06-03 13:21         ` Kenichi Handa
2004-06-04 13:01         ` Eli Zaretskii
2004-07-26 19:17         ` Benjamin Riefenstahl
2004-07-26 19:35           ` Jason Rumney
2004-07-27 22:43             ` Benjamin Riefenstahl
2004-07-28  4:45               ` Eli Zaretskii
2004-07-28  8:02                 ` Jason Rumney
2004-07-28 18:57                   ` Eli Zaretskii
2004-07-28 11:30                 ` Benjamin Riefenstahl
2004-07-28 12:38                   ` Benjamin Riefenstahl
2004-07-28 13:03                     ` Jason Rumney
2004-07-28 13:44                       ` Benjamin Riefenstahl
2004-07-26 19:45           ` Jason Rumney
2004-07-27 11:17             ` Benjamin Riefenstahl
2004-07-27  5:07           ` Eli Zaretskii
2004-07-27 12:20             ` Benjamin Riefenstahl
2004-07-27  7:41           ` Jason Rumney
2004-07-27 11:04             ` Benjamin Riefenstahl
2004-07-27 12:24             ` Benjamin Riefenstahl
2004-07-27 13:15               ` Jason Rumney
2004-07-28  1:12               ` Tak Ota
2004-07-28 11:20                 ` Benjamin Riefenstahl
2004-07-28 11:35                   ` Jason Rumney
2004-07-28 12:08                     ` Benjamin Riefenstahl
2004-07-28 16:57                       ` Tak Ota
2004-07-28 17:34                       ` Tak Ota
2004-07-28 16:26                     ` Tak Ota
2004-07-28 18:42               ` Tak Ota
2004-07-28 21:51                 ` Tak Ota
2004-07-29 11:42                   ` Benjamin Riefenstahl
2004-07-29 16:38                     ` Tak Ota
2004-08-27 17:06               ` Tak Ota
2004-08-29 13:33                 ` Benjamin Riefenstahl
2004-08-30 20:47                   ` Unicode support for the MS Windows clipboard [new patch] Benjamin Riefenstahl
2004-08-31  4:05                     ` Eli Zaretskii
2004-09-12 19:50                       ` Benjamin Riefenstahl
2004-09-13 19:55                         ` Eli Zaretskii
2004-09-08 21:11                     ` Tak Ota
2004-09-10 13:47                     ` Kim F. Storm
2004-09-10 15:34                       ` Jason Rumney
2004-09-10 17:46                         ` Benjamin Riefenstahl
2004-09-12  9:09                           ` Richard Stallman
2004-09-12 14:11                             ` Benjamin Riefenstahl
2004-11-08 17:24                     ` Benjamin Riefenstahl
2004-11-15 21:41                       ` Tak Ota
2004-11-21 19:17                         ` Benjamin Riefenstahl
2005-02-08  0:49                       ` Tak Ota
2005-02-08  9:04                         ` Jason Rumney
2005-02-15 18:19                           ` Tak Ota
2005-02-16  9:52                             ` Jason Rumney
2005-02-16 17:09                             ` Benjamin Riefenstahl
2004-05-28 15:18     ` Unicode support for the MS Windows clipboard Stefan Monnier
2004-05-29 12:23       ` Eli Zaretskii
2004-05-27 17:48   ` [Patch] " Stefan Monnier

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=m33c5mgq49.fsf@seneca.benny.turtle-trading.net \
    --to=benjamin.riefenstahl@epost.de \
    --cc=emacs-devel@gnu.org \
    --cc=sds@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).