head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.114 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.112 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.110 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.108 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.106 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.104 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.102 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.100 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.98 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.96 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.94 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.92 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.90 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.88 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.86 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.84 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.82 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.80 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.78 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.76 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.74 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.72 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.70 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.66 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.46 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.68 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.64 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.62 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.60 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.58 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.56 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.54 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.52 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.50 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.48 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.44 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.42 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.40 pkgsrc-2016Q4-base:1.1 pkgsrc-2016Q3:1.1.0.38 pkgsrc-2016Q3-base:1.1 pkgsrc-2016Q2:1.1.0.36 pkgsrc-2016Q2-base:1.1 pkgsrc-2016Q1:1.1.0.34 pkgsrc-2016Q1-base:1.1 pkgsrc-2015Q4:1.1.0.32 pkgsrc-2015Q4-base:1.1 pkgsrc-2015Q3:1.1.0.30 pkgsrc-2015Q3-base:1.1 pkgsrc-2015Q2:1.1.0.28 pkgsrc-2015Q2-base:1.1 pkgsrc-2015Q1:1.1.0.26 pkgsrc-2015Q1-base:1.1 pkgsrc-2014Q4:1.1.0.24 pkgsrc-2014Q4-base:1.1 pkgsrc-2014Q3:1.1.0.22 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.20 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.18 pkgsrc-2014Q1-base:1.1 pkgsrc-2013Q4:1.1.0.16 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.14 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.12 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.10 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.8 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.6 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.4 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.2; locks; strict; comment @# @; 1.1 date 2012.05.07.19.21.57; author dholland; state Exp; branches 1.1.2.1; next ; 1.1.2.1 date 2012.05.07.19.21.57; author tron; state dead; branches; next 1.1.2.2; 1.1.2.2 date 2012.05.09.06.26.08; author tron; state Exp; branches; next ; desc @@ 1.1 log @Hack around misuse of fpos_t. Fix some code that assumed fpos_t is a 4-byte integer type. If this code ever worked on NetBSD, it was only by accident. PKGREVISION++ for the fixes. @ text @$NetBSD$ Hack around misuse of fpos_t. Fix some places where the code assumes fpos_t is a 4-byte integer (it has always been an 8-byte integer on NetBSD...) Cannot fix the core assumption that fpos_t is an integer, though, so work around it. --- src/liboe.c~ 2000-06-18 22:16:55.000000000 +0000 +++ src/liboe.c @@@@ -24,6 +24,15 @@@@ #endif #include +#ifdef __NetBSD__ +/* + * NetBSD 6 and up has a non-integer fpos_t. This code requires an + * integer type, so we'll have to use fseeko instead. + */ +#define fpos_t off_t +#define fsetpos(f, offp) fseeko(f, *(offp), SEEK_SET) +#endif + #define OE_CANNOTREAD 1 #define OE_NOTOEBOX 2 #define OE_POSITION 3 @@@@ -69,10 +78,13 @@@@ typedef struct oe_list oe_list; anywhere in the mailbox file, some times far from each other. */ struct oe_msg_segmentheader { - int self, /* Pointer to self (filepos) */ + fpos_t self; /* Pointer to self (filepos) */ + int increase, /* Increase to next segment header (not in msg, in file!) */ - include, /* Number of bytes to include from this segment */ - next, /* Pointer to next message segment (in msg) (filepos) */ + include; /* Number of bytes to include from this segment */ + fpos_t + next; /* Pointer to next message segment (in msg) (filepos) */ + int usenet; /* Only used with usenet posts */ }; typedef struct oe_msg_segmentheader oe_msg_segmentheader; @@@@ -125,7 +137,8 @@@@ int oe_readmessage(oe_data *data, int segheadsize = sizeof(oe_msg_segmentheader)-4; /*+(newsarticle<<2);*/ oe_msg_segmentheader *sgm = malloc(sizeof(oe_msg_segmentheader)); char buff[16], *ss = malloc(2048), *s = ss; - int nextsegment, endofsegment, i, headerwritten = 0; + fpos_t nextsegment, endofsegment; + int i, headerwritten = 0; fsetpos(data->oe,&pos); while (1) { fread(sgm,segheadsize,1,data->oe); @@@@ -156,7 +169,7 @@@@ int oe_readmessage(oe_data *data, if (buff[i]==0x0a) { *s='\0'; data->oput(ss); s=ss; } } } - fsetpos(data->oe,(fpos_t *) &sgm->next); + fsetpos(data->oe, &sgm->next); pos = sgm->next; if (pos==0) break; } @@@@ -252,12 +265,14 @@@@ void oe_readdamaged(oe_data *data) { that even OE couldn't read to work. Should generally not be needed, but is nice to have in here */ fpos_t pos = 0x7C; + int tmp; int i,check, lastID; #ifdef DEBUG printf(" Trying to construct internal mailbox structure\n"); #endif fsetpos(data->oe,&pos); - fread(&pos,sizeof(int),1,data->oe); + fread(&tmp,sizeof(int),1,data->oe); + pos = tmp; if (pos==0) return; /* No, sorry, didn't work */ fsetpos(data->oe,&pos); fread(&i,sizeof(int),1,data->oe); @@@@ -286,7 +301,8 @@@@ void oe_readdamaged(oe_data *data) { } void oe_readbox_oe4(oe_data *data) { - fpos_t pos = 0x54, endpos=0, i; + fpos_t pos = 0x54, endpos=0; + int i; oe_msg_segmentheader *header=malloc(sizeof(oe_msg_segmentheader)); char *cb = malloc(4), *sfull = malloc(65536), *s = sfull; fsetpos(data->oe,&pos); @@@@ -323,6 +339,7 @@@@ void oe_readbox_oe4(oe_data *data) { oe_data* oe_readbox(char* filename,void (*oput)(char*)) { int signature[4], i; + fpos_t tmp; oe_data *data = malloc(sizeof(oe_data)); data->success=data->failure=data->justheaders=data->errcode=0; data->used = NULL; @@@@ -359,7 +376,8 @@@@ oe_data* oe_readbox(char* filename,void /* ACTUAL WORK */ i = 0x30; - fsetpos(data->oe,(fpos_t *) &i); + tmp = i; + fsetpos(data->oe, &tmp); fread(&i,4,1,data->oe); if (!i) i=0x1e254; i = oe_readtable(data,i); /* Reads the box */ @ 1.1.2.1 log @file patch-src_liboe_c was added on branch pkgsrc-2012Q1 on 2012-05-09 06:26:08 +0000 @ text @d1 105 @ 1.1.2.2 log @Pullup ticket #3777 - requested by dholland mail/oe2mbx: build fix Revisions pulled up: - mail/oe2mbx/Makefile 1.13 - mail/oe2mbx/distinfo 1.5 - mail/oe2mbx/patches/patch-src_liboe_c 1.1 --- Module Name: pkgsrc Committed By: dholland Date: Mon May 7 19:21:57 UTC 2012 Modified Files: pkgsrc/mail/oe2mbx: Makefile distinfo Added Files: pkgsrc/mail/oe2mbx/patches: patch-src_liboe_c Log Message: Hack around misuse of fpos_t. Fix some code that assumed fpos_t is a 4-byte integer type. If this code ever worked on NetBSD, it was only by accident. PKGREVISION++ for the fixes. @ text @a0 105 $NetBSD$ Hack around misuse of fpos_t. Fix some places where the code assumes fpos_t is a 4-byte integer (it has always been an 8-byte integer on NetBSD...) Cannot fix the core assumption that fpos_t is an integer, though, so work around it. --- src/liboe.c~ 2000-06-18 22:16:55.000000000 +0000 +++ src/liboe.c @@@@ -24,6 +24,15 @@@@ #endif #include +#ifdef __NetBSD__ +/* + * NetBSD 6 and up has a non-integer fpos_t. This code requires an + * integer type, so we'll have to use fseeko instead. + */ +#define fpos_t off_t +#define fsetpos(f, offp) fseeko(f, *(offp), SEEK_SET) +#endif + #define OE_CANNOTREAD 1 #define OE_NOTOEBOX 2 #define OE_POSITION 3 @@@@ -69,10 +78,13 @@@@ typedef struct oe_list oe_list; anywhere in the mailbox file, some times far from each other. */ struct oe_msg_segmentheader { - int self, /* Pointer to self (filepos) */ + fpos_t self; /* Pointer to self (filepos) */ + int increase, /* Increase to next segment header (not in msg, in file!) */ - include, /* Number of bytes to include from this segment */ - next, /* Pointer to next message segment (in msg) (filepos) */ + include; /* Number of bytes to include from this segment */ + fpos_t + next; /* Pointer to next message segment (in msg) (filepos) */ + int usenet; /* Only used with usenet posts */ }; typedef struct oe_msg_segmentheader oe_msg_segmentheader; @@@@ -125,7 +137,8 @@@@ int oe_readmessage(oe_data *data, int segheadsize = sizeof(oe_msg_segmentheader)-4; /*+(newsarticle<<2);*/ oe_msg_segmentheader *sgm = malloc(sizeof(oe_msg_segmentheader)); char buff[16], *ss = malloc(2048), *s = ss; - int nextsegment, endofsegment, i, headerwritten = 0; + fpos_t nextsegment, endofsegment; + int i, headerwritten = 0; fsetpos(data->oe,&pos); while (1) { fread(sgm,segheadsize,1,data->oe); @@@@ -156,7 +169,7 @@@@ int oe_readmessage(oe_data *data, if (buff[i]==0x0a) { *s='\0'; data->oput(ss); s=ss; } } } - fsetpos(data->oe,(fpos_t *) &sgm->next); + fsetpos(data->oe, &sgm->next); pos = sgm->next; if (pos==0) break; } @@@@ -252,12 +265,14 @@@@ void oe_readdamaged(oe_data *data) { that even OE couldn't read to work. Should generally not be needed, but is nice to have in here */ fpos_t pos = 0x7C; + int tmp; int i,check, lastID; #ifdef DEBUG printf(" Trying to construct internal mailbox structure\n"); #endif fsetpos(data->oe,&pos); - fread(&pos,sizeof(int),1,data->oe); + fread(&tmp,sizeof(int),1,data->oe); + pos = tmp; if (pos==0) return; /* No, sorry, didn't work */ fsetpos(data->oe,&pos); fread(&i,sizeof(int),1,data->oe); @@@@ -286,7 +301,8 @@@@ void oe_readdamaged(oe_data *data) { } void oe_readbox_oe4(oe_data *data) { - fpos_t pos = 0x54, endpos=0, i; + fpos_t pos = 0x54, endpos=0; + int i; oe_msg_segmentheader *header=malloc(sizeof(oe_msg_segmentheader)); char *cb = malloc(4), *sfull = malloc(65536), *s = sfull; fsetpos(data->oe,&pos); @@@@ -323,6 +339,7 @@@@ void oe_readbox_oe4(oe_data *data) { oe_data* oe_readbox(char* filename,void (*oput)(char*)) { int signature[4], i; + fpos_t tmp; oe_data *data = malloc(sizeof(oe_data)); data->success=data->failure=data->justheaders=data->errcode=0; data->used = NULL; @@@@ -359,7 +376,8 @@@@ oe_data* oe_readbox(char* filename,void /* ACTUAL WORK */ i = 0x30; - fsetpos(data->oe,(fpos_t *) &i); + tmp = i; + fsetpos(data->oe, &tmp); fread(&i,4,1,data->oe); if (!i) i=0x1e254; i = oe_readtable(data,i); /* Reads the box */ @