1 Alignment fix for mg plugin.
2 Index: navit/navit/map/mg/mg.h
3 ===================================================================
4 --- navit.orig/navit/map/mg/mg.h 2009-03-16 22:09:29.000000000 +0100
5 +++ navit/navit/map/mg/mg.h 2009-03-16 22:10:26.000000000 +0100
8 unsigned char *tmp_data;
10 +static inline void street_name_numbers_get_coord(struct street_name_numbers * str, struct coord * c) {
11 + unsigned char *p=(unsigned char *)str->c;
12 + c->x=get_u32_unal(&p);
13 + c->y=get_u32_unal(&p);
16 struct street_name_number {
22 - unsigned short offset;
23 - unsigned short block;
24 +/* unsigned short offset;
25 + unsigned short block;*/
29 +static inline unsigned short block_offset_get_offset(struct block_offset * blk) { unsigned char *p = blk->p; return get_u16_unal(&p); }
30 +static inline unsigned short block_offset_get_block(struct block_offset * blk) { unsigned char *p = blk->p+2; return get_u16_unal(&p); }
32 struct tree_search_node {
34 Index: navit/navit/map/mg/town.c
35 ===================================================================
36 --- navit.orig/navit/map/mg/town.c 2009-03-12 22:30:06.000000000 +0100
37 +++ navit/navit/map/mg/town.c 2009-03-16 22:10:26.000000000 +0100
40 if (! mr->search_blk_count)
42 - dbg(1,"block 0x%x offset 0x%x\n", mr->search_blk_off->block, mr->search_blk_off->offset);
43 - block_get_byindex(mr->m->file[mr->current_file], mr->search_blk_off->block, &mr->b);
44 - mr->b.p=mr->b.block_start+mr->search_blk_off->offset;
45 + dbg(1,"block 0x%x offset 0x%x\n", block_offset_get_block(mr->search_blk_off), block_offset_get_offset(mr->search_blk_off));
46 + block_get_byindex(mr->m->file[mr->current_file], block_offset_get_block(mr->search_blk_off), &mr->b);
47 + mr->b.p=mr->b.block_start+block_offset_get_offset(mr->search_blk_off);
48 town_get(mr, &mr->town, &mr->item);
50 mr->search_blk_count--;
51 Index: navit/navit/map/mg/street.c
52 ===================================================================
53 --- navit.orig/navit/map/mg/street.c 2009-03-16 22:09:29.000000000 +0100
54 +++ navit/navit/map/mg/street.c 2009-03-16 22:10:26.000000000 +0100
56 name_numbers->dist=get_u32_unal(p);
57 name_numbers->country=get_u32_unal(p);
58 name_numbers->c=coord_get(p);
59 - name_numbers->first=get_u24(p);
60 - name_numbers->last=get_u24(p);
61 + name_numbers->first=get_u24_unal(p);
62 + name_numbers->last=get_u24_unal(p);
63 name_numbers->segment_count=get_u32_unal(p);
64 name_numbers->segments=(struct street_name_segment *)(*p);
65 (*p)+=sizeof(struct street_name_segment)*name_numbers->segment_count;
67 name_number->len=get_u16_unal(p);
68 name_number->tag=get_u8(p);
69 name_number->c=coord_get(p);
70 - name_number->first=get_u24(p);
71 - name_number->last=get_u24(p);
72 + name_number->first=get_u24_unal(p);
73 + name_number->last=get_u24_unal(p);
74 name_number->segment=(struct street_name_segment *)p;
75 *p=start+name_number->len;
78 dbg(1,"aux_data=%p\n", p);
80 street_name_numbers_get(&snns, &p);
82 + street_name_numbers_get_coord(&snns, c);
86 Index: navit/navit/data.h
87 ===================================================================
88 --- navit.orig/navit/data.h 2009-03-12 22:30:06.000000000 +0100
89 +++ navit/navit/data.h 2009-03-16 22:10:26.000000000 +0100
93 static inline unsigned int
94 +get_u24_unal(unsigned char **p) {
96 + ret=get_u16_unal(p);
97 + ret|=*((*p)++) << 16;
102 +static inline unsigned int
103 get_u32(unsigned char **p) {
105 ret=*((unsigned int *)*p);