summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Engling <erdgeist@erdgeist.org>2015-05-15 00:50:33 +0200
committerDirk Engling <erdgeist@erdgeist.org>2015-05-15 00:50:33 +0200
commit2465d2d3af2612998dfc2318564b4788f2e4bd94 (patch)
treed98c04c05af7da9892a539a0d61afe534f6983e6
parente53992a807a714f73a17cec33d96b2494a4373ba (diff)
implement the zip code override
-rw-r--r--src/export/split_version_2.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/export/split_version_2.c b/src/export/split_version_2.c
index 4a5d1b8..64c3eee 100644
--- a/src/export/split_version_2.c
+++ b/src/export/split_version_2.c
@@ -52,9 +52,9 @@
52enum { g_outfiles = 17 }; 52enum { g_outfiles = 17 };
53static enum { CD_NO = 0, CD_S = 1, CD_W = 2 } g_cd; 53static enum { CD_NO = 0, CD_S = 1, CD_W = 2 } g_cd;
54static int g_outfilemap[3][29] = { 54static int g_outfilemap[3][29] = {
55 {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11, 6,-1,16, 5,13,12, 8,10, 3, 9,-1,-1, 7,14 }, 55 {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11, 6,-1,16, 5,13,12, 8,10, 1, 9,-1,-1, 7,14 },
56 {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,11,-1, 6, 5,-1,-1,16, 8,10,11, 3, 9,13,-1,12, 7,14 }, 56 {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,11,-1, 6, 5,-1,-1,16, 8,10,11, 1, 9,13,-1,12, 7,14 },
57 {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13, 6,16, 5, 8,10, 3, 9,12,-1,-1,11, 7,14 } 57 {-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13, 6,16, 5, 8,10, 1, 9,12,-1,-1,11, 7,14 }
58}; 58};
59 59
60static struct { 60static struct {
@@ -117,15 +117,18 @@ static void dump_primary( uint8_t *end, uint32_t flags ) {
117 if this is the first line of a continuation. 117 if this is the first line of a continuation.
118 */ 118 */
119 119
120 /* Dump first 5 chars of zip, they're always there */ 120 /* Dump first 5 chars of zip, they're always there. The extra
121 dump_string( end -= 5, 5, 1 ); 121 zip overrides if flag is set */
122 end -= 5;
123 if( !(flags & 0x0080) )
124 dump_string( end, 5, 1 );
122 125
123 /* Dump first 5 chars of prefix, they're always here in s and w */ 126 /* Dump first 5 chars of prefix, they're always here in s and w */
124 if( g_cd != CD_NO ) 127 if( g_cd != CD_NO )
125 dump_string( end -= 5, 5, 2 ); 128 dump_string( end -= 5, 5, 2 );
126 129
127 /* There is another version of the zip code present, if this bit is set */ 130 /* There is an override version of the zip code present, if this bit is set */
128 if( flags & 0x0080 ) dump_string( end -= 5, 5, 3 ); 131 if( flags & 0x0080 ) dump_string( end -= 5, 5, 1 );
129 132
130 /* There is an unclear X present, if this bit is set */ 133 /* There is an unclear X present, if this bit is set */
131 if( flags & 0x0040 ) dump_string( end -= 1, 1, 4 ); 134 if( flags & 0x0040 ) dump_string( end -= 1, 1, 4 );