diff -up magicpoint-1.13a/ctlwords.c~ magicpoint-1.13a/ctlwords.c --- magicpoint-1.13a/ctlwords.c~ 1999-02-15 00:02:25.000000000 +0100 +++ magicpoint-1.13a/ctlwords.c 2012-05-15 12:47:15.217838269 +0200 @@ -23,6 +23,7 @@ BEGIN { #endif #include <stdio.h> +#include <stdlib.h> #include <string.h> main(int argc, char *argv[]) diff -up magicpoint-1.13a/draw.c~ magicpoint-1.13a/draw.c --- magicpoint-1.13a/draw.c~ 2012-05-15 12:45:38.000000000 +0200 +++ magicpoint-1.13a/draw.c 2012-05-15 13:15:23.667815648 +0200 @@ -65,6 +65,9 @@ static struct pcache { #define POSY(size) (-(int)((size)/2)) +/* missing/strlcpy.c */ +size_t strlcpy(char *dst, const char *src, size_t siz); + static void process_direc __P((struct render_state *, int *)); static int set_position __P((struct render_state *)); @@ -81,10 +84,13 @@ static struct render_object *obj_alloc _ static void obj_free __P((struct render_state *, struct render_object *)); static int obj_new_xfont __P((struct render_state *, int, int, int, u_int, char *)); -static int obj_new_image __P((struct render_state *, int, int, Image *, int, int)); #ifdef USE_IMLIB ImlibImage *search_imdata __P((char *)); static int obj_new_image2 __P((struct render_state *, int, int, Image *, int, int, ImlibImage *, int)); +void manage_pixmap(Pixmap pixmap, int add, int page); +Pixmap pixmap_fromimimage(ImlibImage *imimage, int width, int height); +#else +static int obj_new_image __P((struct render_state *, int, int, Image *, int, int)); #endif static int obj_new_icon __P((struct render_state *, int, int, u_int, u_int, u_long, u_int, XPoint *)); static Pixel obj_image_color __P((Image *, Image *, Pixel, int *)); @@ -1198,7 +1204,7 @@ cutin(state, lx, ly, dir) state->maxascent + state->maxdescent, xoff + min(sx, lx), ly + yoff); - } else + } else if (!use_copy) XMoveWindow(display, cutinWin, x + xoff, ly + yoff); XFlush(display); @@ -1788,6 +1794,7 @@ obj_new_xfont(state, x, y, size, code, r return 1; } +#ifndef USE_IMLIB static int obj_new_image(state, x, y, image, xzoom, yzoom) struct render_state *state; @@ -1811,8 +1818,7 @@ obj_new_image(state, x, y, image, xzoom, obj->vertloc = VL_TOP; return 1; } - -#ifdef USE_IMLIB +#else static int obj_new_image2(state, x, y, image, xzoom, yzoom, imimage, zoomonclk) struct render_state *state; @@ -2846,7 +2852,7 @@ draw_onechar_x(state, code, x, y, size, char *seed; char *registry; - if (code >= 0xa0 && ((!argregistry || !argregistry[0]) && mgp_charset)) + if (code >= 0xa0 && (!argregistry || !argregistry[0])) registry = mgp_charset; else registry = argregistry; @@ -2884,7 +2890,7 @@ draw_onechar_x(state, code, x, y, size, fprintf(stderr, "X11 font %s:%d:%s has bogus " "font metric for glyph 0x%04x\n" "\tcs->width=%d, source=%s, coffset=0x%04x\n", - seed, char_size, registry?registry:"NULL", + seed, size, registry?registry:"NULL", code, cs->width, metricsource, coffset); } cs = &xfontstruct->max_bounds; @@ -3059,7 +3065,7 @@ back_gradation(state, cg0) xzoomrate, yzoomrate); fprintf(stderr, "background zoom mode %d: " "(%d, %d)->(%d, %d)[%d]\n", cg->ct_zoomflag, - srcwidth, srcheight, dstwidth, dstheight, b_quality); + srcwidth, srcheight, dstwidth, dstheight, hquality); } if (xzoomrate != 100.0 || yzoomrate != 100.0) { @@ -3312,7 +3318,7 @@ image_load(state, filename, numcolor, xi image = myimage; myimage = zoom(image, xzoomrate, yzoomrate, verbose); if (!image) { - fprintf(stderr, "image zoom (%dx%d) failed in image_load\n", + fprintf(stderr, "image zoom (%fx%f) failed in image_load\n", xzoomrate, yzoomrate); exit(1); } @@ -5243,7 +5249,7 @@ xft_draw_fragment(state, p, len, registr static char prefix[3][20] = { "\033$B", "\033$A", "\033$(C"}; char buf16[1024], *p16; char out16[1024], *o16; - int ileft, oleft; + size_t ileft, oleft; #ifdef HAVE_ICONV static iconv_t icv[3]; #endif @@ -5268,7 +5274,7 @@ xft_draw_fragment(state, p, len, registr if (!strncmp(registry, rtab[i], 3)) break; } if (i == 3) return NULL; /* cannot find codeset */ - sprintf(buf16, "%s%s\0", prefix[i], p); + sprintf(buf16, "%s%s", prefix[i], p); if (icv[i] == (iconv_t)0) icv[i] = iconv_open("UTF-8", etab[i]); if (icv[i] == (iconv_t)-1) { fprintf(stderr, "your iconv doesn't support %s\n", diff -up magicpoint-1.13a/grammar.y.protos magicpoint-1.13a/grammar.y --- magicpoint-1.13a/grammar.y.protos 2008-01-18 18:43:20.000000000 +0100 +++ magicpoint-1.13a/grammar.y 2012-05-15 12:23:49.294857107 +0200 @@ -74,6 +74,7 @@ int n_errors = 0; struct ctrl *root; char *yyfilename; int yylineno; +extern int yylex (void); #ifdef HAVE_STDARG_H /* GCC complains if we declare this function in traditional style */ diff -up magicpoint-1.13a/image/gif.c.xwintoppm magicpoint-1.13a/image/gif.c --- magicpoint-1.13a/image/gif.c.xwintoppm 2000-03-07 07:59:56.000000000 +0100 +++ magicpoint-1.13a/image/gif.c 2012-05-15 12:18:41.071861234 +0200 @@ -103,7 +103,7 @@ gifLoad(fullname, name, verbose) if (GifFile->Image.Left + GifFile->Image.Width > GifFile->SWidth || GifFile->Image.Top + GifFile->Image.Height > GifFile->SHeight) { fprintf(stderr, -"Image %d is not confined to screen dimension, aborted.\n"); +"Image %d is not confined to screen dimension, aborted.\n", GifFile->ImageCount); exit(-2); } if (GifFile->Image.Interlace) { @@ -200,8 +200,8 @@ gifIdent(fullname, name) if (gifp == NULL) ret = 0; else { + tellAboutImage(name, gifp); DGifCloseFile(gifp); - tellAboutImage(name); ret = 1; } return ret; diff -up magicpoint-1.13a/image/path.c.protos magicpoint-1.13a/image/path.c --- magicpoint-1.13a/image/path.c.protos 2004-07-28 17:47:31.000000000 +0200 +++ magicpoint-1.13a/image/path.c 2012-05-15 12:23:44.682857148 +0200 @@ -20,9 +20,7 @@ #if 1 /* SYSV */ #include <unistd.h> #endif -#ifdef __APPLE__ #include <stdlib.h> -#endif /* SUPPRESS 530 */ /* SUPPRESS 560 */ diff -up magicpoint-1.13a/image/pbm.c.xwintoppm magicpoint-1.13a/image/pbm.c --- magicpoint-1.13a/image/pbm.c.xwintoppm 1998-12-28 09:23:14.000000000 +0100 +++ magicpoint-1.13a/image/pbm.c 2012-05-15 12:18:41.072861234 +0200 @@ -359,8 +359,10 @@ Image *pbmLoad(fullname, name, verbose) */ destptr = image->data; - for (y = 0; y < size; y++) - *(destptr++) = PM_SCALE(*destptr, maxval, 0xff); + for (y = 0; y < size; y++) { + *destptr = PM_SCALE(*destptr, maxval, 0xff); + destptr++; + } break; case ITRUE: diff -up magicpoint-1.13a/image/png.c.xwintoppm magicpoint-1.13a/image/png.c --- magicpoint-1.13a/image/png.c.xwintoppm 2001-04-11 10:37:00.000000000 +0200 +++ magicpoint-1.13a/image/png.c 2012-05-15 12:18:41.072861234 +0200 @@ -44,7 +44,7 @@ #define PNG_CHECK_BYTES 4 int -pngIdent(char *fullname, char *name) {} +pngIdent(char *fullname, char *name) {return 0;} Image * pngLoad(fullname, name, verbose) diff -up magicpoint-1.13a/image/window.c.protos magicpoint-1.13a/image/window.c --- magicpoint-1.13a/image/window.c.protos 2004-07-28 17:47:31.000000000 +0200 +++ magicpoint-1.13a/image/window.c 2012-05-15 12:23:44.683857155 +0200 @@ -16,7 +16,7 @@ #include <signal.h> #include <errno.h> #include <sys/types.h> -#ifdef SYSV +#if 1 /* SYSV */ #include <unistd.h> #endif #if TIME_WITH_SYS_TIME @@ -224,7 +224,7 @@ void setViewportColormap(disp, scrn, vis int scrn; Visual *visual; { XSetWindowAttributes swa; - static cmap_atom= None; + static Atom cmap_atom= None; Window cmap_windows[2]; if (cmap_atom == None) diff -up magicpoint-1.13a/image/zoom.c~ magicpoint-1.13a/image/zoom.c --- magicpoint-1.13a/image/zoom.c~ 2003-08-23 08:22:09.000000000 +0200 +++ magicpoint-1.13a/image/zoom.c 2012-05-15 13:39:30.264796267 +0200 @@ -73,7 +73,7 @@ Image *zoom(oimage, xzoom, yzoom, verbos if (verbose) fprintf(stderr, " Zooming image by %0.2f%%...", xzoom); if (oimage->title) - sprintf(buf, "%s (%d%% zoom)", oimage->title, xzoom); + sprintf(buf, "%s (%f%% zoom)", oimage->title, xzoom); } else { if (verbose) diff -up magicpoint-1.13a/mgp.c~ magicpoint-1.13a/mgp.c --- magicpoint-1.13a/mgp.c~ 2008-02-13 15:16:58.000000000 +0100 +++ magicpoint-1.13a/mgp.c 2012-05-15 12:54:50.062832170 +0200 @@ -52,7 +52,7 @@ u_long pl_fh, pl_fw; time_t t_start; u_int t_fin; u_int tbar_mode; -int zoomin = 0; +int zid, zoomin = 0; static int rakugaki = 0; static int rakugaki_x = -1; @@ -112,6 +112,11 @@ static int wantreload __P((void)); /*image*/ extern char *expandPath __P((char *)); +int search_zimage(int x, int y, int page); +void zoomin_zimage(int id); +void zoomout_zimage(int id); +/* missing/strlcpy.c */ +size_t strlcpy(char *dst, const char *src, size_t siz); #ifdef TTY_KEYINPUT static void @@ -896,7 +901,6 @@ main_loop(start_page) if (e.xbutton.button == 1) { struct render_state tstate; tstate = state; - int zid; #ifdef USE_IMLIB if (zoomin == 1){ zoomin = 0; diff -up magicpoint-1.13a/mgp.h.protos magicpoint-1.13a/mgp.h --- magicpoint-1.13a/mgp.h.protos 2008-01-18 18:43:20.000000000 +0100 +++ magicpoint-1.13a/mgp.h 2012-05-15 12:23:49.293857109 +0200 @@ -814,6 +814,7 @@ extern XImage *tfc_image __P((struct tfo /* unimap.c */ extern void latin_unicode_map_init(); +extern void unicode_map_init(); /* embed.c */ extern char *embed_fname __P((char *)); diff -up magicpoint-1.13a/parse.c~ magicpoint-1.13a/parse.c --- magicpoint-1.13a/parse.c~ 2012-05-15 13:35:23.000000000 +0200 +++ magicpoint-1.13a/parse.c 2012-05-15 13:38:44.553796880 +0200 @@ -378,7 +378,7 @@ read_file(fp, filename, page, line, prea struct ctrl **ch; struct ctrl *cp; struct ctrl *p; - int line_cont; + int i, line_cont; char *infilename; struct ctrl *filtermode; int filterfd = -1; @@ -547,7 +547,7 @@ command: while (fgets(buf, sizeof(buf), fp) != NULL) { lineno++; if (filtermode && strncmp(buf, "%endfilter", 10) != 0) { - write(filterfd, buf, strlen(buf)); + i = write(filterfd, buf, strlen(buf)); continue; } { @@ -1259,7 +1259,7 @@ thirdpass() */ { int textseen; - int contseen; + int contseen = 0; for (page = 1; page <= maxpage; page++) { line = page_attribute[page].pg_linenum; for (l = 0; l <= line; l++) { diff -up magicpoint-1.13a/print.c~ magicpoint-1.13a/print.c --- magicpoint-1.13a/print.c~ 2008-01-08 18:49:42.000000000 +0100 +++ magicpoint-1.13a/print.c 2012-05-15 13:22:10.832810193 +0200 @@ -38,6 +38,7 @@ #include <locale.h> #endif #endif +#include <stdint.h> static u_int align = AL_LEFT; static char *curprefix = NULL; @@ -1297,7 +1298,7 @@ icon_output(tp) paintit = (painticon || colorps); - switch ((int)tp->font) { /*XXX*/ + switch ((intptr_t)tp->font) { /*XXX*/ case 0: /* XXX: image is not supported yet */ break; @@ -1658,7 +1659,7 @@ icon_remember(icon, fontsize, offset, co textpool[ntextpool].xoffset = offset; textpool[ntextpool].xsiz = char_size[0]; textpool[ntextpool].size = fontsize; - textpool[ntextpool].font = (struct fontmap *)icon; /*XXX*/ + textpool[ntextpool].font = (struct fontmap *)(intptr_t)icon; /*XXX*/ textpool[ntextpool].text = NULL; textpool[ntextpool].fore = color; textpool[ntextpool].back = back; /*XXX*/ @@ -1806,7 +1807,7 @@ image_remember(cp, pool) break; default: - fprintf(stderr, "rotation by %d degrees not supported.\n", rotate); + fprintf(stderr, "rotation by %d degrees not supported.\n", cp->ctm_rotate); cleanup(-1); } width = myimage->width; @@ -1855,7 +1856,7 @@ noneps: break; default: - fprintf(stderr, "rotation by %d degrees not supported.\n", rotate); + fprintf(stderr, "rotation by %d degrees not supported.\n", cp->ctm_rotate); cleanup(-1); } pool->xsiz = myimage->width; diff -up magicpoint-1.13a/x11.c~ magicpoint-1.13a/x11.c --- magicpoint-1.13a/x11.c~ 2008-01-24 16:43:17.000000000 +0100 +++ magicpoint-1.13a/x11.c 2012-05-15 13:18:30.786813139 +0200 @@ -355,10 +355,11 @@ init_win3() void toggle_fullscreen() { - static fullscreen = 0; + static int fullscreen = 0; XClientMessageEvent xev; - fullscreen = ++fullscreen % 2; + fullscreen ^= 1; + memset(&xev, 0, sizeof(xev)); xev.type=ClientMessage; xev.message_type=XInternAtom(display, "_NET_WM_STATE", False);