Fossil SCM

Do not assume little-endian architecture within <tt>to_base26()</tt> function.

george 2022-01-30 17:38 markdown-footnotes
Commit 4b63b1ee55c339b0a82b034b164dfa610cbfa034dbea19ec99d9a6acc0a505b5
1 file changed +4 -2
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -70,13 +70,15 @@
7070
if( i >= 0 ){
7171
for(j=7; j >= 0; j--){
7272
x.b[j] = (unsigned char)(uppercase?'A':'a') + i%26;
7373
if( (i /= 26) == 0 ) break;
7474
}
75
- x.u >>= 8*j;
75
+ assert( j > 0 ); /* because 2^32 < 26^7 */
76
+ for(i=0; i<8-j; i++) x.b[i] = x.b[i+j];
77
+ for( ; i<8 ; i++) x.b[i] = 0;
7678
}
77
- x.c[7] = 0;
79
+ assert( x.c[7] == 0 );
7880
return x;
7981
}
8082
8183
/* HTML escapes
8284
**
8385
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -70,13 +70,15 @@
70 if( i >= 0 ){
71 for(j=7; j >= 0; j--){
72 x.b[j] = (unsigned char)(uppercase?'A':'a') + i%26;
73 if( (i /= 26) == 0 ) break;
74 }
75 x.u >>= 8*j;
 
 
76 }
77 x.c[7] = 0;
78 return x;
79 }
80
81 /* HTML escapes
82 **
83
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -70,13 +70,15 @@
70 if( i >= 0 ){
71 for(j=7; j >= 0; j--){
72 x.b[j] = (unsigned char)(uppercase?'A':'a') + i%26;
73 if( (i /= 26) == 0 ) break;
74 }
75 assert( j > 0 ); /* because 2^32 < 26^7 */
76 for(i=0; i<8-j; i++) x.b[i] = x.b[i+j];
77 for( ; i<8 ; i++) x.b[i] = 0;
78 }
79 assert( x.c[7] == 0 );
80 return x;
81 }
82
83 /* HTML escapes
84 **
85

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button