Move make_temp_filename to common/pathstuff.c

Currently make_temp_filename is a function local to
write_psymtabs_to_index.  This patch moves it to pathstuff.c so that
it can be used from other places in gdb.

gdb/ChangeLog
2018-10-27  Tom Tromey  <tom@tromey.com>

	* dwarf-index-write.c (write_psymtabs_to_index): Move
	make_temp_filename to common/pathstuff.c.
	* common/pathstuff.h (make_temp_filename): Declare.
	* common/pathstuff.c (make_temp_filename): New function, moved
	from dwarf-index-write.c.
This commit is contained in:
Tom Tromey 2018-09-14 11:28:45 -06:00
parent 974e684463
commit 29be4d9dee
4 changed files with 27 additions and 10 deletions

View File

@ -1,3 +1,11 @@
2018-10-27 Tom Tromey <tom@tromey.com>
* dwarf-index-write.c (write_psymtabs_to_index): Move
make_temp_filename to common/pathstuff.c.
* common/pathstuff.h (make_temp_filename): Declare.
* common/pathstuff.c (make_temp_filename): New function, moved
from dwarf-index-write.c.
2018-10-27 Tom Tromey <tom@tromey.com>
* procfs.c (procfs_target::create_inferior): Use get_shell.

View File

@ -202,3 +202,14 @@ get_shell ()
return ret;
}
/* See common/pathstuff.h. */
gdb::char_vector
make_temp_filename (const std::string &f)
{
gdb::char_vector filename_temp (f.length () + 8);
strcpy (filename_temp.data (), f.c_str ());
strcat (filename_temp.data () + f.size (), "-XXXXXX");
return filename_temp;
}

View File

@ -20,6 +20,8 @@
#ifndef PATHSTUFF_H
#define PATHSTUFF_H
#include "common/byte-vector.h"
/* Path utilities. */
/* Return the real path of FILENAME, expanding all the symbolic links.
@ -69,4 +71,9 @@ extern std::string get_standard_cache_dir ();
extern const char *get_shell ();
/* Make a filename suitable to pass to mkstemp based on F (e.g.
/tmp/foo -> /tmp/foo-XXXXXX). */
extern gdb::char_vector make_temp_filename (const std::string &f);
#endif /* PATHSTUFF_H */

View File

@ -24,6 +24,7 @@
#include "common/byte-vector.h"
#include "common/filestuff.h"
#include "common/gdb_unlinker.h"
#include "common/pathstuff.h"
#include "common/scoped_fd.h"
#include "complaints.h"
#include "dwarf-index-common.h"
@ -1560,16 +1561,6 @@ write_psymtabs_to_index (struct dwarf2_per_objfile *dwarf2_per_objfile,
if (stat (objfile_name (objfile), &st) < 0)
perror_with_name (objfile_name (objfile));
/* Make a filename suitable to pass to mkstemp based on F (e.g.
/tmp/foo -> /tmp/foo-XXXXXX). */
auto make_temp_filename = [] (const std::string &f) -> gdb::char_vector
{
gdb::char_vector filename_temp (f.length () + 8);
strcpy (filename_temp.data (), f.c_str ());
strcat (filename_temp.data () + f.size (), "-XXXXXX");
return filename_temp;
};
std::string filename (std::string (dir) + SLASH_STRING + basename
+ (index_kind == dw_index_kind::DEBUG_NAMES
? INDEX5_SUFFIX : INDEX4_SUFFIX));