Mercurial > hg > xemacs-beta
view lisp/hyperbole/smart-clib-sym @ 183:e121b013d1f0 r20-3b18
Import from CVS: tag r20-3b18
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:54:23 +0200 |
parents | 376386a54a3c |
children |
line wrap: on
line source
#!/bin/csh -f # # SUMMARY: Test whether symbol appears within a set of C libraries. # USAGE: <script-name> <symbol-string> # # AUTHOR: Bob Weiner # ORG: Brown U. # # ORIG-DATE: 5-Oct-91 at 03:29:05 # LAST-MOD: 25-Aug-95 at 02:23:17 by Bob Weiner # # This file is part of Hyperbole. # Available for use and distribution under the same terms as GNU Emacs. # # Copyright (C) 1991-1995, Free Software Foundation, Inc. # Developed with support from Motorola Inc. # # DESCRIPTION: # # Create the file given by the variable 'clib_list' below, and place in that # file the full path for each C, C++ or Objective-C library that you want # scanned for symbol names. One filename per line. Do not quote the # filenames. # # Handles exact name matches only. Echos and exits with same output value. # Either 1 if symbol is found or 0 if not. # # DESCRIP-END. # Perl script used to tell whether one file is newer than another. # set fn = "file-newer" # Create this file and place in the file the full path for each C, C++ or # Objective-C library that you want scanned for symbol names. One filename # per line. Do not quote the filenames. # set clib_list = "~/.CLIBS-LIST" # This file will automatically be created to cache the symbol names. # Remove it if you ever want to rebuild the symbol table. # set clib_symbols = "~/.clibs-symbols" # Try to locate 'perl' and 'file-newer' script for use. which perl >& /dev/null if ($status) unset fn set st = 0 rebuild = 0 if (-e $clib_list) then if (! -e $clib_symbols || -z $clib_symbols) set rebuild = 1 if (! $rebuild && $?fn) @ rebuild = `perl $fn $clib_list $clib_symbols` if ($rebuild) then nm -g `cat $clib_list` | grep '^[0-9 ].* _[A-Za-z]' | sed -e 's/^[^_][^_]*_//g' | sort | uniq > $clib_symbols endif fgrep -sx $1 $clib_symbols >& /dev/null @ st = ! $status endif echo $st exit $st