tm 7.48.1.
authormorioka <morioka>
Mon, 9 Mar 1998 16:16:42 +0000 (16:16 +0000)
committermorioka <morioka>
Mon, 9 Mar 1998 16:16:42 +0000 (16:16 +0000)
ChangeLog
emu-mule.el
emu-nemacs.el

index d850603..52e0e5b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+Thu Mar 14 16:27:21 1996  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * tl-str.el: Function `truncate-string' was moved to emu-mule.el.
+       Alias `top-short-string' and `rightful-boundary-short-string' were
+       deleted.
+       
+       * emu-mule.el (truncate-string): New function;
+       moved from tl-str.el.
+       
+       * emu-nemacs.el (truncate-string): New function;
+       imported from emu-mule.el.
+       
+       * emu-orig.el (truncate-string): New function.
+
+Thu Mar 14 04:23:25 1996  Shuhei KOBAYASHI  <shuhei@cmpt01.phys.tohoku.ac.jp>
+
+       * tl-str (truncate-string): New Implementation imported from Mule
+       2.3.
+
+\f
 Wed Mar 13 17:16:09 1996  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
        * tl: Version 7.18 was released.
index 9ddc0eb..3892370 100644 (file)
@@ -6,11 +6,26 @@
 ;;;
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Version:
-;;;    $Id: emu-mule.el,v 6.3 1995/09/21 00:08:02 morioka Exp $
+;;;    $Id: emu-mule.el,v 7.0 1996/03/14 16:27:21 morioka Exp $
 ;;; Keywords: emulation, compatibility, Mule
 ;;;
-;;; This file is part of tl and tm (Tools for MIME).
+;;; This file is part of tl (Tiny Library).
 ;;;
+;;; This program 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, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 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, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;;
+;;; Code:
 
 (defun some-element (pred seq)
   "Return the first element of sequence SEQ
@@ -26,6 +41,14 @@ whose return value applied function PRED is not nil.
        ))
    ))
 
+(if (not (boundp 'emacs-major-version))
+    (defconst emacs-major-version (string-to-int emacs-version))
+  )
+
+
+;;; @ leading-character
+;;;
+
 (defun get-lc (chr)
   "Return leading character of CHAR or LEADING-CHARACTER."
   (if (< chr 128)
@@ -33,9 +56,8 @@ whose return value applied function PRED is not nil.
     chr))
 
 
-(if (not (boundp 'emacs-major-version))
-    (defconst emacs-major-version (string-to-int emacs-version))
-  )
+;;; @ version specific features
+;;;
 
 (cond ((>= emacs-major-version 19)
        (require 'emu-19)
@@ -58,4 +80,47 @@ whose return value applied function PRED is not nil.
        ))
 
 
+;;; @@ truncate-string
+;;;
+
+(or (fboundp 'truncate-string)
+;;; Imported from Mule-2.3
+(defun truncate-string (str width &optional start-column)
+  "Truncate STR to fit in WIDTH columns.
+Optional non-nil arg START-COLUMN specifies the starting column.
+\[emu-mule.el; Mule 2.3 emulating function]"
+  (or start-column
+      (setq start-column 0))
+  (let ((max-width (string-width str))
+       (len (length str))
+       (from 0)
+       (column 0)
+       to-prev to ch)
+    (if (>= width max-width)
+       (setq width max-width))
+    (if (>= start-column width)
+       ""
+      (while (< column start-column)
+       (setq ch (aref str from)
+             column (+ column (char-width ch))
+             from (+ from (char-bytes ch))))
+      (if (< width max-width)
+         (progn
+           (setq to from)
+           (while (<= column width)
+             (setq ch (aref str to)
+                   column (+ column (char-width ch))
+                   to-prev to
+                   to (+ to (char-bytes ch))))
+           (setq to to-prev)))
+      (substring str from to))))
+;;;
+  )
+
+
+;;; @ end
+;;;
+
 (provide 'emu-mule)
+
+;;; emu-mule.el ends here
index e8d2847..d3911ff 100644 (file)
@@ -7,7 +7,7 @@
 ;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; modified by KOBAYASHI Shuhei <shuhei@cmpt01.phys.tohoku.ac.jp>
 ;;; Version:
-;;;    $Id: emu-nemacs.el,v 7.7 1996/02/27 17:50:41 morioka Exp $
+;;;    $Id: emu-nemacs.el,v 7.8 1996/03/14 16:25:39 morioka Exp $
 ;;; Keywords: emulation, compatibility, NEmacs, Mule
 ;;;
 ;;; This file is part of tl (Tiny Library).
@@ -158,6 +158,37 @@ else returns nil. [emu-nemacs.el; Mule emulating function]"
        )
       str)))
 
+;;; Imported from Mule-2.3
+(defun truncate-string (str width &optional start-column)
+  "Truncate STR to fit in WIDTH columns.
+Optional non-nil arg START-COLUMN specifies the starting column.
+\[emu-mule.el; Mule 2.3 emulating function]"
+  (or start-column
+      (setq start-column 0))
+  (let ((max-width (string-width str))
+       (len (length str))
+       (from 0)
+       (column 0)
+       to-prev to ch)
+    (if (>= width max-width)
+       (setq width max-width))
+    (if (>= start-column width)
+       ""
+      (while (< column start-column)
+       (setq ch (aref str from)
+             column (+ column (char-width ch))
+             from (+ from (char-bytes ch))))
+      (if (< width max-width)
+         (progn
+           (setq to from)
+           (while (<= column width)
+             (setq ch (aref str to)
+                   column (+ column (char-width ch))
+                   to-prev to
+                   to (+ to (char-bytes ch))))
+           (setq to to-prev)))
+      (substring str from to))))
+
 
 ;;; @ text property emulation
 ;;;