--- gforth/kernel/xchars.fs 2007/10/17 15:50:01 1.10 +++ gforth/kernel/xchars.fs 2007/12/31 18:40:26 1.13 @@ -1,13 +1,13 @@ \ extended characters (either 8bit or UTF-8, possibly other encodings) \ and their fixed-size variant -\ Copyright (C) 2005,2006 Free Software Foundation, Inc. +\ Copyright (C) 2005,2006,2007 Free Software Foundation, Inc. \ This file is part of Gforth. \ Gforth is free software; you can redistribute it and/or \ modify it under the terms of the GNU General Public License -\ as published by the Free Software Foundation; either version 2 +\ as published by the Free Software Foundation, either version 3 \ of the License, or (at your option) any later version. \ This program is distributed in the hope that it will be useful, @@ -16,8 +16,7 @@ \ GNU General Public License for more details. \ You should have received a copy of the GNU General Public License -\ along with this program; if not, write to the Free Software -\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. +\ along with this program. If not, see http://www.gnu.org/licenses/. \ We can do some of these (and possibly faster) by just using the \ utf-8 words with an appropriate setting of max-single-byte, but I @@ -83,11 +82,11 @@ Defer -trailing-garbage ( xc-addr u1 -- over >r +x/string r> xc@ ; -Create xholdbuf 8 allot : xhold ( xc -- ) \G Put xc into the pictured numeric output - xholdbuf 8 xc!+? 2drop - BEGIN 1- dup xholdbuf u>= WHILE dup c@ hold REPEAT drop ; + dup xc-size negate chars holdptr +! + holdptr @ dup holdbuf u< -&17 and throw + 8 xc!+? 2drop drop ; \ fixed-size versions of these words