home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-src.tgz / tar.out / fsf / octave / dld / ul_file.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  65 lines

  1. /* unlink_file.c -- unlink a given object file. */
  2.  
  3. /* This file is part of DLD, a dynamic link/unlink editor for C.
  4.    
  5.    Copyright (C) 1990 by W. Wilson Ho.
  6.  
  7.    The author can be reached electronically by how@cs.ucdavis.edu or
  8.    through physical mail at:
  9.  
  10.    W. Wilson Ho
  11.    Division of Computer Science
  12.    University of California at Davis
  13.    Davis, CA 95616
  14.  */
  15.  
  16. /* This program is free software; you can redistribute it and/or modify it
  17.    under the terms of the GNU General Public License as published by the
  18.    Free Software Foundation; either version 1, or (at your option) any
  19.    later version. */
  20.  
  21. #include "defs.h"
  22.  
  23. static struct file_entry *
  24. search_files (entry, name)
  25. register struct file_entry *entry;
  26. register char *name;
  27. {
  28.     while (entry) {
  29.     if (entry->library_flag) {
  30.         register struct file_entry *subentry;
  31.  
  32.         if ((subentry = search_files (entry->subfiles, name)) != 0)
  33.         return subentry;
  34.     } else {
  35.         if (!strcmp (entry->local_sym_name, name))
  36.         return entry;
  37.         if (entry->local_sym_name != entry->filename)
  38.         if (!strcmp (entry->filename, name))
  39.             return entry;
  40.     }
  41.  
  42.     entry = entry->chain;
  43.     }
  44.     return 0;
  45. } /* search_files */
  46.  
  47.  
  48. int
  49. dld_unlink_by_file (name, force)
  50. char *name;
  51. int force;
  52. {
  53.     register struct file_entry *entry;
  54.  
  55.     if ((entry = search_files (_dld_latest_entry, name))) {
  56.     _dld_unlink_entry (entry, force);
  57.     return 0;
  58.     }
  59.  
  60.     dld_errno = DLD_EUNDEFSYM;
  61.     return dld_errno;
  62. } /* dld_unlink_by_file */
  63.  
  64.  
  65.