[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

diacritics revisited



[I am going back to this issue, new thread for simplicity]

I have three systems, and I want to enter diacritic characters (e.g.
ä) into the X terminals. However, this only works on one of the
three machines although they are configured identically wrt software
and settings. At least I think so, and I have not been able to find
any differences.

Something weird happened on the good system after I mucked around
with settings a little: I run WindowMaker, and now, if I start
a terminal with the "Run" method (this is the "good" terminal),
I can type diacritics just fine. However, in another terminal (the
"bad" terminal), spawned from an already existing one, I cannot
enter diacritics. On keypress, nothing happens.

I went to research this a little more and found the following
differences among the two:

In "good", the environment defines the following:
  SSH_AGENT_PID, SHELL, WMAKER_BIN_NAME, USER, SSH_AUTH_SOCK, PATH,
  WRASTER_COLOR_RESOLUTION0, PWD, SSH_ASKPASS, HOME, SHLVL,
  GNUSTEP_USER_ROOT, LOGNAME, DISPLAY 

The environment of "bad" defines the following:
  SSH_AGENT_PID, SHELL, WMAKER_BIN_NAME, USER, SSH_AUTH_SOCK, PATH
  WRASTER_COLOR_RESOLUTION0, PWD, SSH_ASKPASS, HOME, SHLVL,
  GNUSTEP_USER_ROOT, LOGNAME, DISPLAY (all identical up to here),
  now come the additional ones:
  COLORFGBG, WINDOWID, COLORTERM, TERM, OLDPWD, ETC, ZSHDIR,
  CVSROOT, CVSREAD, RCSBIN, CVSEDITOR, CVS_RSH, CVSUMASK, DEBEMAIL,
  DEBFULLNAME, DEBSIGN_MAINT, DEBSIGN_KEYID,
  DEBIAN_REVISION_MANDATORY, PATCH_THE_KERNEL, EDITOR, VISUAL,
  FCEDIT, HOSTNAME, LESS, LESSEDIT, LESSOPEN, LESSCHARDEF,
  LESSCHARSET, PAGER, LANG, LANGUAGE, LC_CTYPE, LC_NUMERIC, LC_TIME,
  LC_COLLATE, LC_MONETARY, LC_MESSAGES, LC_PAPER, LC_NAME,
  LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, LC_IDENTIFICATION,
  MAILCHECK, MAIL, RSYNC_RSH, HOMETEXMF, PILOTPORT, PILOTRATE,
  CDPATH, MANPATH, PS1, RPS1, PS2, PS3, PS4, LS_COLORS, LSOPTIONS,
  ZLS_COLORS

Note especially the presence of locale settings in "bad", the terminal
that does not work.

Furthermore, looking at the fd entries in the /proc/<pid>
subdirectory for each of the terminals, I see the following:

"good":
  fd/0 -> /dev/null
  fd/1 -> /home/madduck/.xsession-errors
  fd/2 -> /home/madduck/.xsession-errors
  fd/3 -> socket:[2968213]
  fd/4 -> /dev/ptmx

"bad":
  fd/0 -> /dev/pts/10
  fd/1 -> /dev/pts/10
  fd/2 -> /dev/pts/10
  fd/3 -> socket:[2985167]
  fd/4 -> /dev/ptmx
  
So to recapitulate:

  "good" is not spawned from a pts and defines no locale, but the input
         of diacritics works.
   "bad" is spawned from a pts and defines all locales, but diacritics
         don't work.

Let's eliminate differences. Here is something interesting I found:

If I start a subshell from within the subshell of "good", erasing the
entire environment:

  env -i sh

then diacritics don't work anymore.

If I then configure the locales identical to "bad", diacritics still
don't work, but when I start another subshell, they work again.

If I do the same in "bad", then diacritics don't work at any point in
the process.

By this, I am lead to conclude that the locale settings have no
influence in this problem. What does seem much more likely is that
the problem is related to the pts, i.e. a terminal connected to
a pts doesn't work in the way it's supposed to wrt diacritics.

I can't think of a way to change this, but I am much more interested
in the cause of the problem. Can someone more X-savvy possibly help
me out and pinpoint the cause so that I can eliminate it?

Thanks, and sorry for the long post.

-- 
Please do not CC me when replying to lists; I read them!
 
 .''`.     martin f. krafft <madduck@debian.org>
: :'  :    proud Debian developer, admin, and user
`. `'`
  `-  Debian - when you have better things to do than fixing a system
 
Invalid/expired PGP subkeys? Use subkeys.pgp.net as keyserver!

Attachment: pgpOQf6C5PfFH.pgp
Description: PGP signature


Reply to: