Commit the junk in my tree before I go back to school:

* ltconfig
        * ltmain.sh: downgraded to libtool 1.0f at Jay's suggestion

        * app/gimage.c: Fix for the "merge to alpha" bug from Nathan
        Summers

        * app/text_tool.c: Fix for the font spec bug from Nathan
        Summers

        * plug-ins/maze/maze.c
        * plug-ins/rotate/rotate.c: updated from registry

        * plug-ins/blur/blur.c
        * plug-ins/randomize/randomize.c
        * plug-ins/vpropagate/vpropagate.c
        * plug-ins/warp/warp.c: more portability fixes for DEC OSF1

-Yosh
This commit is contained in:
Manish Singh 1998-01-14 05:44:12 +00:00
parent e0089435d1
commit ab52da1735
17 changed files with 507 additions and 438 deletions

View File

@ -1,3 +1,22 @@
Tue Jan 13 21:36:07 PST 1998 Manish Singh <yosh@gimp.org>
* ltconfig
* ltmain.sh: downgraded to libtool 1.0f at Jay's suggestion
* app/gimage.c: Fix for the "merge to alpha" bug from Nathan
Summers
* app/text_tool.c: Fix for the font spec bug from Nathan
Summers
* plug-ins/maze/maze.c
* plug-ins/rotate/rotate.c: updated from registry
* plug-ins/blur/blur.c
* plug-ins/randomize/randomize.c
* plug-ins/vpropagate/vpropagate.c
* plug-ins/warp/warp.c: more portability fixes for DEC OSF1
Mon Jan 12 14:49:19 1998 Scott Goehring <scott@poverty.bloomington.in.us>
* plug-ins/fractaltrace/fractaltrace.c (query): ymax argument was

View File

@ -1835,6 +1835,7 @@ gimage_merge_layers (GImage *gimage, link_ptr merge_list, MergeType merge_type)
PixelRegion * mask;
Layer *merge_layer;
Layer *layer;
Layer *bottom;
unsigned char bg[4] = {0, 0, 0, 0};
int type;
int count;
@ -1955,12 +1956,7 @@ gimage_merge_layers (GImage *gimage, link_ptr merge_list, MergeType merge_type)
*/
merge_layer = layer_new (gimage->ID, (x2 - x1), (y2 - y1),
drawable_type_with_alpha (layer->ID), layer->name,
OPAQUE, NORMAL_MODE);
if (!merge_layer) {
warning("gimage_merge_layers: could not allocate merge layer");
return NULL;
}
layer->opacity, layer->mode);
if (!merge_layer) {
warning("gimage_merge_layers: could not allocate merge layer");
@ -1981,6 +1977,14 @@ gimage_merge_layers (GImage *gimage, link_ptr merge_list, MergeType merge_type)
*/
layer = (Layer *) reverse_list->data;
position = list_length (gimage->layers) - gimage_get_layer_index (gimage, layer->ID);
/* set the mode of the bottom layer to normal so that the contents
* aren't lost when merging with the all-alpha merge_layer
* Keep a pointer to it so that we can set the mode right after it's been
* merged so that undo works correctly.
*/
layer -> mode =NORMAL;
bottom = layer;
}
while (reverse_list)
@ -2023,6 +2027,9 @@ gimage_merge_layers (GImage *gimage, link_ptr merge_list, MergeType merge_type)
reverse_list = next_item (reverse_list);
}
/* Save old mode in undo */
bottom -> mode = merge_layer -> mode;
free_list (reverse_list);
/* if the type is flatten, remove all the remaining layers */

View File

