diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d18c7537c3..3fd02bdbec 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Wed May 24 00:38:09 2000 Andrew Cagney + + * utils.c (make_cleanup_close, do_close_cleanup): New functions. + * defs.h (make_cleanup_close): Add declaration. + Tue May 23 20:47:50 2000 Andrew Cagney * configure.in (build_warnings): Add -Wuninitialized. diff --git a/gdb/defs.h b/gdb/defs.h index d2810dc4a7..b11edd14ef 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -332,6 +332,8 @@ extern struct cleanup *make_cleanup_freeargv (char **); struct ui_file; extern struct cleanup *make_cleanup_ui_file_delete (struct ui_file *); +extern struct cleanup *make_cleanup_close (int fd); + extern struct cleanup *make_cleanup_bfd_close (bfd *abfd); extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *); diff --git a/gdb/utils.c b/gdb/utils.c index 8e2c5c550f..6f5264a8d1 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -215,6 +215,19 @@ make_cleanup_bfd_close (bfd *abfd) return make_cleanup (do_bfd_close_cleanup, abfd); } +static void +do_close_cleanup (void *arg) +{ + close ((int) arg); +} + +struct cleanup * +make_cleanup_close (int fd) +{ + /* int into void*. Outch!! */ + return make_cleanup (do_close_cleanup, (void *) fd); +} + static void do_ui_file_delete (void *arg) {