BUG: Fix previous change to file(STRINGS) command.

- Previous change added form-feed as a string terminator.
  - Instead it should just be recognized as a valid string character.
This commit is contained in:
Brad King 2008-05-17 11:42:11 -04:00
parent 7ed8deeac2
commit b9ede3c86d
1 changed files with 6 additions and 10 deletions

View File

@ -533,16 +533,12 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
(limit_input < 0 || static_cast<int>(fin.tellg()) < limit_input) &&
(c = fin.get(), fin))
{
if(c == '\0' || c == '\f')
if(c == '\0')
{
// A terminating character has been found. In most cases it is
// a NULL character, but at least one compiler (Portland Group
// Fortran) produces binaries that terminate strings with a form
// feed.
// Check if the current string matches the requirements. Since
// it was terminated by a null character, we require that the
// length be at least one no matter what the user specified.
// A terminating null character has been found. Check if the
// current string matches the requirements. Since it was
// terminated by a null character, we require that the length be
// at least one no matter what the user specified.
if(s.length() >= minlen && s.length() >= 1 &&
(!have_regex || regex.find(s.c_str())))
{
@ -582,7 +578,7 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
{
// Ignore CR character to make output always have UNIX newlines.
}
else if(c >= 0x20 && c < 0x7F || c == '\t' ||
else if(c >= 0x20 && c < 0x7F || c == '\t' || c == '\f' ||
(c == '\n' && newline_consume))
{
// This is an ASCII character that may be part of a string.