URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [gdb-6.8/] [gdb/] [copyright.sh] - Rev 840
Compare with Previous | Blame | View Log
#!/bin/sh # Automatically update copyright for GDB, the GNU debugger. # # Copyright (C) 2007, 2008 Free Software Foundation, Inc. # # This file is part of GDB. # # 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. # Usage: cd src/gdb && sh ./copyright.sh # To use a different version of emacs, set the EMACS environment # variable before running. # After running, update those files mentioned in $byhand by hand. # Always review the output of this script before committing it! # A useful command to review the output is: # filterdiff -x \*.c -x \*.cc -x \*.h -x \*.exp updates.diff # This removes the bulk of the changes which are most likely # to be correct. #### # Configuration #### # As of Emacs 22.0 (snapshot), wrapping and copyright updating do not # handle these file types - all reasonable: # Assembly (weird comment characters, e.g. "!"); .S usually has C # comments, which are fine) # Fortran ("c" comment character) # igen # Autoconf input (dnl) # texinfo (@c) # tex (%) # *.defs as C # man # So these need to be done by hand, as needed byhand=" *.s *.f *.f90 *.igen *.ac *.texi *.texinfo *.tex *.defs *.1 " # Files which should not be modified, either because they are # generated, non-FSF, or otherwise special (e.g. license text, # or test cases which must be sensitive to line numbering). prunes=" COPYING COPYING.LIB CVS configure copying.c gdbarch.c gdbarch.h fdl.texi gpl.texi gdbtk gdb.gdbtk osf-share aclocal.m4 step-line.inp step-line.c " #### # Main program #### : ${EMACS:=emacs} # Disable filename expansion, so that we can get at the glob patterns # from $byhand. set -f version=`$EMACS --version | sed 's/GNU Emacs \([0-9]*\)\..*/\1/; 1q'` if test "$version" -lt 22; then echo "error: $EMACS is too old; use at least an Emacs 22.0.XX snapshot." >&2 exit 1 fi if test $# -lt 1; then dir=. else dir=$1 fi if ! test -f doc/gdbint.texinfo; then echo "\"$dir\" is not a GDB source directory." exit 1 fi cat > copytmp.el <<EOF (load "copyright") (setq vc-cvs-stay-local nil message-log-max t) (setq fsf-regexp "Free[#; \t\n]+Software[#; \t\n]+Foundation,[#; \t\n]+Inc\." fsf-copyright-regexp (concat copyright-regexp "[#; \t\n]+" fsf-regexp) generated-regexp "THIS FILE IS MACHINE GENERATED WITH CGEN") (defun gdb-copyright-update (filename) (widen) (goto-char (point-min)) (if (and (not (re-search-forward generated-regexp (+ (point) copyright-limit) t)) (re-search-forward fsf-copyright-regexp (+ (point) copyright-limit) t)) (progn (setq copyright-update t copyright-query nil fill-column 78 start (copy-marker (match-beginning 0)) end (progn (re-search-backward fsf-regexp) (re-search-forward fsf-regexp (+ (point) copyright-limit) t) (point-marker)) fsf-start (copy-marker (match-beginning 0))) (replace-match "Free_Software_Foundation,_Inc." t t) (copyright-update) (fill-region-as-paragraph start end) (replace-string "_" " " nil fsf-start end)) (message (concat "WARNING: No copyright message found in " filename)))) EOF for f in $prunes $byhand; do prune_opts="$prune_opts -name $f -prune -o" done for f in $(find "$dir" "$dir/../include/gdb" "$dir/../sim" \ $prune_opts -type f -print); do cat >> copytmp.el <<EOF (switch-to-buffer (find-file "$f")) (setq backup-inhibited t) (setq write-file-hooks '()) (gdb-copyright-update "$f") (save-buffer) (kill-buffer (buffer-name)) EOF done cat >> copytmp.el <<EOF (delete-file "copytmp.el") ;; Comment out the next line to examine the message buffer. (kill-emacs) EOF exec $EMACS --no-site-file -q -l ./copytmp.el