GNU bug report logs -
#71822
Feature request: fullwidth to halfwidth
Previous Next
Reported by: Dan Jacobson <jidanni <at> jidanni.org>
Date: Fri, 28 Jun 2024 12:58:02 UTC
Severity: wishlist
Tags: wontfix
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 71822 in the body.
You can then email your comments to 71822 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Fri, 28 Jun 2024 12:58:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Dan Jacobson <jidanni <at> jidanni.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Fri, 28 Jun 2024 12:58:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
M-l runs the command downcase-word.
That's great. But here's a feature request:
Have commands that can change wide to narrow,
with the same ease as M-l.
E.g., change 209M into 209M.
and another command to do the opposite.
OK, I guess they are called fullwidth and halfwidth.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Fri, 28 Jun 2024 13:49:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> From: Dan Jacobson <jidanni <at> jidanni.org>
> Date: Fri, 28 Jun 2024 17:06:55 +0800
>
> M-l runs the command downcase-word.
> That's great. But here's a feature request:
> Have commands that can change wide to narrow,
> with the same ease as M-l.
> E.g., change 209M into 209M.
> and another command to do the opposite.
> OK, I guess they are called fullwidth and halfwidth.
When would such commands be useful? These characters are deliberately
not the same, and not just different shapes of the same letters
(unlike upper-case and lower-case letters).
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 04:06:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 71822 <at> debbugs.gnu.org (full text, mbox):
>>>>> "EZ" == Eli Zaretskii <eliz <at> gnu.org> writes:
>> Have commands that can change wide to narrow,
>> with the same ease as M-l.
>> E.g., change 209M into 209M.
>> and another command to do the opposite.
>> OK, I guess they are called fullwidth and halfwidth.
EZ> When would such commands be useful?
We use them all the time in Chinese,
請由209M號門 Ugly
請由209M號門 Pretty
EZ> These characters are deliberately
EZ> not the same, and not just different shapes of the same letters
EZ> (unlike upper-case and lower-case letters).
$ unicode 209M|grep Deco
Decomposition: <wide> 0032
Decomposition: <wide> 0030
Decomposition: <wide> 0039
Decomposition: <wide> 004D
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 05:26:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> From: Dan Jacobson <jidanni <at> jidanni.org>
> Cc: 71822 <at> debbugs.gnu.org
> Date: Sun, 30 Jun 2024 12:04:07 +0800
>
> >>>>> "EZ" == Eli Zaretskii <eliz <at> gnu.org> writes:
> >> Have commands that can change wide to narrow,
> >> with the same ease as M-l.
> >> E.g., change 209M into 209M.
> >> and another command to do the opposite.
> >> OK, I guess they are called fullwidth and halfwidth.
>
> EZ> When would such commands be useful?
>
> We use them all the time in Chinese,
> 請由209M號門 Ugly
> 請由209M號門 Pretty
That's about use of the characters, not about the use cases for the
commands you proposed. Or maybe I don't understand the example, in
which case please elaborate.
> EZ> These characters are deliberately
> EZ> not the same, and not just different shapes of the same letters
> EZ> (unlike upper-case and lower-case letters).
>
> $ unicode 209M|grep Deco
> Decomposition: <wide> 0032
> Decomposition: <wide> 0030
> Decomposition: <wide> 0039
> Decomposition: <wide> 004D
Yes, and..?
I didn't ask whether Emacs has the requisite information, I asked
about the use cases for these commands. You presented none; instead,
you are lecturing me on basic Unicode attributes of characters and on
the reasons for having the wide ones. That is not helpful; I already
know all that. It definitely doesn't provide any rationale for having
such commands in Emacs.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 08:24:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 71822 <at> debbugs.gnu.org (full text, mbox):
>>>>> "EZ" == Eli Zaretskii <eliz <at> gnu.org> writes:
EZ> use cases for these commands
All offline (I. e. all by hand), I start out with English,
1. Her ID number is 0987654321BA.
I rewrite the first part in Chinese,
2. 她證號為 0987654321BA 。
But to get it into its final state,
3. 她證號為098...
I need to retype each and every number and letter "all over again" (but
in fullwidth), because there is no M-<something> command to change it
for me. As you see I have given up halfway.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 08:31:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> From: Dan Jacobson <jidanni <at> jidanni.org>
> Cc: 71822 <at> debbugs.gnu.org
> Date: Sun, 30 Jun 2024 16:23:45 +0800
>
> >>>>> "EZ" == Eli Zaretskii <eliz <at> gnu.org> writes:
> EZ> use cases for these commands
>
> All offline (I. e. all by hand), I start out with English,
>
> 1. Her ID number is 0987654321BA.
>
> I rewrite the first part in Chinese,
>
> 2. 她證號為 0987654321BA 。
>
> But to get it into its final state,
>
> 3. 她證號為098...
>
> I need to retype each and every number and letter "all over again" (but
> in fullwidth), because there is no M-<something> command to change it
> for me. As you see I have given up halfway.
You are saying that the keyboard and/or the input method you are using
to type Chinese support characters such as 她證號為, but don't support
typing wide digits like 098, is that the problem?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 09:45:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> EZ> use cases for these commands
>
> All offline (I. e. all by hand), I start out with English,
>
> 1. Her ID number is 0987654321BA.
>
> I rewrite the first part in Chinese,
>
> 2. 她證號為 0987654321BA 。
>
> But to get it into its final state,
>
> 3. 她證號為098...
>
> I need to retype each and every number and letter "all over again" (but
> in fullwidth), because there is no M-<something> command to change it
> for me. As you see I have given up halfway.
FYI, We have japanese-hankaku[-region] and japanese-zenkaku[-region]
functions, which convert hankaku (halfwidth) and zenkaku (fullwidth)
characters to one another. It is useful to normalize mixed text
mainly input by someone not me, though these functions don't support
all characters because they are for traditional Japanese character
set.
> japanese-hankaku is an autoloaded native-comp-function in
> ‘japan-util.el’.
>
> (japanese-hankaku OBJ &optional ASCII-ONLY)
>
> Convert argument to ‘hankaku’ and return that.
> The argument may be a character or string. The result has the same type.
> The argument object is not altered--the value is a copy.
> Optional argument ASCII-ONLY non-nil means to return only ASCII character.
--
Kazuhiro Ito
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 13:46:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 71822 <at> debbugs.gnu.org (full text, mbox):
>>>>> "EZ" == Eli Zaretskii <eliz <at> gnu.org> writes:
EZ> You are saying that the keyboard and/or the input method you are using
EZ> to type Chinese support characters such as 她證號為, but don't support
EZ> typing wide digits like 098, is that the problem?
No. It's the difference between needing to type
0987654321BA
i.e.,
C-\ ;; toggle-input-method
v 0 v ;; self-insert-command
9 v ;; self-insert-command
8 v ;; self-insert-command
7 v ;; self-insert-command
6 v ;; self-insert-command
5 v ;; self-insert-command
4 v ;; self-insert-command
3 v ;; self-insert-command
2 v ;; self-insert-command
1 v ;; self-insert-command
B ;; self-insert-command
v A ;; self-insert-command
vs. just M-<one character>.
It's just like to turn this sentence into upper case,
one needs to type each letter again, holding the shift button,
because upcase-region hasn't been invented yet.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 30 Jun 2024 13:57:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 71822 <at> debbugs.gnu.org (full text, mbox):
Indeed,
japanese-hankaku-region
japanese-zenkaku-region
work. So maybe they should
be available as
halfwidth-woed
halfwidth-region
fullwidth-word
fullwidth-region etc.
in emacs -Q.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Mon, 01 Jul 2024 02:16:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 71822 <at> debbugs.gnu.org (full text, mbox):
Dan Jacobson <jidanni <at> jidanni.org> writes:
> Indeed,
> japanese-hankaku-region
> japanese-zenkaku-region
> work. So maybe they should
> be available as
> halfwidth-woed
> halfwidth-region
> fullwidth-word
> fullwidth-region etc.
> in emacs -Q.
Do they work for the full set of Chinese characters?
I'm asking because Kazuhiro Ito <kzhr <at> d1.dion.ne.jp> writes:
> [...] these functions don't support all characters because they are
> for traditional Japanese character set.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Mon, 01 Jul 2024 09:59:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 71822 <at> debbugs.gnu.org (full text, mbox):
All I am ever concerned with is just ASCII.
All I know is if it hits a Chinese character, it should just leave it
untouched, no matter if converting to or converting from.
On 2024-07-01 10:13, Stefan Kangas wrote:
> Dan Jacobson <jidanni <at> jidanni.org> writes:
>
>> Indeed,
>> japanese-hankaku-region
>> japanese-zenkaku-region
>> work. So maybe they should
>> be available as
>> halfwidth-woed
>> halfwidth-region
>> fullwidth-word
>> fullwidth-region etc.
>> in emacs -Q.
>
> Do they work for the full set of Chinese characters?
>
> I'm asking because Kazuhiro Ito <kzhr <at> d1.dion.ne.jp> writes:
>
>> [...] these functions don't support all characters because they are
>> for traditional Japanese character set.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sat, 01 Mar 2025 01:53:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 71822 <at> debbugs.gnu.org (full text, mbox):
Dan Jacobson <jidanni <at> jidanni.org> writes:
> Indeed,
> japanese-hankaku-region
> japanese-zenkaku-region
> work. So maybe they should
> be available as
> halfwidth-woed
> halfwidth-region
> fullwidth-word
> fullwidth-region etc.
> in emacs -Q.
So we have these commands, and the idea is to give them these new names.
I don't see a huge demand for it, so I'm inclined towards closing this
as a wontfix.
Added tag(s) wontfix.
Request was from
Stefan Kangas <stefankangas <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Sat, 01 Mar 2025 01:53:03 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sat, 01 Mar 2025 09:06:02 GMT)
Full text and
rfc822 format available.
Message #43 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> From: Stefan Kangas <stefankangas <at> gmail.com>
> Date: Fri, 28 Feb 2025 17:51:56 -0800
> Cc: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>, Eli Zaretskii <eliz <at> gnu.org>, 71822 <at> debbugs.gnu.org
>
> Dan Jacobson <jidanni <at> jidanni.org> writes:
>
> > Indeed,
> > japanese-hankaku-region
> > japanese-zenkaku-region
> > work. So maybe they should
> > be available as
> > halfwidth-woed
> > halfwidth-region
> > fullwidth-word
> > fullwidth-region etc.
> > in emacs -Q.
>
> So we have these commands, and the idea is to give them these new names.
> I don't see a huge demand for it, so I'm inclined towards closing this
> as a wontfix.
Please don't, I still hope I will find time to do some of that.
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Sun, 02 Mar 2025 13:28:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Dan Jacobson <jidanni <at> jidanni.org>
:
bug acknowledged by developer.
(Sun, 02 Mar 2025 13:28:02 GMT)
Full text and
rfc822 format available.
Message #48 received at 71822-done <at> debbugs.gnu.org (full text, mbox):
> From: Dan Jacobson <jidanni <at> jidanni.org>
> Cc: 71822 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
> Date: Sun, 30 Jun 2024 21:55:56 +0800
>
> Indeed,
> japanese-hankaku-region
> japanese-zenkaku-region
> work. So maybe they should
> be available as
> halfwidth-woed
> halfwidth-region
> fullwidth-word
> fullwidth-region etc.
> in emacs -Q.
I eventually decided to write new commands, because the above
japanese-* commands are too specific to the Japanese users: for
example, they convert kana characters as well.
So there are now new commands fullwidth-region, fullwidth-word,
halfwidth-region, and halfwidth-word, which will be in Emacs 31 when
it is released.
With that, I'm closing this bug.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 02 Mar 2025 13:30:02 GMT)
Full text and
rfc822 format available.
Message #51 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> Cc: 71822 <at> debbugs.gnu.org, kzhr <at> d1.dion.ne.jp, jidanni <at> jidanni.org
> Date: Sat, 01 Mar 2025 11:04:56 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > From: Stefan Kangas <stefankangas <at> gmail.com>
> > Date: Fri, 28 Feb 2025 17:51:56 -0800
> > Cc: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>, Eli Zaretskii <eliz <at> gnu.org>, 71822 <at> debbugs.gnu.org
> >
> > Dan Jacobson <jidanni <at> jidanni.org> writes:
> >
> > > Indeed,
> > > japanese-hankaku-region
> > > japanese-zenkaku-region
> > > work. So maybe they should
> > > be available as
> > > halfwidth-woed
> > > halfwidth-region
> > > fullwidth-word
> > > fullwidth-region etc.
> > > in emacs -Q.
> >
> > So we have these commands, and the idea is to give them these new names.
> > I don't see a huge demand for it, so I'm inclined towards closing this
> > as a wontfix.
>
> Please don't, I still hope I will find time to do some of that.
Now done.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Mon, 03 Mar 2025 09:54:02 GMT)
Full text and
rfc822 format available.
Message #54 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> I eventually decided to write new commands, because the above
> japanese-* commands are too specific to the Japanese users: for
> example, they convert kana characters as well.
>
> So there are now new commands fullwidth-region, fullwidth-word,
> halfwidth-region, and halfwidth-word, which will be in Emacs 31 when
> it is released.
New functions don't seem to handle SPACE (U+0020, ' ') and IDEOGRAPHIC
SPACE (U+3000, ' '). U+3000 is used as fullwidth space in CJK
languages.
(with-temp-buffer
(insert "Hello, World!")
(halfwidth-region (point-min) (point-max))
(buffer-string))
-> "Hello, World!"
--
Kazuhiro Ito
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Mon, 03 Mar 2025 13:53:02 GMT)
Full text and
rfc822 format available.
Message #57 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> Date: Mon, 03 Mar 2025 18:53:09 +0900
> From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
> Cc: Dan Jacobson <jidanni <at> jidanni.org>,
> 71822 <at> debbugs.gnu.org
>
> > I eventually decided to write new commands, because the above
> > japanese-* commands are too specific to the Japanese users: for
> > example, they convert kana characters as well.
> >
> > So there are now new commands fullwidth-region, fullwidth-word,
> > halfwidth-region, and halfwidth-word, which will be in Emacs 31 when
> > it is released.
>
> New functions don't seem to handle SPACE (U+0020, ' ') and IDEOGRAPHIC
> SPACE (U+3000, ' '). U+3000 is used as fullwidth space in CJK
> languages.
That's because I didn't know people will want to convert those as part
of this feature, and so didn't include them in the translation table.
Is it true that most/all people who type fullwidth characters will
also type U+3000 instead of an ASCII SPC character? If so, I will add
them to the translation table; it's easy. But if some users would
like to leave SPC alone, maybe we should have some optional behavior
or something.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sun, 09 Mar 2025 10:02:02 GMT)
Full text and
rfc822 format available.
Message #60 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> Cc: 71822 <at> debbugs.gnu.org, jidanni <at> jidanni.org
> Date: Mon, 03 Mar 2025 15:51:39 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > Date: Mon, 03 Mar 2025 18:53:09 +0900
> > From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
> > Cc: Dan Jacobson <jidanni <at> jidanni.org>,
> > 71822 <at> debbugs.gnu.org
> >
> > > I eventually decided to write new commands, because the above
> > > japanese-* commands are too specific to the Japanese users: for
> > > example, they convert kana characters as well.
> > >
> > > So there are now new commands fullwidth-region, fullwidth-word,
> > > halfwidth-region, and halfwidth-word, which will be in Emacs 31 when
> > > it is released.
> >
> > New functions don't seem to handle SPACE (U+0020, ' ') and IDEOGRAPHIC
> > SPACE (U+3000, ' '). U+3000 is used as fullwidth space in CJK
> > languages.
>
> That's because I didn't know people will want to convert those as part
> of this feature, and so didn't include them in the translation table.
>
> Is it true that most/all people who type fullwidth characters will
> also type U+3000 instead of an ASCII SPC character? If so, I will add
> them to the translation table; it's easy. But if some users would
> like to leave SPC alone, maybe we should have some optional behavior
> or something.
Ping! Kazuhiro, could you please answer my questions above?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Tue, 11 Mar 2025 22:40:01 GMT)
Full text and
rfc822 format available.
Message #63 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> > > I eventually decided to write new commands, because the above
> > > japanese-* commands are too specific to the Japanese users: for
> > > example, they convert kana characters as well.
> > >
> > > So there are now new commands fullwidth-region, fullwidth-word,
> > > halfwidth-region, and halfwidth-word, which will be in Emacs 31 when
> > > it is released.
> >
> > New functions don't seem to handle SPACE (U+0020, ' ') and IDEOGRAPHIC
> > SPACE (U+3000, ' '). U+3000 is used as fullwidth space in CJK
> > languages.
>
> That's because I didn't know people will want to convert those as part
> of this feature, and so didn't include them in the translation table.
>
> Is it true that most/all people who type fullwidth characters will
> also type U+3000 instead of an ASCII SPC character? If so, I will add
> them to the translation table; it's easy. But if some users would
> like to leave SPC alone, maybe we should have some optional behavior
> or something.
Though I rarely type fullwidth ASCII characters, most Japanese input
methods enable user to input U+3000 via simply typing SPC. So, U+3000
is often used as alternate of ASCII SPACE.
U+3000 may be used as an indent at the beginning of Japanese
paragraphs. In this case, U+3000 should be kept, but I doubt we use
halfwidth-* functions for such style Japanese text.
IMO, I expected halfwidth-* functions to convert U+3000 to SPACE as
japanese-hankaku did. But other Japanese said both behaviors whould
be in demand. I don't know about other languages.
--
Kazuhiro Ito
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#71822
; Package
emacs
.
(Sat, 15 Mar 2025 12:01:02 GMT)
Full text and
rfc822 format available.
Message #66 received at 71822 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 12 Mar 2025 07:38:59 +0900
> From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
> Cc: jidanni <at> jidanni.org, 71822 <at> debbugs.gnu.org
>
> > > > I eventually decided to write new commands, because the above
> > > > japanese-* commands are too specific to the Japanese users: for
> > > > example, they convert kana characters as well.
> > > >
> > > > So there are now new commands fullwidth-region, fullwidth-word,
> > > > halfwidth-region, and halfwidth-word, which will be in Emacs 31 when
> > > > it is released.
> > >
> > > New functions don't seem to handle SPACE (U+0020, ' ') and IDEOGRAPHIC
> > > SPACE (U+3000, ' '). U+3000 is used as fullwidth space in CJK
> > > languages.
> >
> > That's because I didn't know people will want to convert those as part
> > of this feature, and so didn't include them in the translation table.
> >
> > Is it true that most/all people who type fullwidth characters will
> > also type U+3000 instead of an ASCII SPC character? If so, I will add
> > them to the translation table; it's easy. But if some users would
> > like to leave SPC alone, maybe we should have some optional behavior
> > or something.
>
> Though I rarely type fullwidth ASCII characters, most Japanese input
> methods enable user to input U+3000 via simply typing SPC. So, U+3000
> is often used as alternate of ASCII SPACE.
>
> U+3000 may be used as an indent at the beginning of Japanese
> paragraphs. In this case, U+3000 should be kept, but I doubt we use
> halfwidth-* functions for such style Japanese text.
>
> IMO, I expected halfwidth-* functions to convert U+3000 to SPACE as
> japanese-hankaku did. But other Japanese said both behaviors whould
> be in demand. I don't know about other languages.
OK, for now I added the conversion of SPC to IDEOGRAPHIC SPACE. Let's
see if people complain.
Thanks.'
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 13 Apr 2025 11:24:29 GMT)
Full text and
rfc822 format available.
This bug report was last modified 70 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.