# HG changeset patch # User Glenn Morris # Date 1139385251 0 # Node ID 8daf7d9a0771e98387a6deaaa5c3d6f754ea1bab # Parent d9dde5b81e71e07428b08818b2b19f313daff639 Add 2006 to copyright years. diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/appt.el --- a/lisp/calendar/appt.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/appt.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; appt.el --- appointment notification functions -;; Copyright (C) 1989, 1990, 1994, 1998, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1989, 1990, 1994, 1998, 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: Neil Mager ;; Maintainer: Glenn Morris diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-bahai.el --- a/lisp/calendar/cal-bahai.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-bahai.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,7 @@ ;;; cal-bahai.el --- calendar functions for the Baha'i calendar. -;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 +;; Free Software Foundation, Inc. ;; Author: John Wiegley ;; Keywords: calendar diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-china.el --- a/lisp/calendar/cal-china.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-china.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-china.el --- calendar functions for the Chinese calendar -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-coptic.el --- a/lisp/calendar/cal-coptic.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-coptic.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-coptic.el --- calendar functions for the Coptic/Ethiopic calendars -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-dst.el --- a/lisp/calendar/cal-dst.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-dst.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; cal-dst.el --- calendar functions for daylight savings rules -;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: Paul Eggert ;; Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-french.el --- a/lisp/calendar/cal-french.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-french.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; cal-french.el --- calendar functions for the French Revolutionary calendar ;; Copyright (C) 1988, 1989, 1992, 1994, 1995, 1997, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-hebrew.el --- a/lisp/calendar/cal-hebrew.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-hebrew.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-hebrew.el --- calendar functions for the Hebrew calendar -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Nachum Dershowitz diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-islam.el --- a/lisp/calendar/cal-islam.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-islam.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-islam.el --- calendar functions for the Islamic calendar -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-iso.el --- a/lisp/calendar/cal-iso.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-iso.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-iso.el --- calendar functions for the ISO calendar -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-julian.el --- a/lisp/calendar/cal-julian.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-julian.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-julian.el --- calendar functions for the Julian calendar -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-mayan.el --- a/lisp/calendar/cal-mayan.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-mayan.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; cal-mayan.el --- calendar functions for the Mayan calendars -;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: Stewart M. Clamen ;; Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-move.el --- a/lisp/calendar/cal-move.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-move.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-move.el --- calendar functions for movement in the calendar -;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-persia.el --- a/lisp/calendar/cal-persia.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-persia.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-persia.el --- calendar functions for the Persian calendar -;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-tex.el --- a/lisp/calendar/cal-tex.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-tex.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-tex.el --- calendar functions for printing calendars with LaTeX -;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Steve Fisk diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/cal-x.el --- a/lisp/calendar/cal-x.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/cal-x.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; cal-x.el --- calendar windows in dedicated frames in X -;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Michael Kifer diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/diary-lib.el --- a/lisp/calendar/diary-lib.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/diary-lib.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; diary-lib.el --- diary functions ;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/holidays.el --- a/lisp/calendar/holidays.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/holidays.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; holidays.el --- holiday functions for the calendar package ;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1997, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/icalendar.el --- a/lisp/calendar/icalendar.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/icalendar.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; icalendar.el --- iCalendar implementation -*-coding: utf-8 -*- -;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Ulf Jasper ;; Created: August 2002 diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/lunar.el --- a/lisp/calendar/lunar.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/lunar.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; lunar.el --- calendar functions for phases of the moon -;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Maintainer: Glenn Morris diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/parse-time.el --- a/lisp/calendar/parse-time.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/parse-time.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; parse-time.el --- parsing time strings -;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Erik Naggum diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/solar.el --- a/lisp/calendar/solar.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/solar.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; solar.el --- calendar functions for solar events -;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: Edward M. Reingold ;; Denis B. Roegel diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/time-date.el --- a/lisp/calendar/time-date.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/time-date.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; time-date.el --- Date and time handling functions -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/timeclock.el --- a/lisp/calendar/timeclock.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/timeclock.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; timeclock.el --- mode for keeping track of how much you work -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: John Wiegley diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/calendar/todo-mode.el --- a/lisp/calendar/todo-mode.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/calendar/todo-mode.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,6 +1,6 @@ ;;; todo-mode.el --- major mode for editing TODO list files -;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006 ;; Free Software Foundation, Inc. ;; Author: Oliver Seidel diff -r d9dde5b81e71 -r 8daf7d9a0771 lisp/progmodes/f90.el --- a/lisp/progmodes/f90.el Wed Feb 08 04:35:58 2006 +0000 +++ b/lisp/progmodes/f90.el Wed Feb 08 07:54:11 2006 +0000 @@ -1,7 +1,7 @@ ;;; f90.el --- Fortran-90 mode (free format) -;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, +;; 2006 Free Software Foundation, Inc. ;; Author: Torbj\"orn Einarsson ;; Maintainer: Glenn Morris @@ -991,6 +991,16 @@ "?\\([ \t]+\\(\\sw+\\)\\)?\\>")) (list (match-string 1) (match-string 3)))) +(defsubst f90-looking-at-else-like () + "Return KIND if an ELSE or CASE statement starts after point. +Returns \"selectcase\", \"elseif\", \"elsewhere\", \"else\", or nil." + (when (looking-at f90-else-like-re) + (cond ((looking-at "case[ \t]*\\(default\\|\(\\)") + "selectcase") + ((or (looking-at "else[ \t]*\\(if\\)\\>") + (looking-at "else\\(where\\)?\\>")) + (concat "else" (match-string 1)))))) + (defsubst f90-comment-indent () "Return the indentation to be used for a comment starting at point. Used for `comment-indent-function' by F90 mode. @@ -1430,7 +1440,7 @@ (skip-chars-forward " \t")) (if (looking-at "!") (setq indent (f90-comment-indent)) - (and f90-smart-end (looking-at "end") + (and f90-smart-end (looking-at (concat "end\\|" f90-else-like-re)) (f90-match-end)) (setq indent (f90-calculate-indent))) (or (= indent (current-column)) @@ -1719,6 +1729,29 @@ (replace-match "")))) (or (looking-at "[ \t]*!") (delete-horizontal-space)))) +(defun f90-else-like-match (beg-block else-block) + "Match else-struct with beg-struct and complete else-struct if possible. +BEG-BLOCK is the type of block as indicated at the start (e.g., if). +ELSE-BLOCK is the type of block as indicated at the else (may be nil)." + (if (not (member beg-block '("if" "where" "select"))) + (if beg-block + (message "%s block cannot have a %s." beg-block else-block) + (message "No beginning for %s." else-block)) + (let ((else-type (cond + ((string-equal else-block "selectcase") "select") + ((string-match "else\\(if\\|where\\)" else-block) + (match-string 1 else-block))))) + (unless (f90-equal-symbols beg-block else-type) + (if (or else-type + (f90-equal-symbols beg-block "select")) + (progn + (message "%s does not match %s." else-block beg-block) + (end-of-line)) + (cond ((string-equal beg-block "where") + (message "Inserting %s." beg-block) + (search-forward "else" (line-end-position)) + (insert beg-block)))))))) + (defun f90-match-end () "From an end block statement, find the corresponding block and name." (interactive) @@ -1726,11 +1759,11 @@ (top-of-window (window-start)) (end-point (point)) (case-fold-search t) - matching-beg beg-name end-name beg-block end-block end-struct) + matching-beg beg-name beg-block end-struct else-struct) (when (save-excursion (beginning-of-line) (skip-chars-forward " \t0-9") - (setq end-struct (f90-looking-at-program-block-end))) - (setq end-block (car end-struct) - end-name (car (cdr end-struct))) + (or (setq end-struct + (f90-looking-at-program-block-end)) + (setq else-struct (f90-looking-at-else-like)))) (save-excursion (beginning-of-line) (while (and (> count 0) @@ -1773,7 +1806,10 @@ beg-name (car (cdr matching-beg))) (goto-char end-point) (beginning-of-line) - (f90-block-match beg-block beg-name end-block end-name)))))) + (if else-struct + (f90-else-like-match beg-block else-struct) + (f90-block-match beg-block beg-name + (car end-struct) (cadr end-struct)))))))) (defun f90-insert-end () "Insert a complete end statement matching beginning of present block."