Fix for #113445. Minor code clean-up for Van-Gogh plug-in (lic).

This commit is contained in:
Maurits Rijk
2003-05-25 20:10:24 +00:00
parent dd9a0a4a63
commit 1f33558c2f
9 changed files with 261 additions and 317 deletions

View File

@ -1,3 +1,15 @@
2003-05-25 Maurits Rijk <lpeek.mrijk@consunet.nl>
* plug-ins/imagemap/imap_csim_parse.[ch]: regenerated
* plug-ins/imagemap/imap_main.c (save_as_csim): write quoted WIDTH,
TAG and BORDER tags.
* plug-ins/imagemap/Makefile.am: added -i flag to lex to generate
case-insensitive scanners.
* plug-ins/imagemap/imap_csim.y: parse now accepts both tag=FLOAT and
tag="FLOAT" to support both old and newstyle HTML. Should fix #113445.
* plug-ins/common/lic.c: minor code clean-up
2003-05-25 Michael Natterer <mitch@gimp.org>
* app/tools/tool_manager.[ch] (tool_manager_set,get): Use

View File

@ -54,8 +54,6 @@
#define CHECKBOUNDS(x,y) (x>=0 && y>=0 && x<width && y<height)
#define EPSILON 1.0e-5
#define numx 40 /* Pseudo-random vector grid size */
#define numy 40
@ -397,11 +395,7 @@ lic_noise (gint x,
i = (i - minv) / (maxv - minv);
if (i < 0.0)
i = 0.0;
if (i > 1.0)
i = 1.0;
i = CLAMP (i, 0.0, 1.0);
i = (i / 2.0) + 0.5;
@ -485,68 +479,35 @@ lic_image (gint x,
}
static gdouble
get_hue (GimpRGB *col)
get_hue (const GimpRGB *col)
{
gdouble max, min, delta;
gdouble hue = -1.0;
GimpHSL hsl;
max = gimp_rgb_max (col);
min = gimp_rgb_min (col);
if (max == min)
{
hue = -1.0;
}
else
{
delta = max - min;
if (col->r == max)
hue = (col->g - col->b) / delta;
else if (col->g == max)
hue = 2.0 + (col->b - col->r) / delta;
else if (col->b == max)
hue = 4.0 + (col->r - col->g) / delta;
hue *= 60.0;
if (hue < 0.0)
hue += 360.0;
}
return hue;
gimp_rgb_to_hsl (col, &hsl);
return hsl.h;
}
static gdouble
get_saturation (GimpRGB *col)
get_saturation (const GimpRGB *col)
{
gdouble max, min, l;
gdouble sat;
GimpHSL hsl;
max = gimp_rgb_max (col);
min = gimp_rgb_min (col);
if (max == min)
{
sat = 0.0;
}
else
{
l = (max + min) / 2.0;
if (l <= 0.5)
sat = (max - min) / (max + min);
else
sat = (max - min) / (2.0 - max - min);
}
return sat;
gimp_rgb_to_hsl (col, &hsl);
return hsl.s;
}
static gdouble
get_brightness (GimpRGB *col)
get_brightness (const GimpRGB *col)
{
return (gimp_rgb_max (col) + gimp_rgb_min (col)) / 2.0;
GimpHSL hsl;
gimp_rgb_to_hsl (col, &hsl);
return hsl.l;
}
static guchar*
rgb_to_hsl (GimpDrawable *image,
gdouble (*hsl_func)(GimpRGB *col))
gdouble (*hsl_func)(const GimpRGB *col))
{
guchar *themap, data[4];
gint w, h, x, y;
@ -601,7 +562,7 @@ rgb_to_brightness (GimpDrawable *image)
}
static void
compute_lic_derivative (void)
compute_lic (gboolean rotate)
{
gint xcount, ycount;
glong counter = 0;
@ -612,61 +573,19 @@ compute_lic_derivative (void)
{
for (xcount = 0; xcount < width; xcount++)
{
/* Get direction vector at (x,y) and normalize it */
/* ============================================== */
vx = gradx (scalarfield, xcount, ycount);
vy = grady (scalarfield, xcount, ycount);
tmp = sqrt (vx * vx + vy * vy);
if (tmp != 0.0)
{
tmp = 1.0 / tmp;
vx *= tmp;
vy *= tmp;
}
/* Convolve with the LIC at (x,y) */
/* ============================== */
if (licvals.effect_convolve == 0)
{
color = peek (xcount, ycount);
tmp = lic_noise (xcount, ycount, vx, vy);
gimp_rgb_multiply (&color, tmp);
}
else
lic_image (xcount, ycount, vx, vy, &color);
poke (xcount, ycount, &color);
counter++;
if ((counter % width) == 0)
gimp_progress_update ((gfloat) counter / (gfloat) maxcounter);
}
}
}
static void
compute_lic_gradient (void)
{
gint xcount, ycount;
glong counter = 0;
GimpRGB color;
gdouble vx, vy, tmp;
for (ycount = 0; ycount < height; ycount++)
{
for (xcount = 0; xcount < width; xcount++)
{
/* Get derivative at (x,y), rotate it 90 degrees and normalize it */
/* Get derivative at (x,y) and normalize it */
/* ============================================================== */
vx = gradx (scalarfield, xcount, ycount);
vy = grady (scalarfield, xcount, ycount);
vx = -1.0 * vx; tmp = vy; vy = vx; vx = tmp;
/* Rotate if needed */
if (rotate)
{
tmp = vy;
vy = -vx;
vx = tmp;
}
tmp = sqrt (vx * vx + vy * vy);
if (tmp != 0.0)
@ -751,10 +670,7 @@ compute_image (void)
break;
}
if (licvals.effect_operator == 0)
compute_lic_derivative ();
else
compute_lic_gradient ();
compute_lic (licvals.effect_operator);
g_free (scalarfield);
@ -795,7 +711,7 @@ effect_image_constrain (gint32 image_id,
gpointer data)
{
if (drawable_id == -1)
return(TRUE);
return TRUE;
return gimp_drawable_is_rgb (drawable_id);
}
@ -990,9 +906,6 @@ create_main_dialog (void)
/******************/
static void lic_interactive (GimpDrawable *drawable);
/*
static void lic_noninteractive (GimpDrawable *drawable);
*/
/*************************************/
/* Set parameters to standard values */
@ -1137,12 +1050,4 @@ lic_interactive (GimpDrawable *drawable)
gdk_flush ();
}
/*
static void
lic_noninteractive (GimpDrawable *drawable)
{
g_message ("Noninteractive not yet implemented! Sorry.\n");
}
*/
MAIN ()

View File

@ -155,7 +155,7 @@ LDADD = \
## code (cern_, csim_, ncsa_).
## Require flex because the standard lex does not support the -P option.
LEX=flex
LEX=flex -i
YACC=bison -y
imap_cern_lex.c: imap_cern.l

View File

@ -4,7 +4,7 @@
*
* Generates clickable image maps.
*
* Copyright (C) 1998-1999 Maurits Rijk lpeek.mrijk@consunet.nl
* Copyright (C) 1998-2003 Maurits Rijk lpeek.mrijk@consunet.nl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -57,6 +57,8 @@ static MapInfo_t *_map_info;
%token<value> FLOAT
%token<id> STRING
%type<val> integer_value
%%
csim_file : image start_map comment_lines area_list end_map
@ -74,20 +76,30 @@ image_tags : /* Empty */
image_tag : image_width
| image_height
| BORDER '=' FLOAT {}
| BORDER '=' integer_value {}
| USEMAP '=' STRING {}
| ALT '=' STRING {}
;
image_width : WIDTH '=' FLOAT
image_width : WIDTH '=' integer_value
{
_map_info->old_image_width = (gint) $3;
_map_info->old_image_width = $3;
}
;
image_height : HEIGHT '=' FLOAT
image_height : HEIGHT '=' integer_value
{
_map_info->old_image_height = (gint) $3;
_map_info->old_image_height = $3;
}
;
integer_value : FLOAT
{
$$ = (gint) $1;
}
| STRING
{
$$ = (gint) atof($1);
}
;

View File

@ -44,7 +44,7 @@
*
* Generates clickable image maps.
*
* Copyright (C) 1998-1999 Maurits Rijk lpeek.mrijk@consunet.nl
* Copyright (C) 1998-2003 Maurits Rijk lpeek.mrijk@consunet.nl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -99,12 +99,12 @@ typedef union {
#define YYFINAL 101
#define YYFINAL 103
#define YYFLAG -32768
#define YYNTBASE 33
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
#define YYTRANSLATE(x) ((unsigned)(x) <= 282 ? yytranslate[x] : 61)
#define YYTRANSLATE(x) ((unsigned)(x) <= 282 ? yytranslate[x] : 62)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
@ -144,29 +144,30 @@ static const char yytranslate[] =
static const short yyprhs[] =
{
0, 0, 6, 14, 15, 18, 20, 22, 26, 30,
34, 38, 42, 49, 50, 53, 55, 57, 59, 63,
67, 71, 72, 75, 80, 82, 85, 86, 89, 91,
93, 95, 97, 99, 101, 103, 105, 107, 109, 113,
117, 121, 123, 127, 131, 135, 139, 143, 147
34, 38, 42, 44, 46, 53, 54, 57, 59, 61,
63, 67, 71, 75, 76, 79, 84, 86, 89, 90,
93, 95, 97, 99, 101, 103, 105, 107, 109, 111,
113, 117, 121, 125, 127, 131, 135, 139, 143, 147,
151
};
static const short yyrhs[] =
{
34, 39, 40, 45, 60, 0, 29, 3, 4, 30,
28, 35, 47, 0, 0, 35, 36, 0, 37, 0,
38, 0, 7, 30, 27, 0, 8, 30, 28, 0,
15, 30, 28, 0, 5, 30, 27, 0, 6, 30,
27, 0, 29, 9, 11, 30, 28, 31, 0, 0,
40, 41, 0, 43, 0, 44, 0, 42, 0, 25,
28, 26, 0, 23, 28, 26, 0, 24, 28, 26,
0, 0, 45, 46, 0, 29, 12, 48, 47, 0,
31, 0, 32, 31, 0, 0, 48, 49, 0, 50,
0, 51, 0, 52, 0, 53, 0, 54, 0, 55,
0, 56, 0, 57, 0, 58, 0, 59, 0, 13,
30, 28, 0, 14, 30, 28, 0, 16, 30, 28,
0, 17, 0, 15, 30, 28, 0, 18, 30, 28,
0, 19, 30, 28, 0, 20, 30, 28, 0, 21,
30, 28, 0, 22, 30, 28, 0, 29, 10, 31,
0
34, 40, 41, 46, 61, 0, 29, 3, 4, 30,
28, 35, 48, 0, 0, 35, 36, 0, 37, 0,
38, 0, 7, 30, 39, 0, 8, 30, 28, 0,
15, 30, 28, 0, 5, 30, 39, 0, 6, 30,
39, 0, 27, 0, 28, 0, 29, 9, 11, 30,
28, 31, 0, 0, 41, 42, 0, 44, 0, 45,
0, 43, 0, 25, 28, 26, 0, 23, 28, 26,
0, 24, 28, 26, 0, 0, 46, 47, 0, 29,
12, 49, 48, 0, 31, 0, 32, 31, 0, 0,
49, 50, 0, 51, 0, 52, 0, 53, 0, 54,
0, 55, 0, 56, 0, 57, 0, 58, 0, 59,
0, 60, 0, 13, 30, 28, 0, 14, 30, 28,
0, 16, 30, 28, 0, 17, 0, 15, 30, 28,
0, 18, 30, 28, 0, 19, 30, 28, 0, 20,
30, 28, 0, 21, 30, 28, 0, 22, 30, 28,
0, 29, 10, 31, 0
};
#endif
@ -175,11 +176,12 @@ static const short yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
0, 62, 65, 71, 72, 75, 76, 77, 78, 79,
82, 88, 94, 100, 101, 104, 105, 106, 109, 114,
121, 131, 132, 135, 142, 143, 146, 147, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 162, 179,
237, 247, 252, 258, 264, 270, 276, 282, 288
0, 64, 67, 73, 74, 77, 78, 79, 80, 81,
84, 90, 96, 100, 106, 112, 113, 116, 117, 118,
121, 126, 133, 143, 144, 147, 154, 155, 158, 159,
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
174, 191, 249, 259, 264, 270, 276, 282, 288, 294,
300
};
#endif
@ -195,11 +197,12 @@ static const char *const yytname[] =
"ONFOCUS", "ONBLUR", "AUTHOR", "DESCRIPTION", "BEGIN_COMMENT",
"END_COMMENT", "FLOAT", "STRING", "'<'", "'='", "'>'", "'/'",
"csim_file", "image", "image_tags", "image_tag", "image_width",
"image_height", "start_map", "comment_lines", "comment_line",
"real_comment", "author_line", "description_line", "area_list", "area",
"xhtml_close", "tag_list", "tag", "shape_tag", "coords_tag", "href_tag",
"nohref_tag", "alt_tag", "target_tag", "onmouseover_tag",
"onmouseout_tag", "onfocus_tag", "onblur_tag", "end_map", 0
"image_height", "integer_value", "start_map", "comment_lines",
"comment_line", "real_comment", "author_line", "description_line",
"area_list", "area", "xhtml_close", "tag_list", "tag", "shape_tag",
"coords_tag", "href_tag", "nohref_tag", "alt_tag", "target_tag",
"onmouseover_tag", "onmouseout_tag", "onfocus_tag", "onblur_tag",
"end_map", 0
};
#endif
@ -207,20 +210,22 @@ static const char *const yytname[] =
static const short yyr1[] =
{
0, 33, 34, 35, 35, 36, 36, 36, 36, 36,
37, 38, 39, 40, 40, 41, 41, 41, 42, 43,
44, 45, 45, 46, 47, 47, 48, 48, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60
37, 38, 39, 39, 40, 41, 41, 42, 42, 42,
43, 44, 45, 46, 46, 47, 48, 48, 49, 49,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
0, 5, 7, 0, 2, 1, 1, 3, 3, 3,
3, 3, 6, 0, 2, 1, 1, 1, 3, 3,
3, 0, 2, 4, 1, 2, 0, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
3, 1, 3, 3, 3, 3, 3, 3, 3
3, 3, 1, 1, 6, 0, 2, 1, 1, 1,
3, 3, 3, 0, 2, 4, 1, 2, 0, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 3, 3, 1, 3, 3, 3, 3, 3, 3,
3
};
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
@ -228,76 +233,74 @@ static const short yyr2[] =
error. */
static const short yydefact[] =
{
0, 0, 0, 0, 0, 13, 0, 0, 21, 0,
0, 0, 0, 0, 14, 17, 15, 16, 0, 3,
0, 0, 0, 0, 0, 22, 1, 0, 0, 19,
20, 18, 0, 26, 0, 0, 0, 0, 0, 24,
0, 4, 5, 6, 2, 12, 48, 0, 0, 0,
0, 0, 0, 25, 0, 0, 0, 0, 41, 0,
0, 0, 0, 0, 23, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 10, 11, 7, 8,
9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
38, 39, 42, 40, 43, 44, 45, 46, 47, 0,
0, 0
0, 0, 0, 0, 0, 15, 0, 0, 23, 0,
0, 0, 0, 0, 16, 19, 17, 18, 0, 3,
0, 0, 0, 0, 0, 24, 1, 0, 0, 21,
22, 20, 0, 28, 0, 0, 0, 0, 0, 26,
0, 4, 5, 6, 2, 14, 50, 0, 0, 0,
0, 0, 0, 27, 0, 0, 0, 0, 43, 0,
0, 0, 0, 0, 25, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 12, 13, 10, 11,
7, 8, 9, 0, 0, 0, 0, 0, 0, 0,
0, 0, 40, 41, 44, 42, 45, 46, 47, 48,
49, 0, 0, 0
};
static const short yydefgoto[] =
{
99, 2, 27, 41, 42, 43, 5, 8, 14, 15,
16, 17, 18, 25, 44, 47, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 26
101, 2, 27, 41, 42, 43, 78, 5, 8, 14,
15, 16, 17, 18, 25, 44, 47, 65, 66, 67,
68, 69, 70, 71, 72, 73, 74, 75, 26
};
static const short yypact[] =
{
-21, 18, -7, 19, 15,-32768, 1, 14, -19, 0,
2, 5, 6, 7,-32768,-32768,-32768,-32768, 8,-32768,
10, 13, 16, 17, -3,-32768,-32768, -5, 9,-32768,
-32768,-32768, 20,-32768, 11, 22, 23, 24, 25,-32768,
26,-32768,-32768,-32768,-32768,-32768,-32768, -2, 21, 29,
31, 32, 33,-32768, 34, 35, 36, 37,-32768, 38,
39, 40, 41, 42,-32768,-32768,-32768,-32768,-32768,-32768,
-21, 22, -1, 27, 23,-32768, 3, 24, -19, 6,
7, 8, 10, 11,-32768,-32768,-32768,-32768, 12,-32768,
14, 17, 18, 19, -3,-32768,-32768, -5, 9,-32768,
-32768,-32768, 15,-32768, 20, 21, 25, 26, 28,-32768,
16,-32768,-32768,-32768,-32768,-32768,-32768, -2, -6, -6,
-6, 29, 31,-32768, 30, 32, 33, 34,-32768, 35,
36, 37, 38, 39,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 44,
59,-32768
-32768,-32768,-32768, 42, 43, 44, 45, 46, 47, 48,
49, 50,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 52, 53,-32768
};
static const short yypgoto[] =
{
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768
-32768,-32768,-32768,-32768,-32768,-32768, -26,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768, 1,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768
};
#define YYLAST 81
#define YYLAST 78
static const short yytable[] =
{
34, 35, 36, 37, 11, 12, 13, 32, 1, 33,
38, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 3, 4, 6, 7, 10, 39, 40, 19, 39,
40, 9, 20, 21, 22, 23, 64, 24, 28, 29,
45, 48, 30, 31, 100, 0, 0, 0, 76, 0,
0, 46, 49, 50, 51, 52, 77, 53, 78, 101,
79, 80, 0, 0, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98
63, 76, 77, 79, 80, 3, 39, 40, 4, 39,
40, 6, 7, 9, 19, 10, 21, 20, 22, 23,
45, 24, 28, 29, 30, 31, 46, 53, 64, 0,
48, 49, 102, 103, 0, 50, 51, 81, 52, 82,
83, 0, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100
};
static const short yycheck[] =
{
5, 6, 7, 8, 23, 24, 25, 10, 29, 12,
15, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 3, 29, 4, 9, 11, 31, 32, 28, 31,
32, 30, 30, 28, 28, 28, 47, 29, 28, 26,
31, 30, 26, 26, 0, -1, -1, -1, 27, -1,
-1, 31, 30, 30, 30, 30, 27, 31, 27, 0,
28, 28, -1, -1, 30, 30, 30, 30, 30, 30,
30, 30, 30, 28, 28, 28, 28, 28, 28, 28,
28, 28
22, 27, 28, 49, 50, 3, 31, 32, 29, 31,
32, 4, 9, 30, 28, 11, 28, 30, 28, 28,
31, 29, 28, 26, 26, 26, 31, 31, 47, -1,
30, 30, 0, 0, -1, 30, 30, 28, 30, 28,
30, -1, 30, 30, 30, 30, 30, 30, 30, 30,
28, 28, 28, 28, 28, 28, 28, 28, 28
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison/bison.simple"
@ -1007,72 +1010,84 @@ yyreduce:
switch (yyn) {
case 2:
#line 66 "imap_csim.y"
#line 68 "imap_csim.y"
{
g_strreplace(&_map_info->image_name, yyvsp[-2].id);
;
break;}
}
break;
case 7:
#line 77 "imap_csim.y"
{;
break;}
case 8:
#line 78 "imap_csim.y"
{;
break;}
case 9:
#line 79 "imap_csim.y"
{;
break;}
{}
break;
case 8:
#line 80 "imap_csim.y"
{}
break;
case 9:
#line 81 "imap_csim.y"
{}
break;
case 10:
#line 83 "imap_csim.y"
#line 85 "imap_csim.y"
{
_map_info->old_image_width = (gint) yyvsp[0].value;
;
break;}
_map_info->old_image_width = yyvsp[0].val;
}
break;
case 11:
#line 89 "imap_csim.y"
#line 91 "imap_csim.y"
{
_map_info->old_image_height = (gint) yyvsp[0].value;
;
break;}
_map_info->old_image_height = yyvsp[0].val;
}
break;
case 12:
#line 95 "imap_csim.y"
#line 97 "imap_csim.y"
{
yyval.val = (gint) yyvsp[0].value;
}
break;
case 13:
#line 101 "imap_csim.y"
{
yyval.val = (gint) atof(yyvsp[0].id);
}
break;
case 14:
#line 107 "imap_csim.y"
{
g_strreplace(&_map_info->title, yyvsp[-1].id);
;
break;}
case 18:
#line 110 "imap_csim.y"
}
break;
case 20:
#line 122 "imap_csim.y"
{
;
break;}
case 19:
#line 115 "imap_csim.y"
}
break;
case 21:
#line 127 "imap_csim.y"
{
g_strreplace(&_map_info->author, yyvsp[-1].id);
;
break;}
case 20:
#line 122 "imap_csim.y"
}
break;
case 22:
#line 134 "imap_csim.y"
{
gchar *description;
description = g_strconcat(_map_info->description, yyvsp[-1].id, "\n",
NULL);
g_strreplace(&_map_info->description, description);
;
break;}
case 23:
#line 136 "imap_csim.y"
}
break;
case 25:
#line 148 "imap_csim.y"
{
if (current_type != UNDEFINED)
add_shape(current_object);
;
break;}
case 38:
#line 163 "imap_csim.y"
}
break;
case 40:
#line 175 "imap_csim.y"
{
if (!g_ascii_strcasecmp(yyvsp[0].id, "RECT")) {
current_object = create_rectangle(0, 0, 0, 0);
@ -1086,10 +1101,10 @@ case 38:
} else if (!g_ascii_strcasecmp(yyvsp[0].id, "DEFAULT")) {
current_type = UNDEFINED;
}
;
break;}
case 39:
#line 180 "imap_csim.y"
}
break;
case 41:
#line 192 "imap_csim.y"
{
char *p;
if (current_type == RECTANGLE) {
@ -1144,59 +1159,59 @@ case 39:
polygon_remove_last_point(polygon);
polygon->points = points;
}
;
break;}
case 40:
#line 238 "imap_csim.y"
}
break;
case 42:
#line 250 "imap_csim.y"
{
if (current_type == UNDEFINED) {
g_strreplace(&_map_info->default_url, yyvsp[0].id);
} else {
object_set_url(current_object, yyvsp[0].id);
}
;
break;}
case 41:
#line 248 "imap_csim.y"
{
;
break;}
case 42:
#line 253 "imap_csim.y"
{
object_set_comment(current_object, yyvsp[0].id);
;
break;}
}
break;
case 43:
#line 259 "imap_csim.y"
#line 260 "imap_csim.y"
{
object_set_target(current_object, yyvsp[0].id);
;
break;}
}
break;
case 44:
#line 265 "imap_csim.y"
{
object_set_mouse_over(current_object, yyvsp[0].id);
;
break;}
object_set_comment(current_object, yyvsp[0].id);
}
break;
case 45:
#line 271 "imap_csim.y"
{
object_set_mouse_out(current_object, yyvsp[0].id);
;
break;}
object_set_target(current_object, yyvsp[0].id);
}
break;
case 46:
#line 277 "imap_csim.y"
{
object_set_focus(current_object, yyvsp[0].id);
;
break;}
object_set_mouse_over(current_object, yyvsp[0].id);
}
break;
case 47:
#line 283 "imap_csim.y"
{
object_set_mouse_out(current_object, yyvsp[0].id);
}
break;
case 48:
#line 289 "imap_csim.y"
{
object_set_focus(current_object, yyvsp[0].id);
}
break;
case 49:
#line 295 "imap_csim.y"
{
object_set_blur(current_object, yyvsp[0].id);
;
break;}
}
break;
}
#line 705 "/usr/share/bison/bison.simple"
@ -1430,7 +1445,7 @@ yyreturn:
#endif
return yyresult;
}
#line 291 "imap_csim.y"
#line 303 "imap_csim.y"
static void

