mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-06-28 15:21:33 +08:00
Patch 155-blob from Nirgal Vourgère
This commit is contained in:
parent
4fb8786418
commit
7a073df76e
@ -70,7 +70,7 @@ enum {
|
||||
MDB_MODULE,
|
||||
MDB_RELATIONSHIP,
|
||||
MDB_UNKNOWN_09,
|
||||
MDB_UNKNOWN_0A,
|
||||
MDB_UNKNOWN_0A, /* User access */
|
||||
MDB_DATABASE_PROPERTY,
|
||||
MDB_ANY = -1
|
||||
};
|
||||
@ -83,6 +83,7 @@ enum {
|
||||
MDB_FLOAT = 0x06,
|
||||
MDB_DOUBLE = 0x07,
|
||||
MDB_SDATETIME = 0x08,
|
||||
MDB_BINARY = 0x09,
|
||||
MDB_TEXT = 0x0a,
|
||||
MDB_OLE = 0x0b,
|
||||
MDB_MEMO = 0x0c,
|
||||
|
@ -48,7 +48,7 @@ static MdbBackendType mdb_access_types[] = {
|
||||
MdbBackendType_STRUCT_ELEMENT("Single", 0,0,0),
|
||||
MdbBackendType_STRUCT_ELEMENT("Double", 0,0,0),
|
||||
MdbBackendType_STRUCT_ELEMENT("DateTime (Short)", 0,0,1),
|
||||
MdbBackendType_STRUCT_ELEMENT("Unknown 0x09", 0,0,0),
|
||||
MdbBackendType_STRUCT_ELEMENT("Binary", 0,0,0),
|
||||
MdbBackendType_STRUCT_ELEMENT("Text", 1,0,1),
|
||||
MdbBackendType_STRUCT_ELEMENT("OLE", 1,0,1),
|
||||
MdbBackendType_STRUCT_ELEMENT("Memo/Hyperlink",1,0,1),
|
||||
|
@ -847,6 +847,7 @@ char *mdb_col_to_string(MdbHandle *mdb, void *buf, int start, int datatype, int
|
||||
DBL_DIG - floor_log10(td,0) - 1, td);
|
||||
trim_trailing_zeros(text);
|
||||
break;
|
||||
case MDB_BINARY:
|
||||
case MDB_TEXT:
|
||||
if (size<0) {
|
||||
text = g_strdup("");
|
||||
@ -935,6 +936,9 @@ int mdb_col_fixed_size(MdbColumn *col)
|
||||
case MDB_SDATETIME:
|
||||
return 4;
|
||||
break;
|
||||
case MDB_BINARY:
|
||||
return -1;
|
||||
break;
|
||||
case MDB_MEMO:
|
||||
return -1;
|
||||
break;
|
||||
|
@ -26,7 +26,7 @@
|
||||
#undef MDB_BIND_SIZE
|
||||
#define MDB_BIND_SIZE 200000
|
||||
|
||||
#define is_text_type(x) (x==MDB_TEXT || x==MDB_MEMO || x==MDB_SDATETIME)
|
||||
#define is_text_type(x) (x==MDB_TEXT || x==MDB_MEMO || x==MDB_SDATETIME || x==MDB_BINARY)
|
||||
|
||||
static char *sanitize_name(char *str, int sanitize);
|
||||
static char *escapes(char *s);
|
||||
@ -39,8 +39,10 @@ print_col(gchar *col_val, int quote_text, int col_type, char *quote_char, char *
|
||||
if (quote_text && is_text_type(col_type)) {
|
||||
fprintf(stdout,quote_char);
|
||||
for (s=col_val;*s;s++) {
|
||||
if (strlen(quote_char)==1 && *s==quote_char[0]) {
|
||||
/* double the char if no escape char passed */
|
||||
if (col_type == MDB_BINARY)
|
||||
fprintf(stdout, "\\%03o", (unsigned char)*s);
|
||||
else if (strlen(quote_char)==1 && *s==quote_char[0]) {
|
||||
/* double the char if no escape char passed */
|
||||
if (!escape_char) {
|
||||
fprintf(stdout,"%s%s",quote_char,quote_char);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user