Fix for #113445. Minor code clean-up for Van-Gogh plug-in (lic).
This commit is contained in:
12
ChangeLog
12
ChangeLog
@ -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
|
||||
|
@ -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);
|
||||
|
||||
@ -790,12 +706,12 @@ ok_button_clicked (GtkWidget *widget,
|
||||
}
|
||||
|
||||
static gint
|
||||
effect_image_constrain (gint32 image_id,
|
||||
effect_image_constrain (gint32 image_id,
|
||||
gint32 drawable_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 ()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user