emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/progmodes/cc-cmds.el


From: Martin Stjernholm
Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-cmds.el
Date: Tue, 23 Apr 2002 21:27:17 -0400

Index: emacs/lisp/progmodes/cc-cmds.el
diff -c emacs/lisp/progmodes/cc-cmds.el:1.28 
emacs/lisp/progmodes/cc-cmds.el:1.29
*** emacs/lisp/progmodes/cc-cmds.el:1.28        Tue Apr 23 20:48:52 2002
--- emacs/lisp/progmodes/cc-cmds.el     Tue Apr 23 21:27:15 2002
***************
*** 2761,2770 ****
                  '("" . 0))))))
      ))
  
! (defun c-mask-comment (fill-mode apply-outside-literal fun &rest args)
    ;; Calls FUN with ARGS ar arguments.  If point is inside a comment,
    ;; the comment starter and ender are masked and the buffer is
    ;; narrowed to make it look like a normal paragraph during the call.
    (let (fill
        ;; beg and end limits the region to narrow.  end is a marker.
        beg end
--- 2761,2774 ----
                  '("" . 0))))))
      ))
  
! (defun c-mask-comment (fill-paragraph apply-outside-literal fun &rest args)
    ;; Calls FUN with ARGS ar arguments.  If point is inside a comment,
    ;; the comment starter and ender are masked and the buffer is
    ;; narrowed to make it look like a normal paragraph during the call.
+   ;;
+   ;; FILL-PARAGRAPH is non-nil if called for paragraph filling.  The
+   ;; position of point is then less significant when doing masking and
+   ;; narrowing.
    (let (fill
        ;; beg and end limits the region to narrow.  end is a marker.
        beg end
***************
*** 2790,2796 ****
        ;; Widen to catch comment limits correctly.
        (widen)
        (unless c-lit-limits
!       (setq c-lit-limits (c-literal-limits nil fill-mode)))
        (setq c-lit-limits (c-collect-line-comments c-lit-limits))
        (unless c-lit-type
        (setq c-lit-type (c-literal-type c-lit-limits))))
--- 2794,2800 ----
        ;; Widen to catch comment limits correctly.
        (widen)
        (unless c-lit-limits
!       (setq c-lit-limits (c-literal-limits nil fill-paragraph)))
        (setq c-lit-limits (c-collect-line-comments c-lit-limits))
        (unless c-lit-type
        (setq c-lit-type (c-literal-type c-lit-limits))))
***************
*** 2840,2847 ****
                                                 "\\)\\*/"))
                             (eq (cdr c-lit-limits) (match-end 0))
                             ;; Leave the comment ender on its own line.
!                            (set-marker end (max (point) here))))
!               (when fill-mode
                  ;; The comment ender should hang.  Replace all cruft
                  ;; between it and the last word with one or two 'x'
                  ;; and include it in the region.  We'll change them
--- 2844,2851 ----
                                                 "\\)\\*/"))
                             (eq (cdr c-lit-limits) (match-end 0))
                             ;; Leave the comment ender on its own line.
!                            (set-marker end (point))))
!               (when fill-paragraph
                  ;; The comment ender should hang.  Replace all cruft
                  ;; between it and the last word with one or two 'x'
                  ;; and include it in the region.  We'll change them
***************
*** 2900,2912 ****
              ;; The region includes the comment starter.
              (save-excursion
                (goto-char (car c-lit-limits))
!               (when (and (looking-at comment-start-skip)
!                          (> here (match-end 0)))
!                 (if (eq (match-end 0) (c-point 'eol))
!                     ;; Begin with the next line.
!                     (setq beg (c-point 'bonl))
!                   ;; Fake the fill prefix in the first line.
!                   (setq tmp-pre t))))))
           ((eq c-lit-type 'string)     ; String.
            (save-excursion
              (when (>= end (cdr c-lit-limits))
--- 2904,2914 ----
              ;; The region includes the comment starter.
              (save-excursion
                (goto-char (car c-lit-limits))
!               (if (looking-at (concat "\\(" comment-start-skip "\\)$"))
!                   ;; Begin with the next line.
!                   (setq beg (c-point 'bonl))
!                 ;; Fake the fill prefix in the first line.
!                 (setq tmp-pre t)))))
           ((eq c-lit-type 'string)     ; String.
            (save-excursion
              (when (>= end (cdr c-lit-limits))
***************
*** 2984,3007 ****
                                              ""))))
                           (car (or fill (c-guess-fill-prefix
                                          c-lit-limits c-lit-type))))))
!                   ;; Don't remember why I added this, but it doesn't
!                   ;; work correctly since `here' can point anywhere
!                   ;; after the deletes and inserts above.
!                   ;(point-rel (cond ((< here beg) (- here beg))
!                   ;                  ((> here end) (- here end))))
!                   )
                ;; Preparations finally done! Now we can call the
                ;; actual function.
                (prog1
                    (save-restriction
                      (narrow-to-region beg end)
                      (apply fun args))
!                 ;(if point-rel
!                 ;    ;; Restore point if it was outside the region.
!                 ;    (if (< point-rel 0)
!                 ;       (goto-char (+ beg point-rel))
!                 ;     (goto-char (+ end point-rel))))
!                 ))
            (when apply-outside-literal
              (apply fun args))))
        (when (consp tmp-pre)
--- 2986,3009 ----
                                              ""))))
                           (car (or fill (c-guess-fill-prefix
                                          c-lit-limits c-lit-type))))))
!                   ;; Save the relative position of point if it's
!                   ;; outside the region we're going to narrow.  Want
!                   ;; to restore it in that case, but otherwise it
!                   ;; should be moved according to the called
!                   ;; function.
!                   (point-rel (cond ((< (point) beg) (- (point) beg))
!                                    ((> (point) end) (- (point) end)))))
                ;; Preparations finally done! Now we can call the
                ;; actual function.
                (prog1
                    (save-restriction
                      (narrow-to-region beg end)
                      (apply fun args))
!                 (if point-rel
!                     ;; Restore point if it was outside the region.
!                     (if (< point-rel 0)
!                         (goto-char (+ beg point-rel))
!                       (goto-char (+ end point-rel))))))
            (when apply-outside-literal
              (apply fun args))))
        (when (consp tmp-pre)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]