@ -634,12 +634,6 @@ text_font_item_update (GtkWidget *w,
old_index = the_text_tool->font_index;
the_text_tool->font_index = index;
if (!text_load_font (the_text_tool))
{
the_text_tool->font_index = old_index;
return;
}
font = font_info[the_text_tool->font_index];
if (the_text_tool->foundry && !font->foundries[the_text_tool->foundry])
@ -678,6 +672,12 @@ text_font_item_update (GtkWidget *w,
gtk_widget_set_sensitive (the_text_tool->set_width_items[i], font->set_widths[i]);
for (i = 0; i < nspacings; i++)
gtk_widget_set_sensitive (the_text_tool->spacing_items[i], font->spacings[i]);
if (!text_load_font (the_text_tool))
{
the_text_tool->font_index = old_index;
return;
}
}
static void

View File

@ -634,12 +634,6 @@ text_font_item_update (GtkWidget *w,
old_index = the_text_tool->font_index;
the_text_tool->font_index = index;
if (!text_load_font (the_text_tool))
{
the_text_tool->font_index = old_index;
return;
}
font = font_info[the_text_tool->font_index];
if (the_text_tool->foundry && !font->foundries[the_text_tool->foundry])
@ -678,6 +672,12 @@ text_font_item_update (GtkWidget *w,
gtk_widget_set_sensitive (the_text_tool->set_width_items[i], font->set_widths[i]);
for (i = 0; i < nspacings; i++)
gtk_widget_set_sensitive (the_text_tool->spacing_items[i], font->spacings[i]);
if (!text_load_font (the_text_tool))
{
the_text_tool->font_index = old_index;
return;
}
}
static void

View File

@ -634,12 +634,6 @@ text_font_item_update (GtkWidget *w,
old_index = the_text_tool->font_index;
the_text_tool->font_index = index;
if (!text_load_font (the_text_tool))
{
the_text_tool->font_index = old_index;
return;
}
font = font_info[the_text_tool->font_index];
if (the_text_tool->foundry && !font->foundries[the_text_tool->foundry])
@ -678,6 +672,12 @@ text_font_item_update (GtkWidget *w,
gtk_widget_set_sensitive (the_text_tool->set_width_items[i], font->set_widths[i]);
for (i = 0; i < nspacings; i++)
gtk_widget_set_sensitive (the_text_tool->spacing_items[i], font->spacings[i]);
if (!text_load_font (the_text_tool))
{
the_text_tool->font_index = old_index;
return;
}
}
static void

199
ltconfig
View File

@ -26,36 +26,13 @@
# A lot of this script is taken from autoconf-2.10.
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo="printf %s\\n"
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
fi
fi
# The name of this program.
progname=`$echo "$0" | sed 's%^.*/%%'`
progname=`echo "$0" | sed 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.0h
VERSION=1.0f
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
rm="rm -f"
@ -64,10 +41,10 @@ help="Try \`$progname --help' for more information."
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g'
# Same as above, but don't quote variable references.
double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
double_quote_subst='s/\([\\"\\\\]\)/\\\1/g'
# Global variables:
can_build_shared=yes
@ -302,7 +279,7 @@ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
case "$host_os" in
aix3*)
aix*)
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
@ -316,7 +293,6 @@ esac
# Determine commands to create old-style static archives.
old_archive_cmds='$AR cru $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
# Set a sane default for `AR'.
test -z "$AR" && AR=ar
@ -415,7 +391,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
echo "$progname:418: checking whether we are using GNU C" >&5
echo "$progname:394: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
@ -423,7 +399,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:402: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
@ -455,12 +431,6 @@ if test "$with_gcc" = yes; then
os2*)
# We can build DLLs from non-PIC.
;;
amigaos*)
# FIXME: we need at least 68020 code to build shared libraries, but
# adding the `-m68020' flag to GCC prevents building anything better,
# like `-m68040'.
pic_flag='-m68020 -resident32 -malways-restore-a4'
;;
*)
pic_flag='-fPIC'
;;
@ -534,8 +504,8 @@ if test -n "$pic_flag"; then
echo > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
echo "$progname:537: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
echo "$progname:507: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any errors to the config.log.
cat conftest.err 1>&5
@ -577,8 +547,8 @@ $rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
echo "$progname:580: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$progname:550: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$ac_t$link_static_flag" 1>&6
else
echo "$ac_t"none 1>&6
@ -610,7 +580,7 @@ if test -z "$LD"; then
if test "$with_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
echo "$progname:613: checking for ld used by GCC" >&5
echo "$progname:583: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
@ -628,10 +598,10 @@ if test -z "$LD"; then
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
echo "$progname:631: checking for GNU ld" >&5
echo "$progname:601: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
echo "$progname:634: checking for non-GNU ld" >&5
echo "$progname:604: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
@ -690,30 +660,30 @@ hardcode_runpath_var=no
hardcode_shlibpath_var=unsupported
runpath_var=
case "$host_os" in
amigaos* | sunos4*)
# On these operating systems, we should treat GNU ld like the system ld.
gnu_ld_acts_native=yes
;;
*)
gnu_ld_acts_native=no
;;
esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then
if test "$with_gnu_ld" = yes; then
# See if GNU ld supports shared libraries.
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs'
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
case "$host_os" in
sunos4*)
ld_shlibs=yes
else
ld_shlibs=no
fi
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
ld_shlibs=yes
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = yes; then
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir'
export_dynamic_flag_spec='${wl}-export-dynamic'
fi
@ -722,7 +692,7 @@ else
case "$host_os" in
aix3*)
allow_undefined_flag=unsupported
archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname'
archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE$deplibs;$AR cru $lib $objdir/$soname'
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
@ -735,24 +705,17 @@ else
aix4*)
allow_undefined_flag=unsupported
archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname'
archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '"'s/.* //'"' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname'
hardcode_direct=yes
hardcode_minus_L=yes
;;
amigaos*)
archive_cmds='$rm $objdir/a2ixlibrary.data;$echo "#define NAME $libname" > $objdir/a2ixlibrary.data;$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data;$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data;$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data;$AR cru $lib$libobjs;$RANLIB $lib;(cd $objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
# support. Future versions do this automatically, but an explicit c++rt0.o
# doesn't break anything, and helps significantly (at the cost of a little
# extra space).
freebsd2.2*)
archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o'
hardcode_libdir_flag_spec='-R$libdir'
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs /usr/lib/c++rt0.o'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
@ -760,7 +723,7 @@ else
# Unfortunately, older versions of FreeBSD 2 don't have this feature.
freebsd2*)
archive_cmds='$LD -Bshareable -o $lib$libobjs'
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
@ -768,7 +731,7 @@ else
# FreeBSD 3, at last, uses gcc -shared to do shared libraries.
freebsd3*)
archive_cmds='$CC -shared -o $lib$libobjs'
archive_cmds='$CC -shared -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
@ -776,23 +739,21 @@ else
;;
hpux9*)
archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib'
archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib'
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
export_dynamic_flag_spec='${wl}-E'
;;
hpux10*)
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs'
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
export_dynamic_flag_spec='${wl}-E'
;;
irix5* | irix6*)
archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs'
archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs$deplibs'
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
;;
@ -805,7 +766,7 @@ else
;;
openbsd*)
archive_cmds='$LD -Bshareable -o $lib$libobjs'
archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
@ -815,7 +776,7 @@ else
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
allow_undefined_flag=unsupported
archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def'
archive_cmds='echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;echo DATA >> $objdir/$libname.def;echo " SINGLE NONSHARED" >> $objdir/$libname.def;echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def'
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
;;
@ -827,26 +788,18 @@ else
;;
sco3.2v5*)
archive_cmds='$LD -G -o $lib$libobjs'
archive_cmds='$LD -G -o $lib$libobjs$deplibs'
hardcode_direct=yes
;;
solaris2*)
archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs'
archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_shlibpath_var=no
;;
sunos4*)
if test "$with_gcc" = yes; then
archive_cmds='$CC -shared -o $lib$libobjs'
else
archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
fi
if test "$with_gnu_ld" = yes; then
export_dynamic_flag_spec='${wl}-export-dynamic'
fi
archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
@ -854,7 +807,7 @@ else
;;
uts4*)
archive_cmds='$LD -G -h $soname -o $lib$libobjs'
archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=no
hardcode_minus_L=no
@ -875,15 +828,13 @@ if test -z "$NM"; then
/*) ;; # Let the user override the test with a path.
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
for ac_dir in /usr/ucb $PATH /bin; do
test -z "$ac_dir" && dir=.
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1!d' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
NM="$ac_dir/nm -B"
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
NM="$ac_dir/nm -p"
else
NM="$ac_dir/nm"
@ -918,10 +869,6 @@ case "$host_os" in
aix*)
symcode='[BCDTU]'
;;
irix*)
# Cannot use undefined symbols on IRIX because inlined functions mess us up.
symcode='[BCDEGRST]'
;;
solaris2*)
symcode='[BDTU]'
;;
@ -950,11 +897,11 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
echo "$progname:953: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
echo "$progname:900: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
# Now try to grab the symbols.
nlist=conftest.nm
if { echo "$progname:957: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
if { echo "$progname:904: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@ -997,7 +944,7 @@ struct {
dld_preloaded_symbols[] =
{
EOF
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c
sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> conftest.c
cat <<\EOF >> conftest.c
{0},
};
@ -1012,7 +959,7 @@ EOF
save_CFLAGS="$CFLAGS"
LIBS='conftestm.o'
CFLAGS="$CFLAGS$no_builtin_flag"
if { (eval echo $progname:1015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo $progname:962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5
@ -1081,9 +1028,7 @@ library_names_spec=
libname_spec='lib$name'
soname_spec=
postinstall_cmds=
postuninstall_cmds=
finish_cmds=
finish_eval=
shlibpath_var=
version_type=none
dynamic_linker="$host_os ld.so"
@ -1099,12 +1044,6 @@ aix3* | aix4*)
soname_spec='$libname.so.$major'
;;
amigaos*)
library_names_spec='$libname.ixlibrary $libname.a'
# Create ${libname}_ixlibrary.a entries in /sys/libs.
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "$lib" | sed '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
;;
freebsd2* | freebsd3*)
version_type=sunos
library_names_spec='$libname.so.$versuffix $libname.so'
@ -1169,6 +1108,7 @@ netbsd* | openbsd*)
;;
os2*)
version_type=none
libname_spec='$name'
library_names_spec='$libname.dll $libname.a'
dynamic_linker='OS/2 ld.exe'
@ -1260,30 +1200,25 @@ fi
rmdir .libs 2>/dev/null
echo "$ac_t$objdir" 1>&6
# Copy echo and quote the copy, instead of the original, because it is
# used later.
ltecho="$echo"
# Now quote all the things that may contain metacharacters.
for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \
link_static_flag no_builtin_flag export_dynamic_flag_spec \
profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \
old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \
allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \
archive_cmds postinstall_cmds \
allow_undefined_flag finish_cmds global_symbol_pipe \
striplib old_striplib \
hardcode_libdir_flag_spec hardcode_libdir_separator; do
case "$var" in
reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \
postinstall_cmds | postuninstall_cmds | finish_cmds)
old_postinstall_cmds | archive_cmds | postinstall_cmds | finish_cmds)
# Double-quote double-evaled strings.
eval "$var=\`\$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`"
;;
*)
eval "$var=\`\$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`"
eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`"
;;
esac
done
@ -1308,9 +1243,6 @@ cat <<EOF > $ofile
# Compiler and other test output produced by $progname, useful for
# debugging $progname, is in ./config.log if it exists.
# An echo program that doesn't interpret backslashes.
echo="$ltecho"
# The version of $progname that generated this script.
LTCONFIG_VERSION="$VERSION"
@ -1384,7 +1316,6 @@ soname_spec="$soname_spec"
RANLIB="$RANLIB"
old_archive_cmds="$old_archive_cmds"
old_postinstall_cmds="$old_postinstall_cmds"
old_postuninstall_cmds="$old_postuninstall_cmds"
# Create an old-style archive from a shared archive.
old_archive_from_new_cmds="$old_archive_from_new_cmds"
@ -1392,7 +1323,6 @@ old_archive_from_new_cmds="$old_archive_from_new_cmds"
# Commands used to build and install a shared archive.
archive_cmds="$archive_cmds"
postinstall_cmds="$postinstall_cmds"
postuninstall_cmds="$postuninstall_cmds"
# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag="$allow_undefined_flag"
@ -1400,9 +1330,6 @@ allow_undefined_flag="$allow_undefined_flag"
# Commands used to finish a libtool library installation in a directory.
finish_cmds="$finish_cmds"
# Same as above, but a single script fragment to be evaled but not shown.
finish_eval="$finish_eval"
# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe="$global_symbol_pipe"
@ -1468,7 +1395,7 @@ EOF
;;
*) cat <<EOF >> $ofile
# Find the path to this script.
thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\`
thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\`
test "X\$0" = "X\$thisdir" && thisdir=.
# Execute the libtool backend.

348
ltmain.sh
View File

@ -22,14 +22,40 @@
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
#FIXME: echo=echo
echo='printf %s\n'
if test "X`$echo '\t'`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo='printf %s\n'
if test "X`$echo '\t'`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
save_PATH="$PATH"
PATH="$PATH":/usr/ucb
for dir in $PATH; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
PATH="$save_PATH"
fi
fi
# The name of this program.
progname=`$echo "$0" | sed 's%^.*/%%'`
modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.0h
VERSION=1.0f
default_mode=
help="Try \`$progname --help' for more information."
@ -40,7 +66,7 @@ rm="rm -f"
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
sed_quote_subst='s/\([\\"$\\\\]\)/\\\1/g'
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
@ -50,14 +76,14 @@ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
if test "$LTCONFIG_VERSION" != "$VERSION"; then
echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
$echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
fi
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
echo "$modename: not configured to build any kind of library" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
$echo "$progname: not configured to build any kind of library" 1>&2
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
fi
@ -105,7 +131,7 @@ do
;;
--version)
echo "$PROGRAM (GNU $PACKAGE) $VERSION"
$echo "$PROGRAM (GNU $PACKAGE) $VERSION"
exit 0
;;
@ -114,16 +140,16 @@ do
;;
--features)
echo "host: $host"
$echo "host: $host"
if test "$build_libtool_libs" = yes; then
echo "enable shared libraries"
$echo "enable shared libraries"
else
echo "disable shared libraries"
$echo "disable shared libraries"
fi
if test "$build_old_libs" = yes; then
echo "enable static libraries"
$echo "enable static libraries"
else
echo "disable static libraries"
$echo "disable static libraries"
fi
exit 0
;;
@ -143,7 +169,7 @@ do
;;
-*)
$echo "$modename: unrecognized option \`$arg'" 1>&2
$echo "$progname: unrecognized option \`$arg'" 1>&2
$echo "$help" 1>&2
exit 1
;;
@ -156,7 +182,7 @@ do
done
if test -n "$prevopt"; then
$echo "$modename: option \`$prevopt' requires an argument" 1>&2
$echo "$progname: option \`$prevopt' requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -194,9 +220,9 @@ if test -z "$show_help"; then
# Just use the default operation mode.
if test -z "$mode"; then
if test -n "$nonopt"; then
$echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
$echo "$progname: warning: cannot infer operation mode from \`$nonopt'" 1>&2
else
$echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
$echo "$progname: warning: cannot infer operation mode without MODE-ARGS" 1>&2
fi
fi
;;
@ -205,20 +231,20 @@ if test -z "$show_help"; then
# Only execute mode is allowed to have -dlopen flags.
if test -n "$execute_dlfiles" && test "$mode" != execute; then
$echo "$modename: unrecognized option \`-dlopen'" 1>&2
$echo "$progname: unrecognized option \`-dlopen'" 1>&2
$echo "$help" 1>&2
exit 1
fi
# Change the help message to a mode-specific one.
generic_help="$help"
help="Try \`$modename --help --mode=$mode' for more information."
help="Try \`$progname --help --mode=$mode' for more information."
# These modes are in order of execution frequency so that they run quickly.
case "$mode" in
# libtool compile mode
compile)
modename="$modename: compile"
progname="$progname: compile"
# Get the compilation command and the source file.
base_compile=
lastarg=
@ -229,7 +255,7 @@ if test -z "$show_help"; then
do
# The only flag that cannot be specified is the output filename.
if test "X$arg" = "X-o"; then
$echo "$modename: you cannot specify the output filename with \`-o'" 1>&2
$echo "$progname: you cannot specify the output filename with \`-o'" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -281,13 +307,13 @@ if test -z "$show_help"; then
case "$libobj" in
*.lo) obj=`$echo "$libobj" | sed -e 's/\.lo$/.o/'` ;;
*)
$echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2
$echo "$progname: cannot determine name of library object from \`$srcfile'" 1>&2
exit 1
;;
esac
if test -z "$base_compile"; then
$echo "$modename: you must specify a compilation command" 1>&2
$echo "$progname: you must specify a compilation command" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -343,8 +369,8 @@ if test -z "$show_help"; then
# Create an invalid libtool object if no PIC, so that we don't accidentally
# link it into a program.
if test "$build_libtool_libs" != yes; then
$show "echo timestamp > $libobj"
$run eval "echo timestamp > \$libobj" || exit $?
$show "$echo timestamp > $libobj"
$run eval "\$echo timestamp > \$libobj" || exit $?
fi
exit 0
@ -352,9 +378,9 @@ if test -z "$show_help"; then
# libtool link mode
link)
modename="$modename: link"
progname="$progname: link"
CC="$nonopt"
allow_undefined=yes
allow_undefined=no
compile_command="$CC"
finalize_command="$CC"
@ -382,7 +408,7 @@ if test -z "$show_help"; then
case "$arg" in
-all-static | -static)
if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
$echo "$progname: warning: complete static linking is impossible in this configuration" 1>&2
fi
build_libtool_libs=no
build_old_libs=yes
@ -442,8 +468,7 @@ if test -z "$show_help"; then
;;
-allow-undefined)
# FIXME: remove this flag sometime in the future.
$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
allow_undefined=yes
continue
;;
@ -479,7 +504,7 @@ if test -z "$show_help"; then
# Add the corresponding hardcode_libdir_flag, if it is not identical.
;;
*)
$echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
$echo "$progname: \`-L$dir' cannot specify a relative directory" 1>&2
exit 1
;;
esac
@ -488,11 +513,6 @@ if test -z "$show_help"; then
-l*) deplibs="$deplibs $arg" ;;
-no-undefined)
allow_undefined=no
continue
;;
-o) prev=output ;;
-rpath)
@ -563,7 +583,7 @@ if test -z "$show_help"; then
# Check to see that this really is a libtool archive.
if egrep '^# Generated by ltmain.sh' $arg >/dev/null 2>&1; then :
else
$echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
$echo "$progname: \`$arg' is not a valid libtool archive" 1>&2
exit 1
fi
@ -574,7 +594,7 @@ if test -z "$show_help"; then
esac
if test -z "$libdir"; then
$echo "$modename: \`$arg' contains no -rpath information" 1>&2
$echo "$progname: \`$arg' contains no -rpath information" 1>&2
exit 1
fi
@ -585,7 +605,7 @@ if test -z "$show_help"; then
done
if test -z "$linklib"; then
$echo "$modename: cannot find name of link library for \`$arg'" 1>&2
$echo "$progname: cannot find name of link library for \`$arg'" 1>&2
exit 1
fi
@ -687,7 +707,7 @@ if test -z "$show_help"; then
*)
absdir=`cd "$dir" && pwd`
if test -z "$absdir"; then
$echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
$echo "$progname: cannot determine absolute directory name of \`$dir'" 1>&2
exit 1
fi
dir="$absdir"
@ -705,7 +725,7 @@ if test -z "$show_help"; then
;;
*)
$echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2
$echo "$progname: \`$hardcode_action' is an unknown hardcode action" 1>&2
exit 1
;;
esac
@ -725,7 +745,7 @@ if test -z "$show_help"; then
else
# Transform directly to old archives if we don't build new libraries.
if test -n "$pic_flag" && test -z "$old_library"; then
$echo "$modename: cannot find static library for \`$arg'" 1>&2
$echo "$progname: cannot find static library for \`$arg'" 1>&2
exit 1
fi
@ -758,14 +778,12 @@ if test -z "$show_help"; then
esac
# Now actually substitute the argument into the commands.
if test -n "$arg"; then
compile_command="$compile_command $arg"
finalize_command="$finalize_command $arg"
fi
compile_command="$compile_command $arg"
finalize_command="$finalize_command $arg"
done
if test -n "$prev"; then
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2
$echo "$progname: the \`$prevarg' option requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -774,13 +792,13 @@ if test -z "$show_help"; then
oldobjs=
case "$output" in
"")
$echo "$modename: you must specify an output file" 1>&2
$echo "$progname: you must specify an output file" 1>&2
$echo "$help" 1>&2
exit 1
;;
*/*)
$echo "$modename: output file \`$output' must have no directory components" 1>&2
$echo "$progname: output file \`$output' must have no directory components" 1>&2
exit 1
;;
@ -789,7 +807,7 @@ if test -z "$show_help"; then
case "$output" in
lib*) ;;
*)
$echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2
$echo "$progname: libtool library \`$arg' must begin with \`lib'" 1>&2
$echo "$help" 1>&2
exit 1
;;
@ -807,13 +825,13 @@ if test -z "$show_help"; then
age=0
if test -n "$objs"; then
$echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
$echo "$progname: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
exit 1
fi
# How the heck are we supposed to write a wrapper for a shared library?
if test -n "$link_against_libtool_libs"; then
$echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
$echo "$progname: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2
exit 1
fi
@ -821,21 +839,21 @@ if test -z "$show_help"; then
deplibs="$deplibs -lc"
if test -n "$dlfiles$dlprefiles"; then
$echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
$echo "$progname: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2
# Nullify the symbol file.
compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"`
fi
if test -z "$rpath"; then
$echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2
$echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2
$echo "$help" 1>&2
exit 1
fi
set dummy $rpath
if test $# -gt 2; then
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
$echo "$progname: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
fi
install_libdir="$2"
@ -845,7 +863,7 @@ if test -z "$show_help"; then
IFS="$save_ifs"
if test -n "$5"; then
$echo "$modename: too many parameters to \`-version-info'" 1>&2
$echo "$progname: too many parameters to \`-version-info'" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -858,8 +876,8 @@ if test -z "$show_help"; then
case "$current" in
0 | [1-9] | [1-9][0-9]*) ;;
*)
$echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
$echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2
$echo "$progname: \`$vinfo' is not valid version information" 1>&2
exit 1
;;
esac
@ -867,8 +885,8 @@ if test -z "$show_help"; then
case "$revision" in
0 | [1-9] | [1-9][0-9]*) ;;
*)
$echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
$echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2
$echo "$progname: \`$vinfo' is not valid version information" 1>&2
exit 1
;;
esac
@ -876,15 +894,15 @@ if test -z "$show_help"; then
case "$age" in
0 | [1-9] | [1-9][0-9]*) ;;
*)
$echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
$echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2
$echo "$progname: \`$vinfo' is not valid version information" 1>&2
exit 1
;;
esac
if test $age -gt $current; then
$echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
$echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
$echo "$progname: \`$vinfo' is not valid version information" 1>&2
exit 1
fi
@ -924,8 +942,8 @@ if test -z "$show_help"; then
;;
*)
$echo "$modename: unknown library version type \`$version_type'" 1>&2
echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
$echo "$progname: unknown library version type \`$version_type'" 1>&2
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit 1
;;
esac
@ -947,7 +965,7 @@ if test -z "$show_help"; then
# Check to see if the archive will have undefined symbols.
if test "$allow_undefined" = yes; then
if test "$allow_undefined_flag" = unsupported; then
$echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
$echo "$progname: warning: undefined symbols not allowed in $host shared libraries" 1>&2
build_libtool_libs=no
build_old_libs=yes
fi
@ -989,9 +1007,9 @@ if test -z "$show_help"; then
IFS="$save_ifs"
# Create links to the real library.
for linkname in $linknames; do
$show "(cd $objdir && $LN_S $realname $linkname)"
$run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $?
for link in $linknames; do
$show "(cd $objdir && $LN_S $realname $link)"
$run eval '(cd $objdir && $LN_S $realname $link)' || exit $?
done
# If -export-dynamic was specified, set the dlname.
@ -1004,33 +1022,33 @@ if test -z "$show_help"; then
*.lo | *.o)
if test -n "$link_against_libtool_libs"; then
$echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2
$echo "$progname: error: cannot link libtool libraries into reloadable objects" 1>&2
exit 1
fi
if test -n "$deplibs"; then
$echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
$echo "$progname: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2
fi
if test -n "$dlfiles$dlprefiles"; then
$echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2
$echo "$progname: warning: \`-dlopen' is ignored while creating objects" 1>&2
# Nullify the symbol file.
compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
finalize_command=`$echo "$finalize_command" | sed "s% @SYMFILE@%%"`
fi
if test -n "$rpath"; then
$echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2
$echo "$progname: warning: \`-rpath' is ignored while creating objects" 1>&2
fi
if test -n "$vinfo"; then
$echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2
$echo "$progname: warning: \`-version-info' is ignored while creating objects" 1>&2
fi
case "$output" in
*.lo)
if test -n "$objs"; then
$echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
$echo "$progname: cannot build library object \`$output' from non-libtool objects" 1>&2
exit 1
fi
libobj="$output"
@ -1064,8 +1082,8 @@ if test -z "$show_help"; then
if test "$build_libtool_libs" != yes; then
# Create an invalid libtool object if no PIC, so that we don't
# accidentally link it into a program.
$show "echo timestamp > $libobj"
$run eval "echo timestamp > $libobj" || exit $?
$show "$echo timestamp > $libobj"
$run eval "\$echo timestamp > $libobj" || exit $?
exit 0
fi
@ -1092,7 +1110,7 @@ if test -z "$show_help"; then
*)
if test -n "$vinfo"; then
$echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2
$echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2
fi
if test -n "$rpath"; then
@ -1185,7 +1203,7 @@ if test -z "$show_help"; then
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
wcout=`wc "$nlist" 2>/dev/null`
count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
(test "$count" -ge 0) 2>/dev/null || count=-1
else
$rm "$nlist"T
@ -1212,7 +1230,7 @@ EOF
if test -f "$nlist"; then
sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
else
echo '/* NONE */' >> "$objdir/$dlsyms"
$echo '/* NONE */' >> "$objdir/$dlsyms"
EOF
fi
@ -1240,7 +1258,7 @@ dld_preloaded_symbols[] =
EOF
if test -f "$nlist"; then
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
fi
cat <<\EOF >> "$objdir/$dlsyms"
@ -1254,7 +1272,7 @@ EOF
;;
*)
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
echo "$progname: unknown suffix for \`$dlsyms'" 1>&2
exit 1
;;
esac
@ -1268,12 +1286,12 @@ EOF
compile_command=`$echo "$compile_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"`
finalize_command=`$echo "$finalize_command" | sed "s%@SYMFILE@%$objdir/${output}S.o%"`
elif test "$export_dynamic" != yes; then
test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
test -n "$dlfiles$dlprefiles" && $echo "$progname: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2
else
# We keep going just in case the user didn't refer to
# dld_preloaded_symbols. The linker will fail if global_symbol_pipe
# really was required.
$echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
$echo "$progname: not configured to extract global symbols from dlpreopened files" 1>&2
# Nullify the symbol file.
compile_command=`$echo "$compile_command" | sed "s% @SYMFILE@%%"`
@ -1343,8 +1361,8 @@ EOF
case "$hardcode_action" in
relink)
# AGH! Flame the AIX and HP-UX people for me, will ya?
$echo "$modename: warning: using a buggy system linker" 1>&2
$echo "$modename: relinking will be required before \`$output' can be installed" 1>&2
$echo "$progname: warning: using a buggy system linker" 1>&2
$echo "$progname: relinking will be required before \`$output' can be installed" 1>&2
;;
esac
@ -1457,7 +1475,7 @@ EOF
# The program doesn't exist.
\$echo "\$0: error: \$progdir/\$program does not exist" 1>&2
\$echo "This script is just a wrapper for \$program." 1>&2
echo "See the $PACKAGE documentation for more information." 1>&2
\$echo "See the $PACKAGE documentation for more information." 1>&2
exit 1
fi
fi
@ -1544,7 +1562,7 @@ EOF
# libtool install mode
install)
modename="$modename: install"
progname="$progname: install"
# There may be an optional /bin/sh argument at the beginning of
# install_prog (especially on Windows NT).
@ -1624,22 +1642,22 @@ EOF
done
if test -z "$install_prog"; then
$echo "$modename: you must specify an install program" 1>&2
$echo "$progname: you must specify an install program" 1>&2
$echo "$help" 1>&2
exit 1
fi
if test -n "$prev"; then
$echo "$modename: the \`$prev' option requires an argument" 1>&2
$echo "$progname: the \`$prev' option requires an argument" 1>&2
$echo "$help" 1>&2
exit 1
fi
if test -z "$files"; then
if test -z "$dest"; then
$echo "$modename: no file or destination specified" 1>&2
$echo "$progname: no file or destination specified" 1>&2
else
$echo "$modename: you must specify a destination" 1>&2
$echo "$progname: you must specify a destination" 1>&2
fi
$echo "$help" 1>&2
exit 1
@ -1661,7 +1679,7 @@ EOF
# Not a directory, so check to see that there is only one file specified.
set dummy $files
if test $# -gt 2; then
$echo "$modename: \`$dest' is not a directory" 1>&2
$echo "$progname: \`$dest' is not a directory" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -1673,7 +1691,7 @@ EOF
case "$file" in
*.lo) ;;
*)
$echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
$echo "$progname: \`$destdir' must be an absolute directory name" 1>&2
$echo "$help" 1>&2
exit 1
;;
@ -1702,7 +1720,7 @@ EOF
# Check to see that this really is a libtool archive.
if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then :
else
$echo "$modename: \`$file' is not a valid libtool archive" 1>&2
$echo "$progname: \`$file' is not a valid libtool archive" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -1751,7 +1769,7 @@ EOF
$show "$striplib $destdir/$realname"
$run $striplib $destdir/$realname || exit $?
else
$echo "$modename: warning: no library stripping program" 1>&2
$echo "$progname: warning: no library stripping program" 1>&2
fi
fi
@ -1822,7 +1840,7 @@ EOF
destfile=
;;
*)
$echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
$echo "$progname: cannot copy a libtool object to \`$destfile'" 1>&2
$echo "$help" 1>&2
exit 1
;;
@ -1859,7 +1877,7 @@ EOF
# Check the variables that should have been set.
if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then
$echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
$echo "$progname: invalid libtool wrapper script \`$file'" 1>&2
exit 1
fi
@ -1876,26 +1894,26 @@ EOF
fi
libfile="$libdir/`$echo "$lib" | sed 's%^.*/%%g'`"
if test -z "$libdir"; then
$echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2
$echo "$progname: warning: \`$lib' contains no -rpath information" 1>&2
elif test -f "$libfile"; then :
else
$echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
$echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
finalize=no
fi
done
if test "$hardcode_action" = relink; then
if test "$finalize" = yes; then
$echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
$echo "$progname: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2
$show "$finalize_command"
if $run eval "$finalize_command"; then :
else
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
$echo "$progname: error: relink \`$file' with the above command before installing it" 1>&2
continue
fi
file="$objdir/$file"T
else
$echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
$echo "$progname: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2
fi
else
# Install the binary that we compiled earlier.
@ -1924,7 +1942,7 @@ EOF
$show "$old_striplib $oldlib"
$run $old_striplib $oldlib || exit $?
else
$echo "$modename: warning: no static library stripping program" 1>&2
$echo "$progname: warning: no static library stripping program" 1>&2
fi
fi
@ -1940,7 +1958,7 @@ EOF
done
if test -n "$future_libdirs"; then
$echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
$echo "$progname: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
fi
if test -n "$current_libdirs"; then
@ -1955,51 +1973,44 @@ EOF
# libtool finish mode
finish)
modename="$modename: finish"
progname="$progname: finish"
libdirs="$nonopt"
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
if test -n "$finish_cmds" && test -n "$libdirs"; then
for dir
do
libdirs="$libdirs $dir"
done
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
cmds=`eval \\$echo \"$finish_cmds\"`
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd"
done
# Do each command in the postinstall commands.
cmds=`eval \\$echo \"$finish_cmds\"`
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
cmds=`eval \\$echo \"$finish_eval\"`
$run eval "$cmds"
fi
$show "$cmd"
$run eval "$cmd"
done
IFS="$save_ifs"
done
fi
echo "To link against installed libraries in LIBDIR, users may have to:"
$echo "To link against installed libraries in LIBDIR, users may have to:"
if test -n "$shlibpath_var"; then
echo " - add LIBDIR to their \`$shlibpath_var' environment variable"
$echo " - add LIBDIR to their \`$shlibpath_var' environment variable"
fi
echo " - use the \`-LLIBDIR' linker flag"
$echo " - use the \`-LLIBDIR' linker flag"
exit 0
;;
# libtool execute mode
execute)
modename="$modename: execute"
progname="$progname: execute"
# The first argument is the command name.
cmd="$nonopt"
if test -z "$cmd"; then
$echo "$modename: you must specify a COMMAND" 1>&2
$echo "$progname: you must specify a COMMAND" 1>&2
$echo "$help"
exit 1
fi
@ -2008,7 +2019,7 @@ EOF
for file in $execute_dlfiles; do
if test -f "$file"; then :
else
$echo "$modename: \`$file' is not a file" 1>&2
$echo "$progname: \`$file' is not a file" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -2019,7 +2030,7 @@ EOF
# Check to see that this really is a libtool archive.
if egrep '^# Generated by ltmain.sh' $file >/dev/null 2>&1; then :
else
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
$echo "$progname: \`$lib' is not a valid libtool archive" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -2037,7 +2048,7 @@ EOF
# Skip this library if it cannot be dlopened.
if test -z "$dlname"; then
# Warn if it was a shared library.
test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
test -n "$library_names" && $echo "$progname: warning: \`$file' was not linked with \`-export-dynamic'"
continue
fi
@ -2047,7 +2058,7 @@ EOF
if test -f "$dir/$objdir/$dlname"; then
dir="$dir/$objdir"
else
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
$echo "$progname: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
exit 1
fi
;;
@ -2059,7 +2070,7 @@ EOF
;;
*)
$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
$echo "$progname: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
continue
;;
esac
@ -2111,7 +2122,7 @@ EOF
# Now actually exec the command.
eval "exec \$cmd$args"
$echo "$modename: cannot exec \$cmd$args"
$echo "$progname: cannot exec \$cmd$args"
exit 1
else
# Display what would be done.
@ -2124,7 +2135,7 @@ EOF
# libtool uninstall mode
uninstall)
modename="$modename: uninstall"
progname="$progname: uninstall"
rm="$nonopt"
files=
@ -2137,7 +2148,7 @@ EOF
done
if test -z "$rm"; then
$echo "$modename: you must specify an RM program" 1>&2
$echo "$progname: you must specify an RM program" 1>&2
$echo "$help" 1>&2
exit 1
fi
@ -2163,33 +2174,6 @@ EOF
test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
$show "$rm $rmfiles"
$run $rm $rmfiles
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
cmds=`eval \\$echo \"$postuninstall_cmds\"`
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd"
done
IFS="$save_ifs"
fi
if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd"
done
IFS="$save_ifs"
fi
# FIXME: should reinstall the best remaining shared library.
fi
;;
@ -2199,27 +2183,23 @@ EOF
oldobj=`$echo "$name" | sed 's/\.lo$/\.o/'`
rmfiles="$rmfiles $dir/$oldobj"
fi
$show "$rm $rmfiles"
$run $rm $rmfiles
;;
*)
$show "$rm $rmfiles"
$run $rm $rmfiles
;;
esac
$show "$rm $rmfiles"
$run $rm $rmfiles
done
exit 0
;;
"")
$echo "$modename: you must specify a MODE" 1>&2
$echo "$progname: you must specify a MODE" 1>&2
$echo "$generic_help" 1>&2
exit 1
;;
esac
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$progname: invalid operation mode \`$mode'" 1>&2
$echo "$generic_help" 1>&2
exit 1
fi # test -z "$show_help"
@ -2227,7 +2207,7 @@ fi # test -z "$show_help"
# We need to display help for each of the modes.
case "$mode" in
"") cat <<EOF
Usage: $modename [OPTION]... [MODE-ARG]...
Usage: $progname [OPTION]... [MODE-ARG]...
Provide generalized library-building support services.
@ -2249,14 +2229,14 @@ MODE must be one of the following:
link create a library or an executable
uninstall remove libraries from an installed directory
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
MODE-ARGS vary depending on the MODE. Try \`$progname --help --mode=MODE' for
a more detailed description of MODE.
EOF
;;
compile)
cat <<EOF
Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
Compile a source file into a libtool library object.
@ -2271,7 +2251,7 @@ EOF
execute)
cat <<EOF
Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
Automatically set library path, then run a program.
@ -2292,7 +2272,7 @@ EOF
finish)
cat <<EOF
Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
Complete the installation of libtool libraries.
@ -2305,7 +2285,7 @@ EOF
install)
cat <<EOF
Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
Install executables or libraries.
@ -2319,7 +2299,7 @@ EOF
link)
cat <<EOF
Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
Link object files or libraries together to form another library, or to
create an executable program.
@ -2330,12 +2310,12 @@ a program from several object files.
The following components of LINK-COMMAND are treated specially:
-all-static do not do any dynamic linking at all
-allow-undefined allow a libtool library to reference undefined symbols
-dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
-dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-static do not do any dynamic linking of libtool libraries
@ -2361,7 +2341,7 @@ EOF
uninstall)
cat <<EOF
Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
Remove libraries from an installation directory.
@ -2375,14 +2355,14 @@ EOF
;;
*)
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$progname: invalid operation mode \`$mode'" 1>&2
$echo "$help" 1>&2
exit 1
;;
esac
echo
$echo "Try \`$modename --help' for more information about other modes."
$echo
$echo "Try \`$progname --help' for more information about other modes."
exit 0

View File

@ -133,7 +133,7 @@ blur_prepare_row (GPixelRgn *pixel_rgn,
/* Fill in edge pixels */
for (b = 0; b < pixel_rgn->bpp; b++)
{
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}

View File

@ -133,7 +133,7 @@ blur_prepare_row (GPixelRgn *pixel_rgn,
/* Fill in edge pixels */
for (b = 0; b < pixel_rgn->bpp; b++)
{
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}

View File

@ -474,7 +474,7 @@ randomize_prepare_row(GPixelRgn *pixel_rgn, guchar *data, int x, int y, int w)
* Fill in edge pixels
*/
for (b = 0; b < pixel_rgn->bpp; b++) {
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}
@ -494,7 +494,7 @@ randomize_prepare_row(GPixelRgn *pixel_rgn, guchar *data, int x, int y, int w)
* Fill in edge pixels \
*/ \
for (b = 0; b < (pixel_rgn)->bpp; b++) { \
data[-(pixel_rgn)->bpp + b] = data[b]; \
data[-(gint)(pixel_rgn)->bpp + b] = data[b]; \
data[w * (pixel_rgn)->bpp + b] = data[(w - 1) * (pixel_rgn)->bpp + b]; \
} \
}

View File

@ -1,6 +1,6 @@
/*
* Rotate plug-in v0.4 by Sven Neumann, neumanns@uni-duesseldorf.de
* 1997/10/17
* Rotate plug-in v0.5 by Sven Neumann, neumanns@uni-duesseldorf.de
* 1998/01/09
*
* Any suggestions, bug-reports or patches are very welcome.
*
@ -37,6 +37,8 @@
* (10/01/97) v0.3 now handles layered images and undo
* (10/13/97) v0.3a small bugfix, no real changes
* (10/17/97) v0.4 now handles selections
* (01/09/98) v0.5 a few fixes to support portability
*
*/
/* TODO List
@ -53,7 +55,7 @@
/* Defines */
#define PLUG_IN_NAME "plug_in_rotate"
#define PLUG_IN_PRINT_NAME "Rotate"
#define PLUG_IN_VERSION "v0.4 (10/17/97)"
#define PLUG_IN_VERSION "v0.5 (01/09/98)"
#define PLUG_IN_MENU_PATH "<Image>/Filters/Transforms/Rotate"
#define PLUG_IN_IMAGE_TYPES "RGB*, INDEXED*, GRAY*"
#define PLUG_IN_AUTHOR "Sven Neumann (neumanns@uni-duesseldorf.de)"
@ -65,7 +67,7 @@
#define IN_ARGS { PARAM_INT32, "run_mode", "Interactive, non-interactive"},\
{ PARAM_IMAGE, "image", "Input image" },\
{ PARAM_DRAWABLE, "drawable", "Input drawable"},\
{ PARAM_INT32, "angle", "Angle { 90° (1), 180° (2), 270° (3) }"},\
{ PARAM_INT32, "angle", "Angle { 90 (1), 180 (2), 270 (3) } degrees"},\
{ PARAM_INT32, "everything", "Rotate the whole image? { TRUE, FALSE }"}
#define NUMBER_OUT_ARGS 0
@ -73,7 +75,7 @@
#define NUM_ANGLES 4
char *angle_label[NUM_ANGLES] = { "0°", "90°", "180°", "270°" };
gchar *angle_label[NUM_ANGLES] = { "0", "90", "180", "270" };
typedef struct {
gint angle;
@ -86,7 +88,7 @@ typedef struct {
static RotateValues rotvals =
{
1, /* default to 90° */
1, /* default to 90 degrees */
1 /* default to whole image */
};
@ -97,10 +99,10 @@ static RotateInterface rotint =
static void query (void);
static void run (char *name,
int nparams, /* number of parameters passed in */
static void run (gchar *name,
gint nparams, /* number of parameters passed in */
GParam * param, /* parameters passed in */
int *nreturn_vals, /* number of parameters returned */
gint *nreturn_vals, /* number of parameters returned */
GParam ** return_vals); /* parameters to be returned */
static void rotate (void);
static void rotate_drawable (GDrawable *drawable);
@ -140,9 +142,9 @@ static void query (void)
{
static GParamDef args[] = { IN_ARGS };
static int nargs = NUMBER_IN_ARGS;
static gint nargs = NUMBER_IN_ARGS;
static GParamDef *return_vals = OUT_ARGS;
static int nreturn_vals = NUMBER_OUT_ARGS;
static gint nreturn_vals = NUMBER_OUT_ARGS;
/* the actual installation of the plugin */
gimp_install_procedure (PLUG_IN_NAME,
@ -161,10 +163,10 @@ gimp_install_procedure (PLUG_IN_NAME,
}
static void
run (char *name, /* name of plugin */
int nparams, /* number of in-paramters */
run (gchar *name, /* name of plugin */
gint nparams, /* number of in-paramters */
GParam * param, /* in-parameters */
int *nreturn_vals, /* number of out-parameters */
gint *nreturn_vals, /* number of out-parameters */
GParam ** return_vals) /* out-parameters */
{
@ -211,19 +213,17 @@ run (char *name, /* name of plugin */
}
else
status = STATUS_CALLING_ERROR;
break;
case RUN_WITH_LAST_VALS:
/* Possibly retrieve data from a previous run */
gimp_get_data (PLUG_IN_NAME, &rotvals);
rotvals.angle = rotvals.angle % NUM_ANGLES;
case RUN_WITH_LAST_VALS:
/* Possibly retrieve data from a previous run */
gimp_get_data (PLUG_IN_NAME, &rotvals);
rotvals.angle = rotvals.angle % NUM_ANGLES;
break;
break;
default:
break;
}
default:
break;
} /* switch */
if (status == STATUS_SUCCESS)
{
@ -252,7 +252,7 @@ gint32
my_gimp_selection_is_empty (gint32 image_ID)
{
GParam *return_vals;
int nreturn_vals;
gint nreturn_vals;
gint32 is_empty;
/* initialize */
@ -276,7 +276,7 @@ gint32
my_gimp_selection_float (gint32 image_ID, gint32 drawable_ID)
{
GParam *return_vals;
int nreturn_vals;
gint nreturn_vals;
gint32 layer_ID;
return_vals = gimp_run_procedure ("gimp_selection_float",
@ -563,6 +563,7 @@ rotate_dialog (void)
GtkWidget *frame;
GtkWidget *table;
GtkWidget *radio_label;
GtkWidget *unit_label;
GtkWidget *hbox;
GtkWidget *radio_button;
GtkWidget *check_button;
@ -622,7 +623,7 @@ rotate_dialog (void)
frame, TRUE, TRUE, 0);
/* table for radio_buttons */
table = gtk_table_new (5, 5, FALSE);
table = gtk_table_new (6, 6, FALSE);
gtk_table_set_row_spacings (GTK_TABLE (table), 8);
gtk_table_set_col_spacings (GTK_TABLE (table), 1);
gtk_container_border_width (GTK_CONTAINER (table), 6);
@ -630,7 +631,7 @@ rotate_dialog (void)
/* radio buttons */
/* 0° */
/* 0 degrees */
radio_label = gtk_label_new ( angle_label[0] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 2, 3, 0, 1, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -644,7 +645,7 @@ rotate_dialog (void)
radio_pressed[0]);
gtk_widget_show (radio_button);
/* 90° */
/* 90 degrees */
radio_label = gtk_label_new ( angle_label[1] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 4, 5, 2, 3, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -658,7 +659,7 @@ rotate_dialog (void)
radio_pressed[1]);
gtk_widget_show (radio_button);
/* 180° */
/* 180 degrees */
radio_label = gtk_label_new ( angle_label[2] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 2, 3, 4, 5, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -672,7 +673,7 @@ rotate_dialog (void)
radio_pressed[2]);
gtk_widget_show (radio_button);
/* 270° */
/* 270 degrees */
radio_label = gtk_label_new ( angle_label[3] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 0, 1, 2, 3, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -686,6 +687,13 @@ rotate_dialog (void)
radio_pressed[3]);
gtk_widget_show (radio_button);
/* label: degrees */
unit_label = gtk_label_new ( "degrees" );
gtk_table_attach ( GTK_TABLE (table), unit_label, 5, 6, 5, 6, 0, 0, 0, 0);
gtk_widget_show (unit_label);
gtk_widget_show (table);
gtk_widget_show (frame);
@ -748,7 +756,7 @@ rotate_toggle_update (GtkWidget *widget,
{
gint *toggle_val;
toggle_val = (int *) data;
toggle_val = (gint *) data;
if (GTK_TOGGLE_BUTTON (widget)->active)
*toggle_val = TRUE;
@ -802,3 +810,6 @@ ErrorMessage(guchar *message)
}

View File

@ -464,7 +464,7 @@ prepare_row (GPixelRgn *pixel_rgn,
/* Fill in edge pixels */
for (b = 0; b < pixel_rgn->bpp; b++)
{
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}

View File

@ -1,6 +1,6 @@
/* maze.c, version 0.4.2, 17 October 1997
/* maze.c, version 0.5.0, July 10, 1998.
* This is a plug-in for the GIMP.
* It draws mazes... walls and passages are 1 pixel wide.
* It draws mazes...
*
* Implemented as a GIMP 0.99 Plugin by
* Kevin Turner <kevint@poboxes.com>
@ -19,6 +19,9 @@
* and used as a template to get me started on this one. :)
*
* Revision history:
* 0.5.0 - Added the long-awaited "tileable" option.
* Required a change to PDB parameters.
* - fixed some stuff with GParam values in run();
* 0.4.2 - Applied Adrian Likins' patch to fix non-interactive stuff.
* - -ansi and -pedantic-errors clean. Woo-hoo?
* 0.4.1 - get_colors() now works properly for grayscale images.
@ -43,10 +46,10 @@
*
* Fix that stray line down there between maze wall and dead space border...
*
* Resolve the border & tileable maze difficulty.
*
* Make get_colors() work with indexed. * HELP! *
*
* Tileable mazes are fun :)
*
* If we add many more paramaters, we'll need a preview box.
*
* Also someday:
@ -80,17 +83,18 @@
#include "libgimp/gimpui.h"
#define ENTRY_WIDTH 75
#define MAZE_TITLE "Maze 0.4.2"
#define MAZE_TITLE "Maze 0.5.0"
/* entscale stuff begin */
#define ENTSCALE_INT_SCALE_WIDTH 125
#define ENTSCALE_INT_ENTRY_WIDTH 40
/* entscale stuff end */
typedef struct {
gint width;
gint seed;
gint multiple;
gint offset;
gint width;
gint seed;
gint tile;
gint multiple;
gint offset;
} MazeValues;
typedef struct {
@ -121,6 +125,11 @@ static gint mazegen(gint pos,
gint x,
gint y,
gint rnd);
static gint mazegen_tileable(gint pos,
gchar *maz,
gint x,
gint y,
gint rnd);
static void get_colors (GDrawable * drawable,
guint8 *fg,
guint8 *bg);
@ -136,6 +145,7 @@ static gint maze_dialog (void);
static void maze_close_callback (GtkWidget *widget, gpointer data);
static void maze_ok_callback (GtkWidget *widget, gpointer data);
static void maze_entry_callback (GtkWidget *widget, gpointer data);
static void tile_toggle_callback (GtkWidget *widget, gpointer data);
/* entscale stuff begin */
void entscale_int_new ( GtkWidget *table, gint x, gint y,
@ -168,6 +178,7 @@ static MazeValues mvals =
{
1, /* Passage width */
0, /* seed */
FALSE, /* Tileable? */
57, /* multiple * These two had "Experiment with this?" comments */
1 /* offset * in the maz.c source, so, lets expiriment. :) */
};
@ -177,7 +188,7 @@ static MazeInterface mint =
FALSE /* run */
};
MAIN ()
MAIN () /*;*/
static void
query ()
@ -189,6 +200,7 @@ query ()
{ PARAM_DRAWABLE, "drawable", "Input drawable" },
/* If we did have parameters, these be them: */
{ PARAM_INT32, "mazep_size", "Size of the passages" },
{ PARAM_INT32, "maze_tile", "Tileable maze?"},
{ PARAM_INT32, "maze_rseed", "Random Seed"},
{ PARAM_INT32, "maze_multiple", "Multiple (use 57)" },
{ PARAM_INT32, "maze_offset", "Offset (use 1)" }
@ -217,11 +229,13 @@ run (gchar *name,
gint *nreturn_vals,
GParam **return_vals)
{
static GParam values[1];
GParam *values;
GDrawable *drawable;
GRunModeType run_mode;
GStatusType status = STATUS_SUCCESS;
values=g_new(GParam,1);
run_mode = param[0].data.d_int32;
*nreturn_vals = 1;
@ -251,7 +265,7 @@ run (gchar *name,
case RUN_NONINTERACTIVE:
/* WARNING: Stupidity Follows */
if (nparams != 7)
if (nparams != 8)
{
status = STATUS_CALLING_ERROR;
}
@ -259,8 +273,9 @@ run (gchar *name,
{
mvals.width = (gint) param[3].data.d_int32;
mvals.seed = (gint) param[4].data.d_int32;
mvals.multiple = (gint) param[5].data.d_int32;
mvals.offset = (gint) param[6].data.d_int32;
mvals.tile = (gint) param[5].data.d_int32;
mvals.multiple = (gint) param[6].data.d_int32;
mvals.offset = (gint) param[7].data.d_int32;
}
break;
/* #define MAZE_DEBUG */
@ -331,9 +346,16 @@ maze( GDrawable * drawable)
mw = (x2-x1) / mvals.width;
mh = (y2-y1) / mvals.width;
mw -= !(mw & 1); /* mazegen doesn't work with even-sized mazes. */
mh -= !(mh & 1); /* Note I don't warn the user about this... */
if (!mvals.tile) {
mw -= !(mw & 1); /* mazegen doesn't work with even-sized mazes. */
mh -= !(mh & 1); /* Note I don't warn the user about this... */
} else { /* On the other hand, tileable mazes must be even. */
mw -= (mw & 1);
mh -= (mh & 1);
};
/* It will really suck if your tileable maze ends up with this dead
space around it. Oh well, life is hard. */
deadx = ((x2-x1) - mw * mvals.width)/2;
deady = ((y2-y1) - mh * mvals.width)/2;
@ -347,8 +369,12 @@ maze( GDrawable * drawable)
(x2-x1),(y2-y1),mw,mh,deadx,deady,mvals.width);
#endif
(void) mazegen((mw+1), maz, mw, mh, mvals.seed);
/* (void) mazegen(((x2-x1)+1), maz, (x2-x1), (y2-y1), rnd); */
if (mvals.tile) {
(void) mazegen_tileable((mw+1), maz, mw, mh, mvals.seed);
} else {
(void) mazegen((mw+1), maz, mw, mh, mvals.seed);
/* (void) mazegen(((x2-x1)+1), maz, (x2-x1), (y2-y1), rnd); */
}
/* It's done happening. Now go through and color dem pixels... */
for (pr = gimp_pixel_rgns_register (1, &dest_rgn);
@ -514,6 +540,80 @@ gchar *maz;
return 0;
}
#define ABSMOD(A,B) ( ((A) < 0) ? (((B) + (A)) % (B)) : ((A) % (B)) )
gint mazegen_tileable(pos, maz, x, y, rnd)
gint pos, x, y, rnd;
gchar *maz;
{
gchar d, i;
gint c=0, j=1, npos=2;
/* Punch a hole here... */
maz[pos] = 1;
/* If there is a wall two rows above us, bit 1 is 1. */
while((d= (pos < (x*2) ? (maz[x*(y-2)+pos] ? 0 : 1) : (maz[pos - x - x ] ? 0 : 1))
/* If there is a wall two rows below us, bit 2 is 1. */
| (pos >= x * (y-2) ? (maz[pos - x*(y-2)] ? 0 : 2) : (maz[pos +x+x] ? 0 : 2))
/* If there is a wall two columns to the right, bit 3 is 1. */
| (pos % x >= x - 2 ? (maz[pos + 2 - x] ? 0 : 4) : (maz[pos + 2] ? 0 : 4))
/* If there is a wall two colums to the left, bit 4 is 1. */
| ((pos % x <= 1 ) ? (maz[pos + x - 2] ? 0 : 8) : (maz[pos-2] ? 0 : 8)))) {
/* Note if all bits are 0, d is false, we don't do this
while loop, we don't call ourselves again, so this branch
is done. */
/* I see what this loop does (more or less), but I don't know
_why_ it does it this way... I also haven't figured out exactly
which values of multiple will work and which won't. */
do {
rnd = (rnd * mvals.multiple + mvals.offset);
i = 3 & (rnd / d);
if (++c > 100) { /* Break and try to salvage something */
i=99; /* if it looks like we're going to be */
break; /* here forever... */
}
} while ( !(d & ( 1 << i) ) );
/* ...While there's *not* a wall in direction i. */
/* (stop looping when there is) */
switch (i) { /* This is simple enough. */
case 0: /* Go in the direction we just figured . . . */
j = pos < x ? x*(y-1)+pos : pos - x;
npos = pos < (x*2) ? x*(y-2)+pos : pos - x - x;
break;
case 1:
j = pos >= x*(y-1) ? pos - x * (y-1) : pos + x;
npos = pos >= x*(y-2) ? pos - x*(y-2) : pos + x + x;
break;
case 2:
j = (pos % x) == (x - 1) ? pos + 1 - x : pos + 1;
npos = (pos % x) >= (x - 2) ? pos + 2 - x : pos + 2;
break;
case 3:
j= (pos % x) == 0 ? pos + x - 1 : pos - 1;
npos = (pos % x) <= 1 ? pos + x - 2 : pos - 2;
break;
case 99:
return 1; /* Hey neat, broken mazes! */
break; /* (Umm... Wow... Yeah, neat.) */
default:
break;
}
/* And punch a hole there. */
maz[j] = 1;
/* Now, start again just past where we punched the hole... */
mazegen_tileable(npos, maz, x, y, rnd);
} /* End while(d=...) Loop */
return 0;
}
static void
get_colors (GDrawable *drawable, guint8 *fg, guint8 *bg)
{
@ -616,6 +716,7 @@ static gint maze_dialog()
GtkWidget *label;
GtkWidget *entry;
GtkWidget *notebook;
GtkWidget *tilecheck;
gchar **argv;
gint argc;
gchar buffer[32];
@ -662,7 +763,7 @@ static gint maze_dialog()
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
gtk_container_border_width (GTK_CONTAINER (frame), 10);
/* gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), frame, TRUE, TRUE, 0); */
table = gtk_table_new (2, 2, FALSE);
table = gtk_table_new (3, 2, FALSE);
gtk_container_border_width (GTK_CONTAINER (table), 10);
gtk_container_add (GTK_CONTAINER (frame), table);
@ -686,6 +787,13 @@ static gint maze_dialog()
1, 64, FALSE,
NULL, NULL);
tilecheck = gtk_check_button_new_with_label ("Tileable?");
gtk_signal_connect (GTK_OBJECT (tilecheck), "clicked",
GTK_SIGNAL_FUNC (tile_toggle_callback), NULL);
gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (tilecheck), mvals.tile);
gtk_table_attach (GTK_TABLE (table), tilecheck, 0, 2, 2, 3, GTK_FILL, 0, 5, 0 );
gtk_widget_show (tilecheck);
/* Add Options page to notebook */
gtk_widget_show (frame);
gtk_widget_show (table);
@ -773,6 +881,12 @@ maze_entry_callback (GtkWidget *widget,
*text_val = atoi (gtk_entry_get_text (GTK_ENTRY (widget)));
}
static void
tile_toggle_callback (GtkWidget *widget, gpointer data)
{
mvals.tile = GTK_TOGGLE_BUTTON (widget)->active;
}
/* ==================================================================== */
/* As found in pixelize.c */

View File

@ -474,7 +474,7 @@ randomize_prepare_row(GPixelRgn *pixel_rgn, guchar *data, int x, int y, int w)
* Fill in edge pixels
*/
for (b = 0; b < pixel_rgn->bpp; b++) {
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}
@ -494,7 +494,7 @@ randomize_prepare_row(GPixelRgn *pixel_rgn, guchar *data, int x, int y, int w)
* Fill in edge pixels \
*/ \
for (b = 0; b < (pixel_rgn)->bpp; b++) { \
data[-(pixel_rgn)->bpp + b] = data[b]; \
data[-(gint)(pixel_rgn)->bpp + b] = data[b]; \
data[w * (pixel_rgn)->bpp + b] = data[(w - 1) * (pixel_rgn)->bpp + b]; \
} \
}

View File

@ -1,6 +1,6 @@
/*
* Rotate plug-in v0.4 by Sven Neumann, neumanns@uni-duesseldorf.de
* 1997/10/17
* Rotate plug-in v0.5 by Sven Neumann, neumanns@uni-duesseldorf.de
* 1998/01/09
*
* Any suggestions, bug-reports or patches are very welcome.
*
@ -37,6 +37,8 @@
* (10/01/97) v0.3 now handles layered images and undo
* (10/13/97) v0.3a small bugfix, no real changes
* (10/17/97) v0.4 now handles selections
* (01/09/98) v0.5 a few fixes to support portability
*
*/
/* TODO List
@ -53,7 +55,7 @@
/* Defines */
#define PLUG_IN_NAME "plug_in_rotate"
#define PLUG_IN_PRINT_NAME "Rotate"
#define PLUG_IN_VERSION "v0.4 (10/17/97)"
#define PLUG_IN_VERSION "v0.5 (01/09/98)"
#define PLUG_IN_MENU_PATH "<Image>/Filters/Transforms/Rotate"
#define PLUG_IN_IMAGE_TYPES "RGB*, INDEXED*, GRAY*"
#define PLUG_IN_AUTHOR "Sven Neumann (neumanns@uni-duesseldorf.de)"
@ -65,7 +67,7 @@
#define IN_ARGS { PARAM_INT32, "run_mode", "Interactive, non-interactive"},\
{ PARAM_IMAGE, "image", "Input image" },\
{ PARAM_DRAWABLE, "drawable", "Input drawable"},\
{ PARAM_INT32, "angle", "Angle { 90° (1), 180° (2), 270° (3) }"},\
{ PARAM_INT32, "angle", "Angle { 90 (1), 180 (2), 270 (3) } degrees"},\
{ PARAM_INT32, "everything", "Rotate the whole image? { TRUE, FALSE }"}
#define NUMBER_OUT_ARGS 0
@ -73,7 +75,7 @@
#define NUM_ANGLES 4
char *angle_label[NUM_ANGLES] = { "0°", "90°", "180°", "270°" };
gchar *angle_label[NUM_ANGLES] = { "0", "90", "180", "270" };
typedef struct {
gint angle;
@ -86,7 +88,7 @@ typedef struct {
static RotateValues rotvals =
{
1, /* default to 90° */
1, /* default to 90 degrees */
1 /* default to whole image */
};
@ -97,10 +99,10 @@ static RotateInterface rotint =
static void query (void);
static void run (char *name,
int nparams, /* number of parameters passed in */
static void run (gchar *name,
gint nparams, /* number of parameters passed in */
GParam * param, /* parameters passed in */
int *nreturn_vals, /* number of parameters returned */
gint *nreturn_vals, /* number of parameters returned */
GParam ** return_vals); /* parameters to be returned */
static void rotate (void);
static void rotate_drawable (GDrawable *drawable);
@ -140,9 +142,9 @@ static void query (void)
{
static GParamDef args[] = { IN_ARGS };
static int nargs = NUMBER_IN_ARGS;
static gint nargs = NUMBER_IN_ARGS;
static GParamDef *return_vals = OUT_ARGS;
static int nreturn_vals = NUMBER_OUT_ARGS;
static gint nreturn_vals = NUMBER_OUT_ARGS;
/* the actual installation of the plugin */
gimp_install_procedure (PLUG_IN_NAME,
@ -161,10 +163,10 @@ gimp_install_procedure (PLUG_IN_NAME,
}
static void
run (char *name, /* name of plugin */
int nparams, /* number of in-paramters */
run (gchar *name, /* name of plugin */
gint nparams, /* number of in-paramters */
GParam * param, /* in-parameters */
int *nreturn_vals, /* number of out-parameters */
gint *nreturn_vals, /* number of out-parameters */
GParam ** return_vals) /* out-parameters */
{
@ -211,19 +213,17 @@ run (char *name, /* name of plugin */
}
else
status = STATUS_CALLING_ERROR;
break;
case RUN_WITH_LAST_VALS:
/* Possibly retrieve data from a previous run */
gimp_get_data (PLUG_IN_NAME, &rotvals);
rotvals.angle = rotvals.angle % NUM_ANGLES;
case RUN_WITH_LAST_VALS:
/* Possibly retrieve data from a previous run */
gimp_get_data (PLUG_IN_NAME, &rotvals);
rotvals.angle = rotvals.angle % NUM_ANGLES;
break;
break;
default:
break;
}
default:
break;
} /* switch */
if (status == STATUS_SUCCESS)
{
@ -252,7 +252,7 @@ gint32
my_gimp_selection_is_empty (gint32 image_ID)
{
GParam *return_vals;
int nreturn_vals;
gint nreturn_vals;
gint32 is_empty;
/* initialize */
@ -276,7 +276,7 @@ gint32
my_gimp_selection_float (gint32 image_ID, gint32 drawable_ID)
{
GParam *return_vals;
int nreturn_vals;
gint nreturn_vals;
gint32 layer_ID;
return_vals = gimp_run_procedure ("gimp_selection_float",
@ -563,6 +563,7 @@ rotate_dialog (void)
GtkWidget *frame;
GtkWidget *table;
GtkWidget *radio_label;
GtkWidget *unit_label;
GtkWidget *hbox;
GtkWidget *radio_button;
GtkWidget *check_button;
@ -622,7 +623,7 @@ rotate_dialog (void)
frame, TRUE, TRUE, 0);
/* table for radio_buttons */
table = gtk_table_new (5, 5, FALSE);
table = gtk_table_new (6, 6, FALSE);
gtk_table_set_row_spacings (GTK_TABLE (table), 8);
gtk_table_set_col_spacings (GTK_TABLE (table), 1);
gtk_container_border_width (GTK_CONTAINER (table), 6);
@ -630,7 +631,7 @@ rotate_dialog (void)
/* radio buttons */
/* 0° */
/* 0 degrees */
radio_label = gtk_label_new ( angle_label[0] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 2, 3, 0, 1, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -644,7 +645,7 @@ rotate_dialog (void)
radio_pressed[0]);
gtk_widget_show (radio_button);
/* 90° */
/* 90 degrees */
radio_label = gtk_label_new ( angle_label[1] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 4, 5, 2, 3, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -658,7 +659,7 @@ rotate_dialog (void)
radio_pressed[1]);
gtk_widget_show (radio_button);
/* 180° */
/* 180 degrees */
radio_label = gtk_label_new ( angle_label[2] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 2, 3, 4, 5, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -672,7 +673,7 @@ rotate_dialog (void)
radio_pressed[2]);
gtk_widget_show (radio_button);
/* 270° */
/* 270 degrees */
radio_label = gtk_label_new ( angle_label[3] );
gtk_table_attach ( GTK_TABLE (table), radio_label, 0, 1, 2, 3, 0, 0, 0, 0);
gtk_widget_show (radio_label);
@ -686,6 +687,13 @@ rotate_dialog (void)
radio_pressed[3]);
gtk_widget_show (radio_button);
/* label: degrees */
unit_label = gtk_label_new ( "degrees" );
gtk_table_attach ( GTK_TABLE (table), unit_label, 5, 6, 5, 6, 0, 0, 0, 0);
gtk_widget_show (unit_label);
gtk_widget_show (table);
gtk_widget_show (frame);
@ -748,7 +756,7 @@ rotate_toggle_update (GtkWidget *widget,
{
gint *toggle_val;
toggle_val = (int *) data;
toggle_val = (gint *) data;
if (GTK_TOGGLE_BUTTON (widget)->active)
*toggle_val = TRUE;
@ -802,3 +810,6 @@ ErrorMessage(guchar *message)
}

View File

@ -464,7 +464,7 @@ prepare_row (GPixelRgn *pixel_rgn,
/* Fill in edge pixels */
for (b = 0; b < pixel_rgn->bpp; b++)
{
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}

View File

@ -658,7 +658,7 @@ diff_prepare_row (GPixelRgn *pixel_rgn,
/* Fill in edge pixels */
for (b = 0; b < pixel_rgn->bpp; b++)
{
data[-pixel_rgn->bpp + b] = data[b];
data[-(gint)pixel_rgn->bpp + b] = data[b];
data[w * pixel_rgn->bpp + b] = data[(w - 1) * pixel_rgn->bpp + b];
}
}