diff options
Diffstat (limited to 'app/tools/halibut')
-rw-r--r-- | app/tools/halibut/CMakeLists.txt | 15 | ||||
-rw-r--r-- | app/tools/halibut/bk_html.c | 8 | ||||
-rw-r--r-- | app/tools/halibut/bk_paper.c | 67 | ||||
-rw-r--r-- | app/tools/halibut/charset/CMakeLists.txt | 16 | ||||
-rw-r--r-- | app/tools/halibut/charset/fromucs.c | 6 | ||||
-rw-r--r-- | app/tools/halibut/charset/iso2022.c | 6 | ||||
-rw-r--r-- | app/tools/halibut/charset/test.c | 2 | ||||
-rw-r--r-- | app/tools/halibut/charset/toucs.c | 6 | ||||
-rw-r--r-- | app/tools/halibut/deflate.c | 13 | ||||
-rw-r--r-- | app/tools/halibut/in_afm.c | 22 | ||||
-rw-r--r-- | app/tools/halibut/in_pf.c | 20 | ||||
-rw-r--r-- | app/tools/halibut/input.c | 2 | ||||
-rw-r--r-- | app/tools/halibut/malloc.c | 2 | ||||
-rw-r--r-- | app/tools/halibut/misc.c | 6 | ||||
-rw-r--r-- | app/tools/halibut/paper.h | 4 | ||||
-rw-r--r-- | app/tools/halibut/tree234.c | 2 | ||||
-rw-r--r-- | app/tools/halibut/ustring.c | 16 | ||||
-rw-r--r-- | app/tools/halibut/wcwidth.c | 7 |
18 files changed, 117 insertions, 103 deletions
diff --git a/app/tools/halibut/CMakeLists.txt b/app/tools/halibut/CMakeLists.txt index ec7d74b..a4ddc75 100644 --- a/app/tools/halibut/CMakeLists.txt +++ b/app/tools/halibut/CMakeLists.txt @@ -1,4 +1,5 @@ -SET(SOURCES + +add_executable(halibut biblio.c bk_html.c contents.c @@ -22,11 +23,13 @@ SET(SOURCES ustring.c version.c wcwidth.c - ) +) -INCLUDE_DIRECTORIES(charset) -ADD_EXECUTABLE(halibut ${SOURCES}) -TARGET_LINK_LIBRARIES(halibut xtrkcad-charset) +set_target_properties( + halibut + PROPERTIES FOLDER HelpDocs +) +target_link_libraries(halibut xtrkcad-charset) -ADD_SUBDIRECTORY(charset) +add_subdirectory(charset) diff --git a/app/tools/halibut/bk_html.c b/app/tools/halibut/bk_html.c index b01d035..3e937c5 100644 --- a/app/tools/halibut/bk_html.c +++ b/app/tools/halibut/bk_html.c @@ -1611,8 +1611,8 @@ void html_backend(paragraph *sourceform, keywordlist *keywords, */ if (conf.appletoc_filename) { - htmlsect *s, *top; - htmlfile *f; + htmlsect *s;// , *top; +// htmlfile *f; htmloutput ho; ho.charset = conf.output_charset; ho.restrict_charset = conf.restrict_charset; @@ -2728,7 +2728,7 @@ static char *html_sanitise_fragment(htmlfilelist *files, htmlfile *file, while (add234(files->frags, frag) != frag) { if (!len) { - len = strlen(text); + len = (int)strlen(text); frag->fragment = text = sresize(text, len+20, char); } @@ -2781,7 +2781,7 @@ static char *html_sanitise_filename(htmlfilelist *files, char *text) while (find234(files->files, text, NULL)) { if (!p) { - len = strlen(text); + len = (int)strlen(text); p = text; text = snewn(len+20, char); diff --git a/app/tools/halibut/bk_paper.c b/app/tools/halibut/bk_paper.c index 2e0289c..8c244b8 100644 --- a/app/tools/halibut/bk_paper.c +++ b/app/tools/halibut/bk_paper.c @@ -316,70 +316,70 @@ static paper_conf paper_configure(paragraph *source, font_list *fontlist) { ret.bullet = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"paper-page-width")) { ret.paper_width = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-page-height")) { ret.paper_height = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-left-margin")) { ret.left_margin = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-top-margin")) { ret.top_margin = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-right-margin")) { ret.right_margin = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-bottom-margin")) { ret.bottom_margin = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-list-indent")) { ret.indent_list_bullet = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-listitem-indent")) { ret.indent_list = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-quote-indent")) { ret.indent_quote = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-base-leading")) { ret.base_leading = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-base-para-spacing")) { ret.base_para_spacing = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-chapter-top-space")) { ret.chapter_top_space = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-sect-num-left-space")) { ret.sect_num_left_space = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-chapter-underline-depth")) { ret.chapter_underline_depth = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-chapter-underline-thickness")) { ret.chapter_underline_thickness = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-rule-thickness")) { ret.rule_thickness = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-contents-indent-step")) { ret.contents_indent_step = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-contents-margin")) { ret.contents_margin = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-leader-separation")) { ret.leader_separation = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-index-gutter")) { ret.index_gutter = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-index-minsep")) { ret.index_minsep = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-footer-distance")) { ret.footer_distance = - (int) 0.5 + FUNITS_PER_PT * utof(uadv(p->keyword)); + (int) (0.5 + FUNITS_PER_PT * utof(uadv(p->keyword))); } else if (!ustricmp(p->keyword, L"paper-base-font-size")) { ret.fbase.font_size = utoi(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"paper-index-columns")) { @@ -514,7 +514,7 @@ void *paper_pre_backend(paragraph *sourceform, keywordlist *keywords, int has_index; int pagenum; paragraph index_placeholder_para; - page_data *first_index_page; + page_data *first_index_page = NULL; init_std_fonts(); fontlist = snew(font_list); @@ -1707,7 +1707,7 @@ static void wrap_paragraph(para_data *pdata, word *words, for (p = wrapping; p; p = p->next) { line_data *ldata; - word *wd; +// word *wd; int len, wid, spaces; ldata = snew(line_data); @@ -1732,7 +1732,7 @@ static void wrap_paragraph(para_data *pdata, word *words, spaces = 0; len = paper_width_list(&ctx, ldata->first, ldata->end, &spaces); wid = (p == wrapping ? w - i1 : w - i2); - wd = ldata->first; +// wd = ldata->first; ldata->hshortfall = wid - len; ldata->nspaces = spaces; @@ -1846,8 +1846,8 @@ static page_data *page_breaks(line_data *first, line_data *last, */ if (m != last && m->next && !m->next->page_break) { - int x = (this_height - minheight) / FUNITS_PER_PT * - 4096.0; + int x = (int)((this_height - minheight) / FUNITS_PER_PT * + 4096.0); int xf; xf = x & 0xFF; @@ -1938,8 +1938,8 @@ static page_data *page_breaks(line_data *first, line_data *last, l->page = page; l->ypos = text + space + head; if (page->first_line->space[n]) { - l->ypos += space * (float)page->first_line->vshortfall[n] / - page->first_line->space[n]; + l->ypos += (int)(space * (float)page->first_line->vshortfall[n] / + page->first_line->space[n]); } if (l == page->last_line) @@ -2296,7 +2296,7 @@ static int render_line(line_data *ldata, int left_x, int top_y, xr = NULL; { - int extra_indent, shortfall, spaces; + int extra_indent = 0, shortfall = 0, spaces = 0; int just = ldata->pdata->justification; /* @@ -2344,7 +2344,7 @@ static void render_para(para_data *pdata, paper_conf *conf, keywordlist *keywords, indexdata *idx, paragraph *index_placeholder, page_data *index_page) { - int last_x; + int last_x = 0; xref *cxref; page_data *cxref_page; xref_dest dest; @@ -2530,7 +2530,8 @@ static para_data *code_paragraph(int indent, word *words, paper_conf *conf) w->alt = NULL; w->type = (prev == 0 ? word_WeakCode : prev == 1 ? word_Emph : word_Normal); - w->text = snewn(t-start+1, wchar_t); + w->text = snewn((int)(t-start+1), + wchar_t); memcpy(w->text, start, (t-start) * sizeof(wchar_t)); w->text[t-start] = '\0'; w->breaks = FALSE; @@ -2740,7 +2741,7 @@ static word *fake_end_ref(void) static word *prepare_contents_title(word *first, wchar_t *separator, word *second) { - word *ret; + word *ret = NULL; word **wptr, *w; wptr = &ret; diff --git a/app/tools/halibut/charset/CMakeLists.txt b/app/tools/halibut/charset/CMakeLists.txt index 86521b8..684c70e 100644 --- a/app/tools/halibut/charset/CMakeLists.txt +++ b/app/tools/halibut/charset/CMakeLists.txt @@ -1,4 +1,7 @@ -SET(SOURCES +# +# Character set conversion library as required for halibut + +add_library(xtrkcad-charset big5enc.c big5set.c charset.h @@ -29,10 +32,11 @@ SET(SOURCES utf16.c utf7.c utf8.c - xenc.c - ) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) + xenc.c) -ADD_LIBRARY(xtrkcad-charset ${SOURCES}) +set_target_properties( + xtrkcad-charset + PROPERTIES FOLDER HelpDocs + ) + target_include_directories(xtrkcad-charset PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/app/tools/halibut/charset/fromucs.c b/app/tools/halibut/charset/fromucs.c index 8090c19..3faf48e 100644 --- a/app/tools/halibut/charset/fromucs.c +++ b/app/tools/halibut/charset/fromucs.c @@ -16,7 +16,7 @@ static void charset_emit(void *ctx, long int output) struct charset_emit_param *param = (struct charset_emit_param *)ctx; if (param->outlen > 0) { - *param->output++ = output; + *param->output++ = (char)output; param->outlen--; } else { param->stopped = 1; @@ -47,7 +47,7 @@ int charset_from_unicode(const wchar_t **input, int *inlen, *error = FALSE; while (*inlen > 0) { - int lenbefore = param.output - output; + int lenbefore = (int)(param.output - output); int ret; if (input) @@ -78,5 +78,5 @@ int charset_from_unicode(const wchar_t **input, int *inlen, (*input)++; (*inlen)--; } - return param.output - output; + return (int)(param.output - output); } diff --git a/app/tools/halibut/charset/iso2022.c b/app/tools/halibut/charset/iso2022.c index 8cf3c25..b0492d9 100644 --- a/app/tools/halibut/charset/iso2022.c +++ b/app/tools/halibut/charset/iso2022.c @@ -879,7 +879,7 @@ static void docs_char(charset_state *state, emit(emitctx, '/'); emit(emitctx, '0' + ctext_encodings[curr_cset].octets_per_char); len = currlen + datalen + - strlen(ctext_encodings[curr_cset].name); + (int)strlen(ctext_encodings[curr_cset].name); assert(len < (1 << 14)); emit(emitctx, 0x80 | ((len >> 7) & 0x7F)); emit(emitctx, 0x80 | ((len ) & 0x7F)); @@ -964,7 +964,7 @@ static void docs_char(charset_state *state, static void write_to_pointer(void *ctx, long int output) { char **ptr = (char **)ctx; - *(*ptr)++ = output; + *(*ptr)++ = (char)output; } /* @@ -1195,7 +1195,7 @@ static int write_iso2022(charset_spec const *charset, long int input_chr, } if (cs != -2) { - docs_char(state, emit, emitctx, cs, data, p - data); + docs_char(state, emit, emitctx, cs, data, (int)(p - data)); return TRUE; } } diff --git a/app/tools/halibut/charset/test.c b/app/tools/halibut/charset/test.c index fc5128e..54eab56 100644 --- a/app/tools/halibut/charset/test.c +++ b/app/tools/halibut/charset/test.c @@ -39,7 +39,7 @@ int main(int argc, char **argv) while (1) { - rdret = fread(inbuf, 1, sizeof(inbuf), stdin); + rdret = (int)fread(inbuf, 1, sizeof(inbuf), stdin); if (rdret <= 0) break; /* EOF */ diff --git a/app/tools/halibut/charset/toucs.c b/app/tools/halibut/charset/toucs.c index bee98ab..807001b 100644 --- a/app/tools/halibut/charset/toucs.c +++ b/app/tools/halibut/charset/toucs.c @@ -30,7 +30,7 @@ static void unicode_emit(void *ctx, long int output) outlen = 1; } } else { - outval = output; + outval = (wchar_t)output; p = &outval; outlen = 1; } @@ -65,7 +65,7 @@ int charset_to_unicode(const char **input, int *inlen, localstate = *state; /* structure copy */ while (*inlen > 0) { - int lenbefore = param.output - output; + int lenbefore = (int)(param.output - output); spec->read(spec, (unsigned char)**input, &localstate, unicode_emit, ¶m); if (param.stopped) { @@ -83,5 +83,5 @@ int charset_to_unicode(const char **input, int *inlen, (*inlen)--; } - return param.output - output; + return (int)(param.output - output); } diff --git a/app/tools/halibut/deflate.c b/app/tools/halibut/deflate.c index 685097b..6366708 100644 --- a/app/tools/halibut/deflate.c +++ b/app/tools/halibut/deflate.c @@ -266,6 +266,7 @@ static void lz77_compress(struct LZ77Context *ctx, st->npending -= i; defermatch.len = 0; + defermatch.distance = 0; deferchr = '\0'; while (len > 0) { @@ -1203,7 +1204,7 @@ static void outblock(deflate_compress_ctx *out, */ for (i = 0; i < 19; i++) codelen[i] = len3[lenlenmap[i]]; - for (hclen = 19; hclen > 4 && codelen[hclen-1] == 0; hclen--); + for (hclen = 19; hclen > 4 && codelen[hclen-1] == 0; hclen--){}; /* * Now work out the exact size of both the dynamic and the @@ -1786,8 +1787,9 @@ static struct table *mkonetab(int *codes, unsigned char *lengths, int nsyms, int pfxmask = (1 << pfxbits) - 1; int nbits, i, j, code; - tab->table = snewn(1 << bits, struct tableentry); - tab->mask = (1 << bits) - 1; + int bit = 1 << bits; + tab->table = snewn(bit, struct tableentry); + tab->mask = bit - 1; for (code = 0; code <= tab->mask; code++) { tab->table[code].code = -1; @@ -2041,7 +2043,8 @@ int deflate_decompress_data(deflate_decompress_ctx *dctx, { const coderecord *rec; const unsigned char *block = (const unsigned char *)vblock; - int code, bfinal, btype, rep, dist, nlen, header, cksum; + int code, bfinal, btype, rep, dist, header, cksum; +// int nlen; int error = 0; if (len == 0) { @@ -2440,7 +2443,7 @@ int deflate_decompress_data(deflate_decompress_ctx *dctx, */ if (dctx->nbits < 16) goto finished; - nlen = dctx->bits & 0xFFFF; +// nlen = dctx->bits & 0xFFFF; EATBITS(16); if (dctx->uncomplen == 0) dctx->state = OUTSIDEBLK; /* block is empty */ diff --git a/app/tools/halibut/in_afm.c b/app/tools/halibut/in_afm.c index b2aacae..cb2b39c 100644 --- a/app/tools/halibut/in_afm.c +++ b/app/tools/halibut/in_afm.c @@ -100,56 +100,56 @@ void read_afm_file(input *in) { error(err_afmval, &in->pos, key, 4); goto giveup; } - fi->fontbbox[i] = atof(val); + fi->fontbbox[i] = (float)atof(val); } } else if (strcmp(key, "CapHeight") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->capheight = atof(val); + fi->capheight = (float)atof(val); } else if (strcmp(key, "XHeight") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->xheight = atof(val); + fi->xheight = (float)atof(val); } else if (strcmp(key, "Ascender") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->ascent = atof(val); + fi->ascent = (float)atof(val); } else if (strcmp(key, "Descender") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->descent = atof(val); + fi->descent = (float)atof(val); } else if (strcmp(key, "CapHeight") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->capheight = atof(val); + fi->capheight = (float)atof(val); } else if (strcmp(key, "StdHW") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->stemh = atof(val); + fi->stemh = (float)atof(val); } else if (strcmp(key, "StdVW") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->stemv = atof(val); + fi->stemv = (float)atof(val); } else if (strcmp(key, "ItalicAngle") == 0) { if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } - fi->italicangle = atof(val); + fi->italicangle = (float)atof(val); } else if (strcmp(key, "StartCharMetrics") == 0) { int nglyphs, i; if (!(val = strtok(NULL, " \t"))) { @@ -229,14 +229,14 @@ void read_afm_file(input *in) { } else if (strcmp(key, "StartKernPairs") == 0 || strcmp(key, "StartKernPairs0") == 0) { int nkerns, i; - kern_pair *kerns; +// kern_pair *kerns; if (!(val = strtok(NULL, " \t"))) { error(err_afmval, &in->pos, key, 1); goto giveup; } nkerns = atoi(val); sfree(line); - kerns = snewn(nkerns, kern_pair); +// kerns = snewn(nkerns, kern_pair); for (i = 0; i < nkerns; i++) { line = afm_read_line(in); if (line == NULL) diff --git a/app/tools/halibut/in_pf.c b/app/tools/halibut/in_pf.c index 3df6d37..a50dce0 100644 --- a/app/tools/halibut/in_pf.c +++ b/app/tools/halibut/in_pf.c @@ -22,6 +22,8 @@ typedef struct t1_font_Tag t1_font; typedef struct t1_data_Tag t1_data; +font_info *all_fonts; + struct t1_font_Tag { t1_data *data; size_t length1; @@ -68,7 +70,7 @@ static t1_data *load_pfb_file(FILE *fp, filepos *pos) { if (c == EOF) abort(); tail->length |= c << (8 * i); } - tail->data = snewn(tail->length, unsigned char); + tail->data = snewn((int)tail->length, unsigned char); if (fread(tail->data, 1, tail->length, fp) != tail->length) abort(); } } @@ -80,15 +82,15 @@ static t1_data *load_pfa_file(FILE *fp, filepos *pos) { pos->line = 0; ret->type = PFB_ASCII; len = 32768; - ret->data = snewn(len, unsigned char); + ret->data = snewn((int)len, unsigned char); for (;;) { got = fread(ret->data + off, 1, len - off, fp); off += got; if (off != len) break; len *= 2; - ret->data = sresize(ret->data, len, unsigned char); + ret->data = sresize(ret->data, (int)len, unsigned char); } - ret->data = sresize(ret->data, off, unsigned char); + ret->data = sresize(ret->data, (int)off, unsigned char); ret->length = off; return ret; } @@ -189,7 +191,7 @@ static void pf_identify(t1_font *tf) { p++; p += strspn(p, " \t"); len = strcspn(p, " \t"); - fontname = snewn(len + 1, char); + fontname = snewn((int)len + 1, char); memcpy(fontname, p, len); fontname[len] = 0; sfree(rsc.text); @@ -283,11 +285,11 @@ static void pf_getascii(t1_font *tf, size_t off, size_t len, while (td && len) { blk = len < td->length ? len : td->length; if (td->type == PFB_ASCII) { - *bufp = sresize(*bufp, *lenp + blk, char); + *bufp = sresize(*bufp, (int)(*lenp + blk), char); memcpy(*bufp + *lenp, td->data + off, blk); *lenp += blk; } else { - *bufp = sresize(*bufp, *lenp + blk * 2 + blk / 39 + 3, char); + *bufp = sresize(*bufp, (int)(*lenp + blk * 2 + blk / 39 + 3), char); p = *bufp + *lenp; for (i = 0; i < blk; i++) { if (i % 39 == 0) p += sprintf(p, "\n"); @@ -334,11 +336,11 @@ static void pf_getbinary(t1_font *tf, size_t off, size_t len, while (td && len) { blk = len < td->length ? len : td->length; if (td->type == PFB_BINARY) { - *bufp = sresize(*bufp, *lenp + blk, char); + *bufp = sresize(*bufp, (int)(*lenp + blk), char); memcpy(*bufp + *lenp, td->data + off, blk); *lenp += blk; } else { - *bufp = sresize(*bufp, *lenp + blk / 2 + 1, char); + *bufp = sresize(*bufp, (int)(*lenp + blk / 2 + 1), char); p = *bufp + *lenp; for (i = 0; i < blk; i++) { if (pf_isspace(td->data[off + i])) continue; diff --git a/app/tools/halibut/input.c b/app/tools/halibut/input.c index 256d9c6..0f38569 100644 --- a/app/tools/halibut/input.c +++ b/app/tools/halibut/input.c @@ -831,7 +831,7 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, */ par.type = para_Normal; if (t.type == tok_cmd) { - int needkw; + int needkw = -1; int is_macro = FALSE; par.fpos = t.pos; diff --git a/app/tools/halibut/malloc.c b/app/tools/halibut/malloc.c index 2ff22fd..32f286a 100644 --- a/app/tools/halibut/malloc.c +++ b/app/tools/halibut/malloc.c @@ -92,7 +92,7 @@ void *(srealloc)(LOGPARAMS void *p, int size) { * of smalloc (and also reliably defined in all environments :-) */ char *dupstr(char *s) { - char *r = smalloc(1+strlen(s)); + char *r = smalloc(1+(int)strlen(s)); strcpy(r,s); return r; } diff --git a/app/tools/halibut/misc.c b/app/tools/halibut/misc.c index 3f2483c..c0e86e4 100644 --- a/app/tools/halibut/misc.c +++ b/app/tools/halibut/misc.c @@ -90,7 +90,7 @@ void rdaddc(rdstringc *rs, char c) { rs->text[rs->pos] = 0; } void rdaddsc(rdstringc *rs, char const *p) { - rdaddsn(rs, p, strlen(p)); + rdaddsn(rs, p, (int)strlen(p)); } void rdaddsn(rdstringc *rs, char const *p, int len) { if (rs->pos >= rs->size - len) { @@ -527,7 +527,7 @@ void cmdline_cfg_add(paragraph *cfg, char *string) ulen += 1 + ustrlen(cfg->keyword+ulen); len = 0; while (cfg->origkeyword[len]) - len += 1 + strlen(cfg->origkeyword+len); + len += 1 + (int)strlen(cfg->origkeyword+len); ustring = ufroma_locale_dup(string); @@ -538,7 +538,7 @@ void cmdline_cfg_add(paragraph *cfg, char *string) cfg->keyword[ulen-1] = L'\0'; pos = len; - len += 2 + strlen(string); + len += 2 + (int)strlen(string); cfg->origkeyword = sresize(cfg->origkeyword, len, char); strcpy(cfg->origkeyword+pos, string); cfg->origkeyword[len-1] = '\0'; diff --git a/app/tools/halibut/paper.h b/app/tools/halibut/paper.h index 29d6407..959accd 100644 --- a/app/tools/halibut/paper.h +++ b/app/tools/halibut/paper.h @@ -78,8 +78,6 @@ struct ligature_Tag { * metrics are read in. */ -font_info *all_fonts; - struct font_info_Tag { font_info *next; /* @@ -118,6 +116,8 @@ struct font_info_Tag { float italicangle; }; +extern font_info *all_fonts; + /* * This structure holds the information about how a font is used * in a document. diff --git a/app/tools/halibut/tree234.c b/app/tools/halibut/tree234.c index 26d188e..e971453 100644 --- a/app/tools/halibut/tree234.c +++ b/app/tools/halibut/tree234.c @@ -1162,7 +1162,7 @@ tree234 *join234r(tree234 *t1, tree234 *t2) { static node234 *split234_internal(tree234 *t, int index) { node234 *halves[2], *n, *sib, *sub; node234 *lparent, *rparent; - int ki, pki, i, half, lcount, rcount; + int ki, pki = 0, i, half, lcount, rcount; n = t->root; LOG(("splitting tree %p at point %d\n", t, index)); diff --git a/app/tools/halibut/ustring.c b/app/tools/halibut/ustring.c index 95477a5..99303ef 100644 --- a/app/tools/halibut/ustring.c +++ b/app/tools/halibut/ustring.c @@ -72,7 +72,7 @@ wchar_t *ustrfroma(char const *s, wchar_t *outbuf, int size, int charset) { return outbuf; } - len = strlen(s); + len = (int)strlen(s); size--; /* allow for terminating NUL */ *outbuf = L'\0'; while (len > 0) { @@ -155,7 +155,7 @@ wchar_t *ufroma_dup(char const *s, int charset) { int len; wchar_t *buf = NULL; - len = strlen(s) + 1; + len = (int)strlen(s) + 1; do { buf = sresize(buf, len, wchar_t); ustrfroma(s, buf, len, charset); @@ -184,7 +184,7 @@ char *utoa_locale_dup(wchar_t const *s) if (siz) { assert(siz <= (size_t)(MB_CUR_MAX * len)); ret[siz] = '\0'; - ret = sresize(ret, siz+1, char); + ret = sresize(ret, (int)siz+1, char); return ret; } @@ -206,7 +206,7 @@ wchar_t *ufroma_locale_dup(char const *s) int len; size_t siz; - len = strlen(s); + len = (int)strlen(s); ret = snewn(1 + 2*len, wchar_t); /* be conservative */ @@ -215,7 +215,7 @@ wchar_t *ufroma_locale_dup(char const *s) if (siz) { assert(siz <= (size_t)(2 * len)); ret[siz] = L'\0'; - ret = sresize(ret, siz+1, wchar_t); + ret = sresize(ret, (int)siz+1, wchar_t); return ret; } @@ -323,12 +323,12 @@ wchar_t *ustrlow(wchar_t *s) { } int utoi(wchar_t const *s) { - int sign = +1; +// int sign = +1; int n; if (*s == L'-') { s++; - sign = -1; +// sign = -1; } n = 0; @@ -429,7 +429,7 @@ wchar_t *ustrftime(const wchar_t *wfmt, const struct tm *timespec) rdadd(&rs, L'%'); wfmt += 2; } else if (wfmt[0] == L'%' && wfmt[1]) { - ustrftime_internal(&rs, wfmt[1], timespec); + ustrftime_internal(&rs, (char)(wfmt[1]), timespec); wfmt += 2; } else { rdadd(&rs, wfmt[0]); diff --git a/app/tools/halibut/wcwidth.c b/app/tools/halibut/wcwidth.c index 269359f..0ffe9dd 100644 --- a/app/tools/halibut/wcwidth.c +++ b/app/tools/halibut/wcwidth.c @@ -144,12 +144,13 @@ int ustrwid(wchar_t const *s, int charset) wid = 0; while (len > 0) { - int err, ret; + int err; +// int ret; wchar_t const *s_orig; err = 0; s_orig = s; - ret = charset_from_unicode(&s, &len, buf, lenof(buf), + /*ret =*/ charset_from_unicode(&s, &len, buf, lenof(buf), charset, &state, &err); wid += wcswidth(s_orig, s - s_orig); if (err) { @@ -165,7 +166,7 @@ int ustrwid(wchar_t const *s, int charset) int strwid(char const *s, int charset) { wchar_t buf[256]; - int wid, len = strlen(s); + int wid, len = (int)strlen(s); charset_state state = CHARSET_INIT_STATE; wid = 0; |