diff --git a/src/switchmenu.c b/src/switchmenu.c index 2f109e28..4d1cdbc8 100644 --- a/src/switchmenu.c +++ b/src/switchmenu.c @@ -258,10 +258,11 @@ UpdateSwitchMenu(WScreen *scr, WWindow *wwin, int action) if (entry->text) wfree(entry->text); - if (wwin->frame->title) - sprintf(title, "%s", wwin->frame->title); - else - sprintf(title, "%s", DEF_WINDOW_TITLE); + if (wwin->frame->title) + snprintf(title, MAX_MENU_TEXT_LENGTH, "%s", + wwin->frame->title); + else + sprintf(title, "%s", DEF_WINDOW_TITLE); t = ShrinkString(scr->menu_entry_font, title, MAX_WINDOWLIST_WIDTH); entry->text = t; diff --git a/util/wmaker.inst.in b/util/wmaker.inst.in index 8fd29fdc..5490a367 100644 --- a/util/wmaker.inst.in +++ b/util/wmaker.inst.in @@ -293,7 +293,7 @@ if test -z "#LITE#" ; then echo "menu that will be used by default is the property list one. Read" echo " $GSDIR/Library/WindowMaker/README" echo "for information on how to change it." - if [ "${inst_menu%.*}" == "menu" ]; then + if [ "${inst_menu%.*}" = "menu" ]; then echo "However, since you have locale set to $LOCALE and plmenu for such locale" echo "was not found, your WMRootMenu contains path to text formated menu:" echo " $GSDIR/Library/WindowMaker/$inst_menu" diff --git a/util/wmchlocale.in b/util/wmchlocale.in index 2dcb3a0e..2c12f9bd 100644 --- a/util/wmchlocale.in +++ b/util/wmchlocale.in @@ -9,7 +9,7 @@ PROGRAM=`basename $0` VERSION="0.1" -if [ "x$GNUSTEP_USER_ROOT" == "x" ]; then +if [ "x$GNUSTEP_USER_ROOT" = "x" ]; then GSDIR="$HOME/GNUstep" else GSDIR="$GNUSTEP_USER_ROOT" @@ -33,7 +33,7 @@ help_msg() { exit 0 } -if (( $# == 0 )); then +if [ $# -eq 0 ]; then help_msg fi @@ -52,7 +52,7 @@ for i in $*; do fi;; esac done -if [ "$new_locale" == "default" ]; then +if [ "$new_locale" = "default" ]; then new_locale="" fi @@ -75,7 +75,7 @@ fi echo -n "Setting Window Maker root menu... " -if [ -z "$new_locale" ] || [ "$new_locale" == "en" ]; then +if [ -z "$new_locale" ] || [ "$new_locale" = "en" ]; then menu_list="plmenu menu" else menu_list="plmenu.$new_locale menu.$new_locale plmenu menu" @@ -88,7 +88,12 @@ for new_menu in $menu_list; do else echo "fail (copying default)" fi - if [ "${new_menu:0:4}" == "menu" ]; then # plain + new_menu_tmp=$new_menu + # Set new_menu_tmp to first 4 letters of $new_menu. + while [ ${#new_menu_tmp} -gt 4 ]; do + new_menu_tmp=${new_menu_tmp%?} + done + if [ "${new_menu_tmp}" = "menu" ]; then # plain echo "\"$wm_dir/$new_menu\"" >"$GSDIR/Defaults/WMRootMenu" else # proplist cp -f "$wm_dir/$new_menu" "$GSDIR/Defaults/WMRootMenu" @@ -104,7 +109,7 @@ fi echo -n "Setting Window Maker fonts... " -if [ -z "$new_locale" ] || [ "$new_locale" == "en" ]; then +if [ -z "$new_locale" ] || [ "$new_locale" = "en" ]; then args="default $nodef" else args="--locale=$new_locale $nodef" diff --git a/util/wsetfont b/util/wsetfont index 96f9e6eb..fdc3ecbf 100755 --- a/util/wsetfont +++ b/util/wsetfont @@ -115,7 +115,7 @@ DomainWindowMaker="WindowTitleFont MenuTitleFont MenuTextFont IconTitleFont Clip for i in $DomainNames; do tmp="Domain$i" - AllKeys="$AllKeys ${!tmp}" + eval AllKeys="\"$AllKeys \$${tmp}\"" done # @@ -212,8 +212,9 @@ if [ -z "$family" ]; then family="default" else for i in $all_codings; do - for j in ${!i}; do - if [ "$j" == "${locale%_*}" ]; then + eval _i="\$$i" + for j in ${_i}; do + if [ "$j" = "${locale%_*}" ]; then family="$i" break 2 fi @@ -227,7 +228,7 @@ fi # is_supported="" for i in $Supported; do - if test "$family" == "$i"; then + if test "$family" = "$i"; then is_supported="YES" break fi @@ -245,7 +246,7 @@ fi # is_nodef_unable="" for i in $NodefUnable; do - if test "$family" == "$i"; then + if test "$family" = "$i"; then if test -n "$nodef"; then # --nodef with one from $NodefUnable echo -e "\n"\ "Sorry, --nodef argument is not allowed for these font codings:\n"\ @@ -268,22 +269,22 @@ if test -z "$nodef"; then for i in $AllKeys; do if test -n "$is_nodef_unable"; then # japanese,... defaults tmp="$family$i" - eval $i=${!tmp} + eval $i="\$${tmp}" else # rest, load defaults not_font="" for j in $NotFont; do - if test "$i" == "$j"; then + if test "$i" = "$j"; then not_font="YES" break fi done if test -n "$not_font"; then # don't append coding (not default!) tmp="${family}$i" - eval $i="${!tmp}" + eval $i="\$${tmp}" else # append coding tmp="Default$i" tmp1="${family}Coding" - eval $i="${!tmp}${!tmp1}" + eval $i="\$${tmp}\$${tmp1}" fi fi done @@ -305,36 +306,36 @@ for i in $DomainNames; do echo echo "Setting up $i domain file..." tmp="Domain$i" - for j in ${!tmp}; do + eval _tmp="\$${tmp}" + for j in ${_tmp}; do if test -n "$nodef"; then # --nodef, change coding only not_font="" for k in $NotFont; do - if test "$k" == "$j"; then + if test "$k" = "$j"; then not_font="YES" break; fi done if test -n "$not_font"; then # don't append coding tmp1="${family}$j" - eval $j=${!tmp1} + eval $j="\$${tmp1}" else # append coding #TODO:make this funny sed script a lot smarter to let us make changes in font # lists, etc... (then we can enable --nodef for NodefUnable codings) #TODO:better (or at least any) check, whether wmaker is installed... tmp1="${family}Coding" - eval $j=$($WDREAD $i $j | sed -e "s/\(^-.*-\).*-.*$/\1${!tmp1}/g") - if test -z "${!j}"; then # failed, load default + eval _tmp1="\$${tmp1}" + eval $j=$($WDREAD $i $j | sed -e "s/\(^-.*-\).*-.*$/\1${_tmp1}/g") + eval _j="\$$j" + if test -z "${_j}"; then # failed, load default tmp2="Default$j" - eval $j=${!tmp2} + eval $j="\$${tmp2}" fi fi fi - tmp1="$j=\"${!j}\"" # cosmetic length workaround - if (( ${#tmp1} > 80 )); then - tmp1=$(echo "${tmp1:0:76}...\"") - fi - echo "$tmp1" - $WDWRITE $i $j \"${!j}\" + eval _j="\$$j" + echo $j="${_j}" + $WDWRITE $i $j \"${_j}\" done done echo