projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename section_value to occurrence.
[pspp]
/
src
/
libpspp
/
encoding-guesser.c
diff --git
a/src/libpspp/encoding-guesser.c
b/src/libpspp/encoding-guesser.c
index 9518bd6396bd7d05472251e3ea779021dd459084..2f3438ff811ad954359261686871cd061db7bc48 100644
(file)
--- a/
src/libpspp/encoding-guesser.c
+++ b/
src/libpspp/encoding-guesser.c
@@
-189,28
+189,34
@@
is_utf8_bom (const uint8_t *data, size_t n)
return n >= 3 && data[0] == 0xef && data[1] == 0xbb && data[2] == 0xbf;
}
return n >= 3 && data[0] == 0xef && data[1] == 0xbb && data[2] == 0xbf;
}
+static bool
+is_bom_length (size_t n, size_t w)
+{
+ return n >= ENCODING_GUESS_MIN || (n && n % w == 0);
+}
+
static bool
is_utf16le_bom (const uint8_t *data, size_t n)
{
static bool
is_utf16le_bom (const uint8_t *data, size_t n)
{
- return
(n >= ENCODING_GUESS_MIN || n % 2 == 0
) && get_le16 (data) == 0xfeff;
+ return
is_bom_length (n, 2
) && get_le16 (data) == 0xfeff;
}
static bool
is_utf16be_bom (const uint8_t *data, size_t n)
{
}
static bool
is_utf16be_bom (const uint8_t *data, size_t n)
{
- return
(n >= ENCODING_GUESS_MIN || n % 2 == 0
) && get_be16 (data) == 0xfeff;
+ return
is_bom_length (n, 2
) && get_be16 (data) == 0xfeff;
}
static bool
is_utf32le_bom (const uint8_t *data, size_t n)
{
}
static bool
is_utf32le_bom (const uint8_t *data, size_t n)
{
- return
(n >= ENCODING_GUESS_MIN || n % 4 == 0
) && get_le32 (data) == 0xfeff;
+ return
is_bom_length (n, 4
) && get_le32 (data) == 0xfeff;
}
static bool
is_utf32be_bom (const uint8_t *data, size_t n)
{
}
static bool
is_utf32be_bom (const uint8_t *data, size_t n)
{
- return
(n >= ENCODING_GUESS_MIN || n % 4 == 0
) && get_be32 (data) == 0xfeff;
+ return
is_bom_length (n, 4
) && get_be32 (data) == 0xfeff;
}
/* Attempts to guess the encoding of a text file based on ENCODING, an encoding
}
/* Attempts to guess the encoding of a text file based on ENCODING, an encoding