From ba70f74762450abdae6e12e3c93c5344b483077b Mon Sep 17 00:00:00 2001 From: vdhoeven Date: Thu, 22 Apr 2010 07:47:20 +0000 Subject: [PATCH] Special indicator for removed text git-svn-id: svn://svn.savannah.gnu.org/texmacs/trunk@2969 64cb5145-927a-446d-8aed-2fb7b4773692 --- src/TeXmacs/packages/standard/std-fold.ts | 2 +- src/TeXmacs/progs/version/version-compare.scm | 6 +++-- src/TeXmacs/progs/version/version-edit.scm | 39 +++++++++++---------------- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/TeXmacs/packages/standard/std-fold.ts b/src/TeXmacs/packages/standard/std-fold.ts index 102ae1a6..6161d3b6 100644 --- a/src/TeXmacs/packages/standard/std-fold.ts +++ b/src/TeXmacs/packages/standard/std-fold.ts @@ -379,7 +379,7 @@ >|document>|version-both-big|version-both-small>||>>> - \; + >>>> <\initial> diff --git a/src/TeXmacs/progs/version/version-compare.scm b/src/TeXmacs/progs/version/version-compare.scm index 1e1f9cd1..f99fc0fa 100644 --- a/src/TeXmacs/progs/version/version-compare.scm +++ b/src/TeXmacs/progs/version/version-compare.scm @@ -146,8 +146,8 @@ (define (compare-versions-list tag l1 l2) ;;(display* "compare-versions-list " tag ", " l1 ", " l2 "\n\n") (cond ((and (null? l1) (null? l2)) '()) - ((null? l1) (list-diff "" (normalize `(,tag ,@l2)))) - ((null? l2) (list-diff (normalize `(,tag ,@l1)) "")) + ((null? l1) (list-diff '(version-suppressed) (normalize `(,tag ,@l2)))) + ((null? l2) (list-diff (normalize `(,tag ,@l1)) '(version-suppressed))) ((== (car l1) (car l2)) (cons (car l1) (compare-versions-list tag (cdr l1) (cdr l2)))) (else @@ -226,6 +226,8 @@ (define (version-get t which) (cond ((string? t) t) + ((== t '(version-suppressed)) "") + ((== t '(document (version-suppressed))) "") ((tm-in? t '(version-old version-new version-both)) (normalize (version-get (tm-ref t which) which))) (else diff --git a/src/TeXmacs/progs/version/version-edit.scm b/src/TeXmacs/progs/version/version-edit.scm index a22c0134..2c4657fb 100644 --- a/src/TeXmacs/progs/version/version-edit.scm +++ b/src/TeXmacs/progs/version/version-edit.scm @@ -62,29 +62,15 @@ ;; Moving across the differences between both versions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(define (version-empty?) - (and (inside-version?) - (with-innermost t version-context? - (with u (tree-down t) - (== u (tree "")))))) - (tm-define (version-first-difference) (go-start) (version-next-difference)) (tm-define (version-previous-difference) - (go-to-previous-tag (group-resolve 'version-tag)) - (when (version-empty?) - (go-to-previous-tag (group-resolve 'version-tag)) - (when (version-empty?) - (go-to-previous-tag (group-resolve 'version-tag))))) + (go-to-previous-tag (group-resolve 'version-tag))) (tm-define (version-next-difference) - (go-to-next-tag (group-resolve 'version-tag)) - (when (version-empty?) - (go-to-next-tag (group-resolve 'version-tag)) - (when (version-empty?) - (go-to-next-tag (group-resolve 'version-tag))))) + (go-to-next-tag (group-resolve 'version-tag))) (tm-define (version-last-difference) (go-end) @@ -121,18 +107,23 @@ (when (!= c (tree-children t)) (tree-assign t `(,(tree-label t) ,@c)))))))) +(define (retain-version t new) + (cond ((== new (tm->tree '(version-suppressed))) + (tree-set t "")) + ((== new (tm->tree '(document (version-suppressed)))) + (tree-set t '(document))) + (else (tree-set t new)))) + (define (version-retain-version where which) (with p (if (version-context? where) (tree-up where) where) (tree-replace where version-context? (lambda (t) - (let* ((p (tree-up t)) - (i (tree-index t))) - (cond ((number? which) - (tree-set t (tree-ref t which))) - ((tree-is? t 'version-old) - (tree-set t (tree-ref t 0))) - (else - (tree-set t (tree-ref t 1))))))) + (cond ((number? which) + (retain-version t (tree-ref t which))) + ((tree-is? t 'version-old) + (retain-version t (tree-ref t 0))) + (else + (retain-version t (tree-ref t 1)))))) (tree-normalize p))) (tm-define (version-retain which) -- 2.11.4.GIT