View File

@ -1,5 +1,5 @@
#ifndef BISON_IMAP_CSIM_TAB_H
# define BISON_IMAP_CSIM_TAB_H
#ifndef BISON_IMAP_CSIM_PARSE_H
# define BISON_IMAP_CSIM_PARSE_H
#ifndef YYSTYPE
typedef union {
@ -40,4 +40,4 @@ typedef union {
extern YYSTYPE csim_lval;
#endif /* not BISON_IMAP_CSIM_TAB_H */
#endif /* not BISON_IMAP_CSIM_PARSE_H */

View File

@ -866,7 +866,7 @@ save_as_csim(gpointer param, OutputFunc_t output)
char *p;
gchar *description;
output(param, "<img src=\"%s\" width=%d height=%d border=0 "
output(param, "<img src=\"%s\" width=\"%d\" height=\"%d\" border=\"0\" "
"usemap=\"#%s\" />\n\n", _map_info.image_name,
_image_width, _image_height, _map_info.title);
output(param, "<map name=\"%s\">\n", _map_info.title);

View File

@ -3,7 +3,7 @@
*
* Generates clickable image maps.
*
* Copyright (C) 1998-2002 Maurits Rijk lpeek.mrijk@consunet.nl
* Copyright (C) 1998-2003 Maurits Rijk lpeek.mrijk@consunet.nl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -432,7 +432,6 @@ menu_build_mru_items(MRU_t *mru)
GList *children;
children = gtk_container_get_children(GTK_CONTAINER(_menu.open_recent));
p = g_list_nth(children, position);
for (i = 0; i < _menu.nr_off_mru_items; i++, p = p->next) {
gtk_widget_destroy((GtkWidget*) p->data);
@ -450,7 +449,7 @@ menu_build_mru_items(MRU_t *mru)
add_accelerator(item, accelerator_key, GDK_CONTROL_MASK);
}
}
_menu.nr_off_mru_items = i + 1;
_menu.nr_off_mru_items = i;
}
void

View File

@ -75,7 +75,7 @@ INSTOBJEXT = @INSTOBJEXT@
.po.pox:
$(MAKE) $(GETTEXT_PACKAGE).pot
$(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*pox
$(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox
.po.mo:
$(MSGFMT) -o $@ $<
@ -168,9 +168,7 @@ uninstall:
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
done
if test "$(PACKAGE)" = "glib"; then \
rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
fi
rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
check: all
@ -179,7 +177,6 @@ dvi info tags TAGS ID:
mostlyclean:
rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
rm -fr *.o
rm -f .intltool-merge-cache
clean: mostlyclean
@ -201,31 +198,35 @@ dist distdir: update-po $(DISTFILES)
update-po: Makefile
$(MAKE) $(GETTEXT_PACKAGE).pot
tmpdir=`pwd`; \
cd $(srcdir); \
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
cp $$lang.po $$lang.old.po; \
echo "$$lang:"; \
if $$tmpdir/$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -o $$tmpdir/$$lang.new.po $$lang; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
exit 1; \
fi; \
fi; \
if $(MSGMERGE) $$lang; then \
rm -f $$lang.old.po; \
else \
echo "msgmerge for $$cat failed!"; \
rm -f $$tmpdir/$$lang.new.po; \
rm -f $$lang.po; \
mv $$lang.old.po $$lang.po; \
fi; \
done
.po: Makefile
$(MAKE) $(PACKAGE).pot;
PATH=`pwd`/../src:$$PATH; \
echo; printf "$*: "; \
if $(MSGMERGE) $*; then \
rm -f $*.old.po; \
else \
echo "msgmerge for * failed!"; \
mv $*.old.po $*.po; \
fi; \
msgfmt --statistics $*.po; echo;
# POTFILES is created from POTFILES.in by stripping comments, empty lines
# and Intltool tags (enclosed in square brackets), and appending a full
# relative path to them