Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ Makefile.in

pxtools.spec

po/POTFILES

src/pxcsvdump
src/pxinfo
src/pxsqldump
Expand Down
47 changes: 11 additions & 36 deletions src/pxconvert.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,17 +325,7 @@ int PXtoQuotedString(char *dst, const unsigned char *src, int type) {
}

while(*src) {
switch(*src) {
/* cp431(??) -> latin1 */
case 0x81: *dst = '�'; break;
case 0x84: *dst = '�'; break;
case 0x8e: *dst = '�'; break;
case 0x94: *dst = '�'; break;
case 0x99: *dst = '�'; break;
case 0x9a: *dst = '�'; break;
case 0xe1: *dst = '�'; break;
default: *dst = *src;
}
*dst = *src;
dst++;
src++;
}
Expand All @@ -344,21 +334,6 @@ int PXtoQuotedString(char *dst, const unsigned char *src, int type) {
}

char *PXNametoQuotedName(char *str) {
unsigned char *s = str;
while(*s) {
switch(*s) {
case 0x81: *s = '�'; break;
case 0x84: *s = '�'; break;
case 0x8e: *s = '�'; break;
case 0x94: *s = '�'; break;
case 0x99: *s = '�'; break;
case 0x9a: *s = '�'; break;
case 0xe1: *s = '�'; break;
case 0x20: *s = '_'; break;
case '-' : *s = '_'; break;
}
s++;
}
return str;
}

Expand Down Expand Up @@ -389,15 +364,15 @@ char *PXMEMOtoString(void *blob, int size, char *blobname) {
copy_from_le(&offset, (char *)blob+(size-10), 4);
copy_from_le(&length, (char *)blob+(size-6), 4);
copy_from_le(&mod_number, (char *)blob+(size-2), 2);

copy_from_le(&index, (char *)blob+(size-10), 1);

offset &= 0xffffff00;
#ifdef DEBUG
#ifdef DEBUG
fprintf(stderr, "[BLOB] offset: %08lx, length: %08lx, mod_number: %04x, index: %02x\n", offset, length, mod_number, index);
#endif
if (index == 0x00) return NULL;
if (offset == 0) return NULL;

if (!blobname) {
fprintf(stderr, "[BLOB] offset: %08lx, length: %08lx, mod_number: %04x, index: %02x - do I need a BLOB-filename '-b ...' ?\n", offset, length, mod_number, index);
return NULL;
Expand All @@ -408,7 +383,7 @@ char *PXMEMOtoString(void *blob, int size, char *blobname) {
fd = open(blobname, O_RDONLY);
#endif
if (fd == -1) return NULL;

if (index == 0xff) {
/* type 02 block */
mb_type2_pointer idx;
Expand Down Expand Up @@ -505,14 +480,14 @@ int PXBLOBtoBinary(void *blob, int size, char *blobname, void ** binstorage, int
copy_from_le(&offset, (char *)blob+(size-10), 4);
copy_from_le(&length, (char *)blob+(size-6), 4);
copy_from_le(&mod_number, (char *)blob+(size-2), 2);

copy_from_le(&index, (char *)blob+(size-10), 1);

offset &= 0xffffff00;
#ifdef DEBUG
#ifdef DEBUG
fprintf(stderr, "[BLOB] offset: %08lx, length: %08lx, mod_number: %04x, index: %02x\n", offset, length, mod_number, index);
#endif
if (index == 0x00) return 0;
if (offset == 0) return 0;

if (!blobname) {
fprintf(stderr, "[BLOB] offset: %08lx, length: %08lx, mod_number: %04x, index: %02x - do I need a BLOB-filename '-b ...' ?\n", offset, length, mod_number, index);
Expand Down
2 changes: 1 addition & 1 deletion src/pxparse.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ px_fieldInfo **PXparseCompleteHeader (int fd, px_header *header) {
char unp_head[0x58];
char unp_head4[0x20];
unsigned char d[2];
void *ptr;
char ptr[4];

int i;
char c;
Expand Down
17 changes: 9 additions & 8 deletions src/pxsqldump.c
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,8 @@ char * str_to_sql(const unsigned char *src)

char * binary_to_sql(const unsigned char *src, int src_len, int *dst_len)
{
unsigned int i, add;
int i;
unsigned int j, add;
char * dst = NULL;

/* count the numbers of ' */
Expand All @@ -457,22 +458,22 @@ char * binary_to_sql(const unsigned char *src, int src_len, int *dst_len)
src[i] == '\\') add++;
}

dst = malloc((i + add) * sizeof(char));
*dst_len = i + add;
dst = malloc((src_len + add) * sizeof(char));
*dst_len = src_len + add;

for (i = 0; i < src_len; src++)
for (i = 0, j = 0; i < src_len; i++)
{
unsigned int c = 0;

if (*src == '\'')
if (src[i] == '\'')
{
switch (dbtype)
{
case DB_PGSQL: c = '\''; break;
case DB_MYSQL: c = '\\'; break;
}
}
if (*src == '\\')
if (src[i] == '\\')
{
switch (dbtype)
{
Expand All @@ -482,9 +483,9 @@ char * binary_to_sql(const unsigned char *src, int src_len, int *dst_len)
}

if (c)
dst[i++] = c;
dst[j++] = c;

dst[i++] = *src;
dst[j++] = src[i];
}

return dst;
Expand Down
12 changes: 5 additions & 7 deletions src/pxxmldump.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const char *tags [] = {
"logical",
"timestamp",
"incremental",
"bcd"
"bcd",
"time",
};

Expand Down Expand Up @@ -77,13 +77,11 @@ int create_xml_line(px_header *header, px_fieldInfo **felder, px_records block,
free(str);
} else if (felder[i]->type == PX_Field_Type_BCD) {
char *str = malloc(felder[i]->size + 1);

fprintf(stderr,"aslhf�asdhfsadbf\n"),

BLOCK_COPY(str, felder[i]->size);


BLOCK_COPY(str, felder[i]->size);

printf("%s", str);

free(str);
} else if (felder[i]->type == PX_Field_Type_ShortInt) {
unsigned short s;
Expand Down