User: scop
Date: 05/11/14 23:52:33
Modified: packages/unsupported/scop/vc ChangeLog vc-xemacs.el
Log:
Borrow compare-strings for pcvs-util from ECB.
Revision Changes Path
1.35 +2 -0 XEmacs/packages/unsupported/scop/vc/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/unsupported/scop/vc/ChangeLog,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -p -r1.34 -r1.35
--- ChangeLog 2005/11/14 22:32:26 1.34
+++ ChangeLog 2005/11/14 22:52:32 1.35
@@ -2,6 +2,8 @@
* vc-svn.el: Sync with upstream.
+ * vc-xemacs.el (compare-strings): New, borrowed from ECB.
+
2005-11-10 Oscar Figueiredo <oscar(a)xemacs.org>
* vc-xemacs.el (subst-char-in-string): Do not use `replace-in-string'
1.4 +42 -0 XEmacs/packages/unsupported/scop/vc/vc-xemacs.el
Index: vc-xemacs.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/unsupported/scop/vc/vc-xemacs.el,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- vc-xemacs.el 2005/11/11 19:25:08 1.3
+++ vc-xemacs.el 2005/11/14 22:52:33 1.4
@@ -84,4 +84,46 @@ Unless optional argument INPLACE is non-
(unless (boundp 'find-file-hook)
(defvaralias 'find-file-hook 'find-file-hooks))
+;; From ecb/ecb-util.el
+(unless (fboundp 'compare-strings)
+ (defun compare-strings (str1 start1 end1 str2 start2 end2 &optional ignore-case)
+ "Compare the contents of two strings.
+In string STR1, skip the first START1 characters and stop at END1.
+In string STR2, skip the first START2 characters and stop at END2.
+END1 and END2 default to the full lengths of the respective strings.
+
+Case is significant in this comparison if IGNORE-CASE is nil.
+
+The value is t if the strings (or specified portions) match.
+If string STR1 is less, the value is a negative number N;
+ - 1 - N is the number of characters that match at the beginning.
+If string STR1 is greater, the value is a positive number N;
+ N - 1 is the number of characters that match at the beginning."
+ (or start1 (setq start1 0))
+ (or start2 (setq start2 0))
+ (setq end1 (if end1
+ (min end1 (length str1))
+ (length str1)))
+ (setq end2 (if end2
+ (min end2 (length str2))
+ (length str2)))
+ (let ((i1 start1)
+ (i2 start2)
+ result c1 c2)
+ (while (and (not result) (< i1 end1) (< i2 end2))
+ (setq c1 (aref str1 i1)
+ c2 (aref str2 i2)
+ i1 (1+ i1)
+ i2 (1+ i2))
+ (if ignore-case
+ (setq c1 (upcase c1)
+ c2 (upcase c2)))
+ (setq result (cond ((< c1 c2) (- i1))
+ ((> c1 c2) i1))))
+ (or result
+ (cond ((< i1 end1) (1+ (- i1 start1)))
+ ((< i2 end2) (1- (- start1 i1)))
+ (t)))
+ )))
+
(provide 'vc-xemacs)
Show replies by date