mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-26 19:44:11 +08:00
Introduce read_remainder_of_file
This patch adds a new function, read_remainder_of_file. This is like read_text_file_to_string, but reads from an existing 'FILE *'. This will be used in a subsequent patch. Reviewed-By: Tom de Vries <tdevries@suse.de>
This commit is contained in:
parent
50c6682d74
commit
5c92d8456d
@ -504,13 +504,9 @@ mkdir_recursive (const char *dir)
|
||||
|
||||
/* See gdbsupport/filestuff.h. */
|
||||
|
||||
std::optional<std::string>
|
||||
read_text_file_to_string (const char *path)
|
||||
std::string
|
||||
read_remainder_of_file (FILE *file)
|
||||
{
|
||||
gdb_file_up file = gdb_fopen_cloexec (path, "r");
|
||||
if (file == nullptr)
|
||||
return {};
|
||||
|
||||
std::string res;
|
||||
for (;;)
|
||||
{
|
||||
@ -520,7 +516,7 @@ read_text_file_to_string (const char *path)
|
||||
/* Resize to accommodate CHUNK_SIZE bytes. */
|
||||
res.resize (start_size + chunk_size);
|
||||
|
||||
int n = fread (&res[start_size], 1, chunk_size, file.get ());
|
||||
int n = fread (&res[start_size], 1, chunk_size, file);
|
||||
if (n == chunk_size)
|
||||
continue;
|
||||
|
||||
@ -528,7 +524,7 @@ read_text_file_to_string (const char *path)
|
||||
|
||||
/* Less than CHUNK means EOF or error. If it's an error, return
|
||||
no value. */
|
||||
if (ferror (file.get ()))
|
||||
if (ferror (file))
|
||||
return {};
|
||||
|
||||
/* Resize the string according to the data we read. */
|
||||
@ -538,3 +534,15 @@ read_text_file_to_string (const char *path)
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/* See gdbsupport/filestuff.h. */
|
||||
|
||||
std::optional<std::string>
|
||||
read_text_file_to_string (const char *path)
|
||||
{
|
||||
gdb_file_up file = gdb_fopen_cloexec (path, "r");
|
||||
if (file == nullptr)
|
||||
return {};
|
||||
|
||||
return read_remainder_of_file (file.get ());
|
||||
}
|
||||
|
@ -133,4 +133,8 @@ extern bool mkdir_recursive (const char *dir);
|
||||
|
||||
extern std::optional<std::string> read_text_file_to_string (const char *path);
|
||||
|
||||
/* Read the remaining content from FILE into an std::string. */
|
||||
|
||||
extern std::string read_remainder_of_file (FILE *file);
|
||||
|
||||
#endif /* COMMON_FILESTUFF_H */
|
||||
|
Loading…
Reference in New Issue
Block a user