summaryrefslogtreecommitdiffstats
path: root/include/pttstruct.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/pttstruct.h')
-rw-r--r--include/pttstruct.h30
1 files changed, 27 insertions, 3 deletions
diff --git a/include/pttstruct.h b/include/pttstruct.h
index fcdb77bb..23979723 100644
--- a/include/pttstruct.h
+++ b/include/pttstruct.h
@@ -219,15 +219,39 @@ typedef struct boardheader_t {
#define TTLEN 64 /* Length of title */
#define FNLEN 33 /* Length of filename */
-#define FHR_REFERENCE (1<<31)
-
typedef struct fileheader_t {
char filename[FNLEN]; /* M.9876543210.A */
char recommend; /* important level */
char owner[IDLEN + 2]; /* uid[.] */
char date[6]; /* [02/02] or space(5) */
char title[TTLEN + 1];
- int money; /* rocker: if bit32 on ==> reference */ /* XXX dirty, split into flag and money if money of each file is less than 16bit? */
+ union {
+ int money;
+ int anon_uid;
+ /* different order to match alignment */
+#ifdef _BIG_ENDIAN
+ struct {
+ unsigned char pad[2]; /* money & 0xffff0000 */
+ unsigned char logins; /* money & 0xff00 */
+ unsigned char posts; /* money & 0xff */
+ } vote_limits;
+ struct {
+ unsigned int flag:1;
+ unsigned int ref:31;
+ } refer;
+#else
+ struct {
+ unsigned char posts; /* money & 0xff */
+ unsigned char logins; /* money & 0xff00 */
+ unsigned char pad[2]; /* money & 0xffff0000 */
+ } vote_limits;
+ struct {
+ unsigned int ref:31;
+ unsigned int flag:1;
+ } refer;
+#endif
+ } multi; /* rocker: if bit32 on ==> reference */
+ /* XXX dirty, split into flag and money if money of each file is less than 16bit? */
unsigned char filemode; /* must be last field @ boards.c */
} fileheader_t;