diff --git a/ChangeLog b/ChangeLog index 6f670c742f..f1ccbf7ff6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +Tue Jan 13 21:36:07 PST 1998 Manish Singh + + * 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 * plug-ins/fractaltrace/fractaltrace.c (query): ymax argument was diff --git a/app/gimage.c b/app/gimage.c index f56d98c97e..646202ec83 100644 --- a/app/gimage.c +++ b/app/gimage.c @@ -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 */ diff --git a/app/text_tool.c b/app/text_tool.c index ba7aaa175d..1012ed34c5 100644 --- a/app/text_tool.c +++ b/app/text_tool.c @@ -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 diff --git a/app/tools/gimptexttool.c b/app/tools/gimptexttool.c index ba7aaa175d..1012ed34c5 100644 --- a/app/tools/gimptexttool.c +++ b/app/tools/gimptexttool.c @@ -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 diff --git a/app/tools/text_tool.c b/app/tools/text_tool.c index ba7aaa175d..1012ed34c5 100644 --- a/app/tools/text_tool.c +++ b/app/tools/text_tool.c @@ -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 diff --git a/ltconfig b/ltconfig index 9d3ca58fae..e9d3a83795 100755 --- a/ltconfig +++ b/ltconfig @@ -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 <&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 < $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 <> $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. diff --git a/ltmain.sh b/ltmain.sh index 978e91c81e..cb46c84987 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -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 <&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 diff --git a/plug-ins/blur/blur.c b/plug-ins/blur/blur.c index da92f016ad..639ba7e702 100644 --- a/plug-ins/blur/blur.c +++ b/plug-ins/blur/blur.c @@ -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]; } } diff --git a/plug-ins/common/blur.c b/plug-ins/common/blur.c index da92f016ad..639ba7e702 100644 --- a/plug-ins/common/blur.c +++ b/plug-ins/common/blur.c @@ -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]; } } diff --git a/plug-ins/common/randomize.c b/plug-ins/common/randomize.c index 151bdeb215..faf15cc9e4 100644 --- a/plug-ins/common/randomize.c +++ b/plug-ins/common/randomize.c @@ -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]; \ } \ } diff --git a/plug-ins/common/rotate.c b/plug-ins/common/rotate.c index b43980ca6d..a717f081a1 100644 --- a/plug-ins/common/rotate.c +++ b/plug-ins/common/rotate.c @@ -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 "/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) } + + + diff --git a/plug-ins/common/vpropagate.c b/plug-ins/common/vpropagate.c index ba4a216108..ca6868b269 100644 --- a/plug-ins/common/vpropagate.c +++ b/plug-ins/common/vpropagate.c @@ -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]; } } diff --git a/plug-ins/maze/maze.c b/plug-ins/maze/maze.c index 5d3ed8755e..f3b66d2865 100644 --- a/plug-ins/maze/maze.c +++ b/plug-ins/maze/maze.c @@ -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 @@ -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 */ diff --git a/plug-ins/randomize/randomize.c b/plug-ins/randomize/randomize.c index 151bdeb215..faf15cc9e4 100644 --- a/plug-ins/randomize/randomize.c +++ b/plug-ins/randomize/randomize.c @@ -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]; \ } \ } diff --git a/plug-ins/rotate/rotate.c b/plug-ins/rotate/rotate.c index b43980ca6d..a717f081a1 100644 --- a/plug-ins/rotate/rotate.c +++ b/plug-ins/rotate/rotate.c @@ -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 "/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) } + + + diff --git a/plug-ins/vpropagate/vpropagate.c b/plug-ins/vpropagate/vpropagate.c index ba4a216108..ca6868b269 100644 --- a/plug-ins/vpropagate/vpropagate.c +++ b/plug-ins/vpropagate/vpropagate.c @@ -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]; } } diff --git a/plug-ins/warp/warp.c b/plug-ins/warp/warp.c index 06826355e5..8006e9ce57 100644 --- a/plug-ins/warp/warp.c +++ b/plug-ins/warp/warp.c @@ -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]; } }