# HG changeset patch # User Michael Goffioul # Date 1358015775 18000 # Node ID 0cbac4d3a81c5ac034e826562de403c27cc13d95 # Parent f97a746e45445ce1dee82ed006b74b16f2eeb7b2# Parent 58018d0e9a715098b635c5bcbac6b3f3ef080cbd periodic merge of default to classdef diff -r f97a746e4544 -r 0cbac4d3a81c .hgsubstate --- a/.hgsubstate Fri Jan 11 16:27:22 2013 -0500 +++ b/.hgsubstate Sat Jan 12 13:36:15 2013 -0500 @@ -1,1 +1,1 @@ -c960be36c9f3f690ceb43057314354e0df736416 gnulib-hg +e2f98cc246bdb12f2d35366042d4aab61c3d54fe gnulib-hg diff -r f97a746e4544 -r 0cbac4d3a81c .hgtags --- a/.hgtags Fri Jan 11 16:27:22 2013 -0500 +++ b/.hgtags Sat Jan 12 13:36:15 2013 -0500 @@ -70,3 +70,4 @@ a95432e7309ca6fc776c02939264bb6d443f3525 release-3-6-3 2e8eb9ac43a5f8cfaf0423814a312ed47cb80485 rc-3-6-4-0 df1aceb8f0bc6b5b5062907931cc663467f57d93 ss-3-7-1 +858cbf6fc2ec1c232f5cf1d75dc344439b39a89c rc-3-6-4-1 diff -r f97a746e4544 -r 0cbac4d3a81c Makefile.am --- a/Makefile.am Fri Jan 11 16:27:22 2013 -0500 +++ b/Makefile.am Sat Jan 12 13:36:15 2013 -0500 @@ -38,8 +38,7 @@ NEWS \ README \ bootstrap \ - build-aux/bootstrap_gnulib \ - build-aux/bootstrap_gnulib.conf \ + bootstrap.conf \ build-aux/mk-opts.pl \ build-aux/mkinstalldirs \ build-aux/move-if-change \ diff -r f97a746e4544 -r 0cbac4d3a81c bootstrap --- a/bootstrap Fri Jan 11 16:27:22 2013 -0500 +++ b/bootstrap Sat Jan 12 13:36:15 2013 -0500 @@ -1,53 +1,978 @@ #! /bin/sh -# bootstrap -# Run this to generate all the initial makefiles, etc. +# Print a version string. +scriptversion=2012-07-19.14; # UTC + +# Bootstrap this package from checked-out sources. + +# Copyright (C) 2003-2012 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Originally written by Paul Eggert. The canonical version of this +# script is maintained as build-aux/bootstrap in gnulib, however, to +# be useful to your project, you should place a copy of it under +# version control in the top-level directory of your project. The +# intent is that all customization can be done with a bootstrap.conf +# file also maintained in your version control; gnulib comes with a +# template build-aux/bootstrap.conf to get you started. + +# Please report bugs or propose patches to bug-gnulib@gnu.org. + +nl=' +' + +# Ensure file names are sorted consistently across platforms. +LC_ALL=C +export LC_ALL + +# Ensure that CDPATH is not set. Otherwise, the output from cd +# would cause trouble in at least one use below. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +local_gl_dir=gl + +me=$0 + +usage() { + cat <&2 +} + +# warn_ WORD1... +warn_ () +{ + # If IFS does not start with ' ', set it and emit the warning in a subshell. + case $IFS in + ' '*) warnf_ '%s\n' "$*";; + *) (IFS=' '; warn_ "$@");; + esac +} -## Use --foreign since we auto-generate the AUTHORS file and the default -## --gnu strictness level doesn't like it if the AUTHORS file is missing. +# die WORD1... +die() { warn_ "$@"; exit 1; } + +# Configuration. + +# Name of the Makefile.am +gnulib_mk=gnulib.mk + +# List of gnulib modules needed. +gnulib_modules= + +# Any gnulib files needed that are not in modules. +gnulib_files= + +: ${AUTOPOINT=autopoint} +: ${AUTORECONF=autoreconf} + +# A function to be called right after gnulib-tool is run. +# Override it via your own definition in bootstrap.conf. +bootstrap_post_import_hook() { :; } + +# A function to be called after everything else in this script. +# Override it via your own definition in bootstrap.conf. +bootstrap_epilogue() { :; } + +# The command to download all .po files for a specified domain into +# a specified directory. Fill in the first %s is the domain name, and +# the second with the destination directory. Use rsync's -L and -r +# options because the latest/%s directory and the .po files within are +# all symlinks. +po_download_command_format=\ +"rsync --delete --exclude '*.s1' -Lrtvz \ + 'translationproject.org::tp/latest/%s/' '%s'" + +# Fallback for downloading .po files (if rsync fails). +po_download_command_format2=\ +"wget --mirror -nd -q -np -A.po -P '%s' \ + http://translationproject.org/latest/%s/" -AUTOMAKE="automake --foreign --warnings=no-portability" -export AUTOMAKE +extract_package_name=' + /^AC_INIT(/{ + /.*,.*,.*, */{ + s/// + s/[][]//g + s/)$// + p + q + } + s/AC_INIT(\[*// + s/]*,.*// + s/^GNU // + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + s/[^A-Za-z0-9_]/-/g + p + } +' +package=$(sed -n "$extract_package_name" configure.ac) \ + || die 'cannot find package name in configure.ac' +gnulib_name=lib$package + +build_aux=build-aux +source_base=lib +m4_base=m4 +doc_base=doc +tests_base=tests +gnulib_extra_files='' + +# Additional gnulib-tool options to use. Use "\newline" to break lines. +gnulib_tool_option_extras= + +# Other locale categories that need message catalogs. +EXTRA_LOCALE_CATEGORIES= + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS='\\\ + --flag=_:1:pass-c-format\\\ + --flag=N_:1:pass-c-format\\\ + --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ +' + +# Package bug report address and copyright holder for gettext files +COPYRIGHT_HOLDER='Free Software Foundation, Inc.' +MSGID_BUGS_ADDRESS=bug-$package@gnu.org + +# Files we don't want to import. +excluded_files= + +# File that should exist in the top directory of a checked out hierarchy, +# but not in a distribution tarball. +checkout_only_file=README-hacking + +# Whether to use copies instead of symlinks. +copy=false + +# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want +# those files to be generated in directories like lib/, m4/, and po/. +# Or set it to 'auto' to make this script select which to use based +# on which version control system (if any) is used in the source directory. +vc_ignore=auto + +# Set this to true in bootstrap.conf to enable --bootstrap-sync by +# default. +bootstrap_sync=false + +# Don't use git to update gnulib sources. We keep gnulib under a +# Mercurial subrepository instead +use_git=false +GNULIB_SRCDIR=gnulib-hg -## Check for files that automake --gnu would normally look for, except -## AUTHORS, which we autogenerate from the documentation files along with -## building the rest of Octave, and INSTALL, which is linked from -## gnulib/doc/INSTALL by the bootstrap script. +# find_tool ENVVAR NAMES... +# ------------------------- +# Search for a required program. Use the value of ENVVAR, if set, +# otherwise find the first of the NAMES that can be run (i.e., +# supports --version). If found, set ENVVAR to the program name, +# die otherwise. +# +# FIXME: code duplication, see also gnu-web-doc-update. +find_tool () +{ + find_tool_envvar=$1 + shift + find_tool_names=$@ + eval "find_tool_res=\$$find_tool_envvar" + if test x"$find_tool_res" = x; then + for i + do + if ($i --version /dev/null 2>&1; then + find_tool_res=$i + break + fi + done + else + find_tool_error_prefix="\$$find_tool_envvar: " + fi + test x"$find_tool_res" != x \ + || die "one of these is required: $find_tool_names" + ($find_tool_res --version /dev/null 2>&1 \ + || die "${find_tool_error_prefix}cannot run $find_tool_res --version" + eval "$find_tool_envvar=\$find_tool_res" + eval "export $find_tool_envvar" +} + +# Find sha1sum, named gsha1sum on MacPorts, and shasum on Mac OS X 10.6. +find_tool SHA1SUM sha1sum gsha1sum shasum + +# Override the default configuration, if necessary. +# Make sure that bootstrap.conf is sourced from the current directory +# if we were invoked as "sh bootstrap". +case "$0" in + */*) test -r "$0.conf" && . "$0.conf" ;; + *) test -r "$0.conf" && . ./"$0.conf" ;; +esac -for f in NEWS README COPYING; do - if ! test -f $f; then - echo "required file $f is missing" 2>&1 - exit 1 - fi +# Extra files from gnulib, which override files from other sources. +test -z "${gnulib_extra_files}" && \ + gnulib_extra_files=" + $build_aux/install-sh + $build_aux/mdate-sh + $build_aux/texinfo.tex + $build_aux/depcomp + $build_aux/config.guess + $build_aux/config.sub + doc/INSTALL +" + +if test "$vc_ignore" = auto; then + vc_ignore= + test -d .git && vc_ignore=.gitignore + test -d CVS && vc_ignore="$vc_ignore .cvsignore" +fi + +# Translate configuration into internal form. + +# Parse options. + +for option +do + case $option in + --help) + usage + exit;; + --gnulib-srcdir=*) + GNULIB_SRCDIR=${option#--gnulib-srcdir=};; + --skip-po) + SKIP_PO=t;; + --force) + checkout_only_file=;; + --copy) + copy=true;; + --bootstrap-sync) + bootstrap_sync=true;; + --no-bootstrap-sync) + bootstrap_sync=false;; + --no-git) + use_git=false;; + *) + die "$option: unknown option";; + esac done -echo "generating source lists for liboctave/operators/module.mk..." +$use_git || test -d "$GNULIB_SRCDIR" \ + || die "Error: --no-git requires --gnulib-srcdir" + +if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then + die "Bootstrapping from a non-checked-out distribution is risky." +fi + +# Ensure that lines starting with ! sort last, per gitignore conventions +# for whitelisting exceptions after a more generic blacklist pattern. +sort_patterns() { + sort -u "$@" | sed '/^!/ { + H + d + } + $ { + P + x + s/^\n// + }' | sed '/^$/d' +} + +# If $STR is not already on a line by itself in $FILE, insert it, +# sorting the new contents of the file and replacing $FILE with the result. +insert_sorted_if_absent() { + file=$1 + str=$2 + test -f $file || touch $file + echo "$str" | sort_patterns - $file | cmp -s - $file > /dev/null \ + || { echo "$str" | sort_patterns - $file > $file.bak \ + && mv $file.bak $file; } \ + || die "insert_sorted_if_absent $file $str: failed" +} + +# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with +# insert_sorted_if_absent. +insert_vc_ignore() { + vc_ignore_file="$1" + pattern="$2" + case $vc_ignore_file in + *.gitignore) + # A .gitignore entry that does not start with '/' applies + # recursively to subdirectories, so prepend '/' to every + # .gitignore entry. + pattern=$(echo "$pattern" | sed s,^,/,);; + esac + insert_sorted_if_absent "$vc_ignore_file" "$pattern" +} + +# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. +found_aux_dir=no +grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ + >/dev/null && found_aux_dir=yes +grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ + >/dev/null && found_aux_dir=yes +test $found_aux_dir = yes \ + || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" + +# If $build_aux doesn't exist, create it now, otherwise some bits +# below will malfunction. If creating it, also mark it as ignored. +if test ! -d $build_aux; then + mkdir $build_aux + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + insert_vc_ignore $dot_ig $build_aux + done +fi -(cd liboctave/operators; ./config-ops.sh) +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +sort_ver() { # sort -V is not generally available + ver1="$1" + ver2="$2" + + # split on '.' and compare each component + i=1 + while : ; do + p1=$(echo "$ver1" | cut -d. -f$i) + p2=$(echo "$ver2" | cut -d. -f$i) + if [ ! "$p1" ]; then + echo "$1 $2" + break + elif [ ! "$p2" ]; then + echo "$2 $1" + break + elif [ ! "$p1" = "$p2" ]; then + if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison + echo "$2 $1" + elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison + echo "$1 $2" + else # numeric, then lexicographic comparison + lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) + if [ "$lp" = "$p2" ]; then + echo "$1 $2" + else + echo "$2 $1" + fi + fi + break + fi + i=$(($i+1)) + done +} -echo "generating doc/interpreter/images.mk..." +get_version() { + app=$1 + + $app --version >/dev/null 2>&1 || return 1 + + $app --version 2>&1 | + sed -n '# Move version to start of line. + s/.*[v ]\([0-9]\)/\1/ + + # Skip lines that do not start with version. + /^[0-9]/!d + + # Remove characters after the version. + s/[^.a-z0-9-].*// + + # The first component must be digits only. + s/^\([0-9]*\)[a-z-].*/\1/ + + #the following essentially does s/5.005/5.5/ + s/\.0*\([1-9]\)/.\1/g + p + q' +} + +check_versions() { + ret=0 + + while read app req_ver; do + # We only need libtoolize from the libtool package. + if test "$app" = libtool; then + app=libtoolize + fi + # Exempt git if --no-git is in effect. + if test "$app" = git; then + $use_git || continue + fi + # Honor $APP variables ($TAR, $AUTOCONF, etc.) + appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_') + test "$appvar" = TAR && appvar=AMTAR + case $appvar in + GZIP) ;; # Do not use $GZIP: it contains gzip options. + *) eval "app=\${$appvar-$app}" ;; + esac -(cd doc/interpreter; ./config-images.sh) + # Handle the still-experimental Automake-NG programs specially. + # They remain named as the mainstream Automake programs ("automake", + # and "aclocal") to avoid gratuitous incompatibilities with + # pre-existing usages (by, say, autoreconf, or custom autogen.sh + # scripts), but correctly identify themselves (as being part of + # "GNU automake-ng") when asked their version. + case $app in + automake-ng|aclocal-ng) + app=${app%-ng} + ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { + warn_ "Error: '$app' not found or not from Automake-NG" + ret=1 + continue + } ;; + esac + if [ "$req_ver" = "-" ]; then + # Merely require app to exist; not all prereq apps are well-behaved + # so we have to rely on $? rather than get_version. + $app --version >/dev/null 2>&1 + if [ 126 -le $? ]; then + warn_ "Error: '$app' not found" + ret=1 + fi + else + # Require app to produce a new enough version string. + inst_ver=$(get_version $app) + if [ ! "$inst_ver" ]; then + warn_ "Error: '$app' not found" + ret=1 + else + latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) + if [ ! "$latest_ver" = "$inst_ver" ]; then + warnf_ '%s\n' \ + "Error: '$app' version == $inst_ver is too old" \ + " '$app' version >= $req_ver is required" + ret=1 + fi + fi + fi + done + + return $ret +} -echo "generating libinterp/dldfcn/module.mk..." +print_versions() { + echo "Program Min_version" + echo "----------------------" + printf %s "$buildreq" + echo "----------------------" + # can't depend on column -t +} + +use_libtool=0 +# We'd like to use grep -E, to see if any of LT_INIT, +# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, +# but that's not portable enough (e.g., for Solaris). +grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ + && use_libtool=1 +grep '^[ ]*LT_INIT' configure.ac >/dev/null \ + && use_libtool=1 +if test $use_libtool = 1; then + find_tool LIBTOOLIZE glibtoolize libtoolize +fi + +# gnulib-tool requires at least automake and autoconf. +# If either is not listed, add it (with minimum version) as a prerequisite. +case $buildreq in + *automake*) ;; + *) buildreq="automake 1.9 +$buildreq" ;; +esac +case $buildreq in + *autoconf*) ;; + *) buildreq="autoconf 2.59 +$buildreq" ;; +esac + +# When we can deduce that gnulib-tool will require patch, +# and when patch is not already listed as a prerequisite, add it, too. +if test -d "$local_gl_dir" \ + && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then + case $buildreq in + *patch*) ;; + *) buildreq="patch - +$buildreq" ;; + esac +fi -(cd libinterp/dldfcn; ./config-module.sh) +if ! printf "$buildreq" | check_versions; then + echo >&2 + if test -f README-prereq; then + die "See README-prereq for how to get the prerequisite programs" + else + die "Please install the prerequisite programs" + fi +fi + +echo "$0: Bootstrapping from checked-out $package sources..." + +# See if we can use gnulib's git-merge-changelog merge driver. +if test -d .git && (git --version) >/dev/null 2>/dev/null ; then + if git config merge.merge-changelog.driver >/dev/null ; then + : + elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then + echo "$0: initializing git-merge-changelog driver" + git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' + git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' + else + echo "$0: consider installing git-merge-changelog from gnulib" + fi +fi + + +cleanup_gnulib() { + status=$? + rm -fr "$gnulib_path" + exit $status +} + +git_modules_config () { + test -f .gitmodules && git config --file .gitmodules "$@" +} + +gnulib_path=$(git_modules_config submodule.gnulib.path) +test -z "$gnulib_path" && gnulib_path=gnulib + +# Get gnulib files. + +case ${GNULIB_SRCDIR--} in +-) + if git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + git submodule init || exit $? + git submodule update || exit $? -echo "bootstrapping..." + elif [ ! -d "$gnulib_path" ]; then + echo "$0: getting gnulib files..." + + trap cleanup_gnulib 1 2 13 15 + + shallow= + git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' + git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || + cleanup_gnulib + + trap - 1 2 13 15 + fi + GNULIB_SRCDIR=$gnulib_path + ;; +*) + # Use GNULIB_SRCDIR as a reference. + if test -d "$GNULIB_SRCDIR"/.git && \ + git_modules_config submodule.gnulib.url >/dev/null; then + echo "$0: getting gnulib files..." + if git submodule -h|grep -- --reference > /dev/null; then + # Prefer the one-liner available in git 1.6.4 or newer. + git submodule update --init --reference "$GNULIB_SRCDIR" \ + "$gnulib_path" || exit $? + else + # This fallback allows at least git 1.5.5. + if test -f "$gnulib_path"/gnulib-tool; then + # Since file already exists, assume submodule init already complete. + git submodule update || exit $? + else + # Older git can't clone into an empty directory. + rmdir "$gnulib_path" 2>/dev/null + git clone --reference "$GNULIB_SRCDIR" \ + "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ + && git submodule init && git submodule update \ + || exit $? + fi + fi + GNULIB_SRCDIR=$gnulib_path + fi + ;; +esac + +if $bootstrap_sync; then + cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { + echo "$0: updating bootstrap and restarting..." + exec sh -c \ + 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ + -- "$GNULIB_SRCDIR/build-aux/bootstrap" \ + "$0" "$@" --no-bootstrap-sync + } +fi -build-aux/bootstrap_gnulib "$@" +gnulib_tool=$GNULIB_SRCDIR/gnulib-tool +<$gnulib_tool || exit $? + +# Get translations. + +download_po_files() { + subdir=$1 + domain=$2 + echo "$me: getting translations into $subdir for $domain..." + cmd=$(printf "$po_download_command_format" "$domain" "$subdir") + eval "$cmd" && return + # Fallback to HTTP. + cmd=$(printf "$po_download_command_format2" "$subdir" "$domain") + eval "$cmd" +} + +# Mirror .po files to $po_dir/.reference and copy only the new +# or modified ones into $po_dir. Also update $po_dir/LINGUAS. +# Note po files that exist locally only are left in $po_dir but will +# not be included in LINGUAS and hence will not be distributed. +update_po_files() { + # Directory containing primary .po files. + # Overwrite them only when we're sure a .po file is new. + po_dir=$1 + domain=$2 + + # Mirror *.po files into this dir. + # Usually contains *.s1 checksum files. + ref_po_dir="$po_dir/.reference" + + test -d $ref_po_dir || mkdir $ref_po_dir || return + download_po_files $ref_po_dir $domain \ + && ls "$ref_po_dir"/*.po 2>/dev/null | + sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return + + langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') + test "$langs" = '*' && langs=x + for po in $langs; do + case $po in x) continue;; esac + new_po="$ref_po_dir/$po.po" + cksum_file="$ref_po_dir/$po.s1" + if ! test -f "$cksum_file" || + ! test -f "$po_dir/$po.po" || + ! $SHA1SUM -c --status "$cksum_file" \ + < "$new_po" > /dev/null; then + echo "$me: updated $po_dir/$po.po..." + cp "$new_po" "$po_dir/$po.po" \ + && $SHA1SUM < "$new_po" > "$cksum_file" + fi + done +} + +case $SKIP_PO in +'') + if test -d po; then + update_po_files po $package || exit + fi + + if test -d runtime-po; then + update_po_files runtime-po $package-runtime || exit + fi;; +esac + +symlink_to_dir() +{ + src=$1/$2 + dst=${3-$2} + + test -f "$src" && { + + # If the destination directory doesn't exist, create it. + # This is required at least for "lib/uniwidth/cjk.h". + dst_dir=$(dirname "$dst") + if ! test -d "$dst_dir"; then + mkdir -p "$dst_dir" + + # If we've just created a directory like lib/uniwidth, + # tell version control system(s) it's ignorable. + # FIXME: for now, this does only one level + parent=$(dirname "$dst_dir") + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore $ig "${dst_dir##*/}" + done + fi + + if $copy; then + { + test ! -h "$dst" || { + echo "$me: rm -f $dst" && + rm -f "$dst" + } + } && + test -f "$dst" && + cmp -s "$src" "$dst" || { + echo "$me: cp -fp $src $dst" && + cp -fp "$src" "$dst" + } + else + # Leave any existing symlink alone, if it already points to the source, + # so that broken build tools that care about symlink times + # aren't confused into doing unnecessary builds. Conversely, if the + # existing symlink's time stamp is older than the source, make it afresh, + # so that broken tools aren't confused into skipping needed builds. See + # . + test -h "$dst" && + src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && + dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && + test "$src_i" = "$dst_i" && + both_ls=$(ls -dt "$src" "$dst") && + test "X$both_ls" = "X$dst$nl$src" || { + dot_dots= + case $src in + /*) ;; + *) + case /$dst/ in + *//* | */../* | */./* | /*/*/*/*/*/) + die "invalid symlink calculation: $src -> $dst";; + /*/*/*/*/) dot_dots=../../../;; + /*/*/*/) dot_dots=../../;; + /*/*/) dot_dots=../;; + esac;; + esac + + echo "$me: ln -fs $dot_dots$src $dst" && + ln -fs "$dot_dots$src" "$dst" + } + fi + } +} + +version_controlled_file() { + parent=$1 + file=$2 + if test -d .git; then + git rm -n "$file" > /dev/null 2>&1 + elif test -d .svn; then + svn log -r HEAD "$file" > /dev/null 2>&1 + elif test -d CVS; then + grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | + grep '^/[^/]*/[0-9]' > /dev/null + else + warn_ "no version control for $file?" + false + fi +} + +# NOTE: we have to be careful to run both autopoint and libtoolize +# before gnulib-tool, since gnulib-tool is likely to provide newer +# versions of files "installed" by these two programs. +# Then, *after* gnulib-tool (see below), we have to be careful to +# run autoreconf in such a way that it does not run either of these +# two just-pre-run programs. + +# Import from gettext. +with_gettext=yes +grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ + with_gettext=no + +if test $with_gettext = yes || test $use_libtool = 1; then + + tempbase=.bootstrap$$ + trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15 + + > $tempbase.0 > $tempbase.1 && + find . ! -type d -print | sort > $tempbase.0 || exit -## G77 is obsolete, but it is still the first option in the autoconf Fortran -## macros. We should avoid it, because mixing old versions of g77 with modern -## gcc and g++ causes trouble. The following will make it harder (but not -## impossible) for users to make this mistake. -## -## FIXME -- we should really work to fix autoconf so that it prefers gfortran -## over g77 even when searching for a Fortran 77 compiler. + if test $with_gettext = yes; then + # Released autopoint has the tendency to install macros that have been + # obsoleted in current gnulib, so run this before gnulib-tool. + echo "$0: $AUTOPOINT --force" + $AUTOPOINT --force || exit + fi + + # Autoreconf runs aclocal before libtoolize, which causes spurious + # warnings if the initial aclocal is confused by the libtoolized + # (or worse out-of-date) macro directory. + # libtoolize 1.9b added the --install option; but we support back + # to libtoolize 1.5.22, where the install action was default. + if test $use_libtool = 1; then + install= + case $($LIBTOOLIZE --help) in + *--install*) install=--install ;; + esac + echo "running: $LIBTOOLIZE $install --copy" + $LIBTOOLIZE $install --copy + fi + + find . ! -type d -print | sort >$tempbase.1 + old_IFS=$IFS + IFS=$nl + for file in $(comm -13 $tempbase.0 $tempbase.1); do + IFS=$old_IFS + parent=${file%/*} + version_controlled_file "$parent" "$file" || { + for dot_ig in x $vc_ignore; do + test $dot_ig = x && continue + ig=$parent/$dot_ig + insert_vc_ignore "$ig" "${file##*/}" + done + } + done + IFS=$old_IFS + + rm -f $tempbase.0 $tempbase.1 + trap - 1 2 13 15 +fi + +# Import from gnulib. + +gnulib_tool_options="\ + --import\ + --no-changelog\ + --aux-dir $build_aux\ + --doc-base $doc_base\ + --lib $gnulib_name\ + --m4-base $m4_base/\ + --source-base $source_base/\ + --tests-base $tests_base\ + --local-dir $local_gl_dir\ + $gnulib_tool_option_extras\ +" +if test $use_libtool = 1; then + case "$gnulib_tool_options " in + *' --libtool '*) ;; + *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; + esac +fi +echo "$0: $gnulib_tool $gnulib_tool_options --import ..." +$gnulib_tool $gnulib_tool_options --import $gnulib_modules && + +for file in $gnulib_files; do + symlink_to_dir "$GNULIB_SRCDIR" $file \ + || die "failed to symlink $file" +done + +bootstrap_post_import_hook \ + || die "bootstrap_post_import_hook failed" + +# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some +# gnulib-populated directories. Such .m4 files would cause aclocal to fail. +# The following requires GNU find 4.2.3 or newer. Considering the usual +# portability constraints of this script, that may seem a very demanding +# requirement, but it should be ok. Ignore any failure, which is fine, +# since this is only a convenience to help developers avoid the relatively +# unusual case in which a symlinked-to .m4 file is git-removed from gnulib +# between successive runs of this script. +find "$m4_base" "$source_base" \ + -depth \( -name '*.m4' -o -name '*.[ch]' \) \ + -type l -xtype l -delete > /dev/null 2>&1 -echo "replacing all occurrences of g77 with gfortran in configure script..." +# Some systems (RHEL 5) are using ancient autotools, for which the +# --no-recursive option had not been invented. Detect that lack and +# omit the option when it's not supported. FIXME in 2017: remove this +# hack when RHEL 5 autotools are updated, or when they become irrelevant. +no_recursive= +case $($AUTORECONF --help) in + *--no-recursive*) no_recursive=--no-recursive;; +esac + +# Tell autoreconf not to invoke autopoint or libtoolize; they were run above. +echo "running: AUTOPOINT=true LIBTOOLIZE=true " \ + "$AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS" +AUTOPOINT=true LIBTOOLIZE=true \ + $AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS \ + || die "autoreconf failed" + +# Get some extra files from gnulib, overriding existing files. +for file in $gnulib_extra_files; do + case $file in + */INSTALL) dst=INSTALL;; + build-aux/*) dst=$build_aux/${file#build-aux/};; + *) dst=$file;; + esac + symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ + || die "failed to symlink $file" +done + +if test $with_gettext = yes; then + # Create gettext configuration. + echo "$0: Creating po/Makevars from po/Makevars.template ..." + rm -f po/Makevars + sed ' + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ + /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >po/Makevars \ + || die 'cannot generate po/Makevars' -sed 's/g77/gfortran/g' configure > configure.t -mv configure.t configure -chmod 755 configure + # If the 'gettext' module is in use, grab the latest Makefile.in.in. + # If only the 'gettext-h' module is in use, assume autopoint already + # put the correct version of this file into place. + case $gnulib_modules in + *gettext-h*) ;; + *gettext*) + cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ + || die "cannot create po/Makefile.in.in" + ;; + esac + + if test -d runtime-po; then + # Similarly for runtime-po/Makevars, but not quite the same. + rm -f runtime-po/Makevars + sed ' + /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ + /^subdir *=.*/s/=.*/= runtime-po/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + } + ' po/Makevars.template >runtime-po/Makevars \ + || die 'cannot generate runtime-po/Makevars' + + # Copy identical files from po to runtime-po. + (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) + fi +fi + +bootstrap_epilogue + +echo "$0: done. Now you can run './configure'." + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -r f97a746e4544 -r 0cbac4d3a81c bootstrap.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bootstrap.conf Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,192 @@ +# Bootstrap configuration. + +# Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# gnulib modules used by this package. +gnulib_modules=" + base64 + canonicalize + chdir + close + closedir + copysign + copysignf + crypto/md5 + dup2 + fclose + fcntl + fflush + filemode + float + floor + floorf + fnmatch + fopen + fseek + ftell + getcwd + gethostname + getopt-gnu + gettimeofday + glob + isatty + link + lstat + malloc-gnu + mkdir + mkfifo + mkostemp + mktime + nanosleep + nproc + open + opendir + pathmax + putenv + progname + readdir + readlink + realloc-gnu + rename + rmdir + round + roundf + select + sigaction + signal + sigprocmask + sleep + stat + stddef + stdint + stdio + strerror + strftime + strptime + symlink + sys_stat + sys_time + sys_times + time + times + tmpfile + trunc + truncf + unistd + unlink + vasprintf +" + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ + --from-code=UTF-8\\\ + --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\ + --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\ + --flag=wrapf:1:c-format\\\ +' + +# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]" +# appears in configure.ac, exclude some unnecessary files. +# Without grep's -E option (not portable enough, pre-configure), +# the following test is ugly. Also, this depends on the existence +# of configure.ac, not the obsolescent-named configure.in. But if +# you're using this infrastructure, you should care about such things. + +gettext_external=0 +grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && + gettext_external=1 +grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && + gettext_external=1 + +if test $gettext_external = 1; then + # Gettext supplies these files, but we don't need them since + # we don't have an intl subdirectory. + excluded_files=' + m4/glibc2.m4 + m4/intdiv0.m4 + m4/lcmessage.m4 + m4/lock.m4 + m4/printf-posix.m4 + m4/size_max.m4 + m4/uintmax_t.m4 + m4/ulonglong.m4 + m4/visibility.m4 + m4/xsize.m4 + ' +fi + +# Build prerequisites +buildreq="\ +autoconf 2.59 +automake 1.9.6 +git 1.5.5 +tar - +" +checkout_only_file=etc/HACKING +gnulib_tool_option_extras="--libtool" +gnulib_name="libgnu" +source_base="libgnu" + +## Use --foreign since we auto-generate the AUTHORS file and the default +## --gnu strictness level doesn't like it if the AUTHORS file is missing. + +AUTOMAKE="automake --foreign --warnings=no-portability" +export AUTOMAKE + +bootstrap_post_import_hook () +{ + ## Check for files that automake --gnu would normally look for, except + ## AUTHORS, which we autogenerate from the documentation files along + ## with building the rest of Octave, and INSTALL, which is linked from + ## gnulib/doc/INSTALL by the bootstrap script. + + for f in NEWS README COPYING; do + if ! test -f $f; then + echo "required file $f is missing" 2>&1 + exit 1 + fi + done + + echo "generating source lists for liboctave/operators/module.mk..." + + (cd liboctave/operators; ./config-ops.sh) + + echo "generating doc/interpreter/images.mk..." + + (cd doc/interpreter; ./config-images.sh) + + echo "generating libinterp/dldfcn/module.mk..." + + (cd libinterp/dldfcn; ./config-module.sh) +} + +bootstrap_epilogue () +{ + ## G77 is obsolete, but it is still the first option in the autoconf + ## Fortran macros. We should avoid it, because mixing old versions of + ## g77 with modern gcc and g++ causes trouble. The following will + ## make it harder (but not impossible) for users to make this mistake. + ## + ## FIXME -- we should really work to fix autoconf so that it prefers + ## gfortran over g77 even when searching for a Fortran 77 compiler. + + echo "replacing all occurrences of g77 with gfortran in configure script..." + + sed 's/g77/gfortran/g' configure > configure.t + mv configure.t configure + chmod 755 configure +} diff -r f97a746e4544 -r 0cbac4d3a81c build-aux/bootstrap_gnulib --- a/build-aux/bootstrap_gnulib Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,978 +0,0 @@ -#! /bin/sh -# Print a version string. -scriptversion=2012-07-19.14; # UTC - -# Bootstrap this package from checked-out sources. - -# Copyright (C) 2003-2012 Free Software Foundation, Inc. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Originally written by Paul Eggert. The canonical version of this -# script is maintained as build-aux/bootstrap in gnulib, however, to -# be useful to your project, you should place a copy of it under -# version control in the top-level directory of your project. The -# intent is that all customization can be done with a bootstrap.conf -# file also maintained in your version control; gnulib comes with a -# template build-aux/bootstrap.conf to get you started. - -# Please report bugs or propose patches to bug-gnulib@gnu.org. - -nl=' -' - -# Ensure file names are sorted consistently across platforms. -LC_ALL=C -export LC_ALL - -# Ensure that CDPATH is not set. Otherwise, the output from cd -# would cause trouble in at least one use below. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -local_gl_dir=gl - -me=$0 - -usage() { - cat <&2 -} - -# warn_ WORD1... -warn_ () -{ - # If IFS does not start with ' ', set it and emit the warning in a subshell. - case $IFS in - ' '*) warnf_ '%s\n' "$*";; - *) (IFS=' '; warn_ "$@");; - esac -} - -# die WORD1... -die() { warn_ "$@"; exit 1; } - -# Configuration. - -# Name of the Makefile.am -gnulib_mk=gnulib.mk - -# List of gnulib modules needed. -gnulib_modules= - -# Any gnulib files needed that are not in modules. -gnulib_files= - -: ${AUTOPOINT=autopoint} -: ${AUTORECONF=autoreconf} - -# A function to be called right after gnulib-tool is run. -# Override it via your own definition in bootstrap.conf. -bootstrap_post_import_hook() { :; } - -# A function to be called after everything else in this script. -# Override it via your own definition in bootstrap.conf. -bootstrap_epilogue() { :; } - -# The command to download all .po files for a specified domain into -# a specified directory. Fill in the first %s is the domain name, and -# the second with the destination directory. Use rsync's -L and -r -# options because the latest/%s directory and the .po files within are -# all symlinks. -po_download_command_format=\ -"rsync --delete --exclude '*.s1' -Lrtvz \ - 'translationproject.org::tp/latest/%s/' '%s'" - -# Fallback for downloading .po files (if rsync fails). -po_download_command_format2=\ -"wget --mirror -nd -q -np -A.po -P '%s' \ - http://translationproject.org/latest/%s/" - -extract_package_name=' - /^AC_INIT(/{ - /.*,.*,.*, */{ - s/// - s/[][]//g - s/)$// - p - q - } - s/AC_INIT(\[*// - s/]*,.*// - s/^GNU // - y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - s/[^A-Za-z0-9_]/-/g - p - } -' -package=$(sed -n "$extract_package_name" configure.ac) \ - || die 'cannot find package name in configure.ac' -gnulib_name=lib$package - -build_aux=build-aux -source_base=lib -m4_base=m4 -doc_base=doc -tests_base=tests -gnulib_extra_files='' - -# Additional gnulib-tool options to use. Use "\newline" to break lines. -gnulib_tool_option_extras= - -# Other locale categories that need message catalogs. -EXTRA_LOCALE_CATEGORIES= - -# Additional xgettext options to use. Use "\\\newline" to break lines. -XGETTEXT_OPTIONS='\\\ - --flag=_:1:pass-c-format\\\ - --flag=N_:1:pass-c-format\\\ - --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ -' - -# Package bug report address and copyright holder for gettext files -COPYRIGHT_HOLDER='Free Software Foundation, Inc.' -MSGID_BUGS_ADDRESS=bug-$package@gnu.org - -# Files we don't want to import. -excluded_files= - -# File that should exist in the top directory of a checked out hierarchy, -# but not in a distribution tarball. -checkout_only_file=README-hacking - -# Whether to use copies instead of symlinks. -copy=false - -# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want -# those files to be generated in directories like lib/, m4/, and po/. -# Or set it to 'auto' to make this script select which to use based -# on which version control system (if any) is used in the source directory. -vc_ignore=auto - -# Set this to true in bootstrap.conf to enable --bootstrap-sync by -# default. -bootstrap_sync=false - -# Don't use git to update gnulib sources. We keep gnulib under a -# Mercurial subrepository instead -use_git=false -GNULIB_SRCDIR=gnulib-hg - -# find_tool ENVVAR NAMES... -# ------------------------- -# Search for a required program. Use the value of ENVVAR, if set, -# otherwise find the first of the NAMES that can be run (i.e., -# supports --version). If found, set ENVVAR to the program name, -# die otherwise. -# -# FIXME: code duplication, see also gnu-web-doc-update. -find_tool () -{ - find_tool_envvar=$1 - shift - find_tool_names=$@ - eval "find_tool_res=\$$find_tool_envvar" - if test x"$find_tool_res" = x; then - for i - do - if ($i --version /dev/null 2>&1; then - find_tool_res=$i - break - fi - done - else - find_tool_error_prefix="\$$find_tool_envvar: " - fi - test x"$find_tool_res" != x \ - || die "one of these is required: $find_tool_names" - ($find_tool_res --version /dev/null 2>&1 \ - || die "${find_tool_error_prefix}cannot run $find_tool_res --version" - eval "$find_tool_envvar=\$find_tool_res" - eval "export $find_tool_envvar" -} - -# Find sha1sum, named gsha1sum on MacPorts, and shasum on Mac OS X 10.6. -find_tool SHA1SUM sha1sum gsha1sum shasum - -# Override the default configuration, if necessary. -# Make sure that bootstrap.conf is sourced from the current directory -# if we were invoked as "sh bootstrap". -case "$0" in - */*) test -r "$0.conf" && . "$0.conf" ;; - *) test -r "$0.conf" && . ./"$0.conf" ;; -esac - -# Extra files from gnulib, which override files from other sources. -test -z "${gnulib_extra_files}" && \ - gnulib_extra_files=" - $build_aux/install-sh - $build_aux/mdate-sh - $build_aux/texinfo.tex - $build_aux/depcomp - $build_aux/config.guess - $build_aux/config.sub - doc/INSTALL -" - -if test "$vc_ignore" = auto; then - vc_ignore= - test -d .git && vc_ignore=.gitignore - test -d CVS && vc_ignore="$vc_ignore .cvsignore" -fi - -# Translate configuration into internal form. - -# Parse options. - -for option -do - case $option in - --help) - usage - exit;; - --gnulib-srcdir=*) - GNULIB_SRCDIR=${option#--gnulib-srcdir=};; - --skip-po) - SKIP_PO=t;; - --force) - checkout_only_file=;; - --copy) - copy=true;; - --bootstrap-sync) - bootstrap_sync=true;; - --no-bootstrap-sync) - bootstrap_sync=false;; - --no-git) - use_git=false;; - *) - die "$option: unknown option";; - esac -done - -$use_git || test -d "$GNULIB_SRCDIR" \ - || die "Error: --no-git requires --gnulib-srcdir" - -if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then - die "Bootstrapping from a non-checked-out distribution is risky." -fi - -# Ensure that lines starting with ! sort last, per gitignore conventions -# for whitelisting exceptions after a more generic blacklist pattern. -sort_patterns() { - sort -u "$@" | sed '/^!/ { - H - d - } - $ { - P - x - s/^\n// - }' | sed '/^$/d' -} - -# If $STR is not already on a line by itself in $FILE, insert it, -# sorting the new contents of the file and replacing $FILE with the result. -insert_sorted_if_absent() { - file=$1 - str=$2 - test -f $file || touch $file - echo "$str" | sort_patterns - $file | cmp -s - $file > /dev/null \ - || { echo "$str" | sort_patterns - $file > $file.bak \ - && mv $file.bak $file; } \ - || die "insert_sorted_if_absent $file $str: failed" -} - -# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with -# insert_sorted_if_absent. -insert_vc_ignore() { - vc_ignore_file="$1" - pattern="$2" - case $vc_ignore_file in - *.gitignore) - # A .gitignore entry that does not start with '/' applies - # recursively to subdirectories, so prepend '/' to every - # .gitignore entry. - pattern=$(echo "$pattern" | sed s,^,/,);; - esac - insert_sorted_if_absent "$vc_ignore_file" "$pattern" -} - -# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac. -found_aux_dir=no -grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ - >/dev/null && found_aux_dir=yes -grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ - >/dev/null && found_aux_dir=yes -test $found_aux_dir = yes \ - || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" - -# If $build_aux doesn't exist, create it now, otherwise some bits -# below will malfunction. If creating it, also mark it as ignored. -if test ! -d $build_aux; then - mkdir $build_aux - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - insert_vc_ignore $dot_ig $build_aux - done -fi - -# Note this deviates from the version comparison in automake -# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a -# but this should suffice as we won't be specifying old -# version formats or redundant trailing .0 in bootstrap.conf. -# If we did want full compatibility then we should probably -# use m4_version_compare from autoconf. -sort_ver() { # sort -V is not generally available - ver1="$1" - ver2="$2" - - # split on '.' and compare each component - i=1 - while : ; do - p1=$(echo "$ver1" | cut -d. -f$i) - p2=$(echo "$ver2" | cut -d. -f$i) - if [ ! "$p1" ]; then - echo "$1 $2" - break - elif [ ! "$p2" ]; then - echo "$2 $1" - break - elif [ ! "$p1" = "$p2" ]; then - if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison - echo "$2 $1" - elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison - echo "$1 $2" - else # numeric, then lexicographic comparison - lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1) - if [ "$lp" = "$p2" ]; then - echo "$1 $2" - else - echo "$2 $1" - fi - fi - break - fi - i=$(($i+1)) - done -} - -get_version() { - app=$1 - - $app --version >/dev/null 2>&1 || return 1 - - $app --version 2>&1 | - sed -n '# Move version to start of line. - s/.*[v ]\([0-9]\)/\1/ - - # Skip lines that do not start with version. - /^[0-9]/!d - - # Remove characters after the version. - s/[^.a-z0-9-].*// - - # The first component must be digits only. - s/^\([0-9]*\)[a-z-].*/\1/ - - #the following essentially does s/5.005/5.5/ - s/\.0*\([1-9]\)/.\1/g - p - q' -} - -check_versions() { - ret=0 - - while read app req_ver; do - # We only need libtoolize from the libtool package. - if test "$app" = libtool; then - app=libtoolize - fi - # Exempt git if --no-git is in effect. - if test "$app" = git; then - $use_git || continue - fi - # Honor $APP variables ($TAR, $AUTOCONF, etc.) - appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_') - test "$appvar" = TAR && appvar=AMTAR - case $appvar in - GZIP) ;; # Do not use $GZIP: it contains gzip options. - *) eval "app=\${$appvar-$app}" ;; - esac - - # Handle the still-experimental Automake-NG programs specially. - # They remain named as the mainstream Automake programs ("automake", - # and "aclocal") to avoid gratuitous incompatibilities with - # pre-existing usages (by, say, autoreconf, or custom autogen.sh - # scripts), but correctly identify themselves (as being part of - # "GNU automake-ng") when asked their version. - case $app in - automake-ng|aclocal-ng) - app=${app%-ng} - ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { - warn_ "Error: '$app' not found or not from Automake-NG" - ret=1 - continue - } ;; - esac - if [ "$req_ver" = "-" ]; then - # Merely require app to exist; not all prereq apps are well-behaved - # so we have to rely on $? rather than get_version. - $app --version >/dev/null 2>&1 - if [ 126 -le $? ]; then - warn_ "Error: '$app' not found" - ret=1 - fi - else - # Require app to produce a new enough version string. - inst_ver=$(get_version $app) - if [ ! "$inst_ver" ]; then - warn_ "Error: '$app' not found" - ret=1 - else - latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) - if [ ! "$latest_ver" = "$inst_ver" ]; then - warnf_ '%s\n' \ - "Error: '$app' version == $inst_ver is too old" \ - " '$app' version >= $req_ver is required" - ret=1 - fi - fi - fi - done - - return $ret -} - -print_versions() { - echo "Program Min_version" - echo "----------------------" - printf %s "$buildreq" - echo "----------------------" - # can't depend on column -t -} - -use_libtool=0 -# We'd like to use grep -E, to see if any of LT_INIT, -# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac, -# but that's not portable enough (e.g., for Solaris). -grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \ - && use_libtool=1 -grep '^[ ]*LT_INIT' configure.ac >/dev/null \ - && use_libtool=1 -if test $use_libtool = 1; then - find_tool LIBTOOLIZE glibtoolize libtoolize -fi - -# gnulib-tool requires at least automake and autoconf. -# If either is not listed, add it (with minimum version) as a prerequisite. -case $buildreq in - *automake*) ;; - *) buildreq="automake 1.9 -$buildreq" ;; -esac -case $buildreq in - *autoconf*) ;; - *) buildreq="autoconf 2.59 -$buildreq" ;; -esac - -# When we can deduce that gnulib-tool will require patch, -# and when patch is not already listed as a prerequisite, add it, too. -if test -d "$local_gl_dir" \ - && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then - case $buildreq in - *patch*) ;; - *) buildreq="patch - -$buildreq" ;; - esac -fi - -if ! printf "$buildreq" | check_versions; then - echo >&2 - if test -f README-prereq; then - die "See README-prereq for how to get the prerequisite programs" - else - die "Please install the prerequisite programs" - fi -fi - -echo "$0: Bootstrapping from checked-out $package sources..." - -# See if we can use gnulib's git-merge-changelog merge driver. -if test -d .git && (git --version) >/dev/null 2>/dev/null ; then - if git config merge.merge-changelog.driver >/dev/null ; then - : - elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then - echo "$0: initializing git-merge-changelog driver" - git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' - git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' - else - echo "$0: consider installing git-merge-changelog from gnulib" - fi -fi - - -cleanup_gnulib() { - status=$? - rm -fr "$gnulib_path" - exit $status -} - -git_modules_config () { - test -f .gitmodules && git config --file .gitmodules "$@" -} - -gnulib_path=$(git_modules_config submodule.gnulib.path) -test -z "$gnulib_path" && gnulib_path=gnulib - -# Get gnulib files. - -case ${GNULIB_SRCDIR--} in --) - if git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - git submodule init || exit $? - git submodule update || exit $? - - elif [ ! -d "$gnulib_path" ]; then - echo "$0: getting gnulib files..." - - trap cleanup_gnulib 1 2 13 15 - - shallow= - git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2' - git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || - cleanup_gnulib - - trap - 1 2 13 15 - fi - GNULIB_SRCDIR=$gnulib_path - ;; -*) - # Use GNULIB_SRCDIR as a reference. - if test -d "$GNULIB_SRCDIR"/.git && \ - git_modules_config submodule.gnulib.url >/dev/null; then - echo "$0: getting gnulib files..." - if git submodule -h|grep -- --reference > /dev/null; then - # Prefer the one-liner available in git 1.6.4 or newer. - git submodule update --init --reference "$GNULIB_SRCDIR" \ - "$gnulib_path" || exit $? - else - # This fallback allows at least git 1.5.5. - if test -f "$gnulib_path"/gnulib-tool; then - # Since file already exists, assume submodule init already complete. - git submodule update || exit $? - else - # Older git can't clone into an empty directory. - rmdir "$gnulib_path" 2>/dev/null - git clone --reference "$GNULIB_SRCDIR" \ - "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ - && git submodule init && git submodule update \ - || exit $? - fi - fi - GNULIB_SRCDIR=$gnulib_path - fi - ;; -esac - -if $bootstrap_sync; then - cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || { - echo "$0: updating bootstrap and restarting..." - exec sh -c \ - 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \ - -- "$GNULIB_SRCDIR/build-aux/bootstrap" \ - "$0" "$@" --no-bootstrap-sync - } -fi - -gnulib_tool=$GNULIB_SRCDIR/gnulib-tool -<$gnulib_tool || exit $? - -# Get translations. - -download_po_files() { - subdir=$1 - domain=$2 - echo "$me: getting translations into $subdir for $domain..." - cmd=$(printf "$po_download_command_format" "$domain" "$subdir") - eval "$cmd" && return - # Fallback to HTTP. - cmd=$(printf "$po_download_command_format2" "$subdir" "$domain") - eval "$cmd" -} - -# Mirror .po files to $po_dir/.reference and copy only the new -# or modified ones into $po_dir. Also update $po_dir/LINGUAS. -# Note po files that exist locally only are left in $po_dir but will -# not be included in LINGUAS and hence will not be distributed. -update_po_files() { - # Directory containing primary .po files. - # Overwrite them only when we're sure a .po file is new. - po_dir=$1 - domain=$2 - - # Mirror *.po files into this dir. - # Usually contains *.s1 checksum files. - ref_po_dir="$po_dir/.reference" - - test -d $ref_po_dir || mkdir $ref_po_dir || return - download_po_files $ref_po_dir $domain \ - && ls "$ref_po_dir"/*.po 2>/dev/null | - sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return - - langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') - test "$langs" = '*' && langs=x - for po in $langs; do - case $po in x) continue;; esac - new_po="$ref_po_dir/$po.po" - cksum_file="$ref_po_dir/$po.s1" - if ! test -f "$cksum_file" || - ! test -f "$po_dir/$po.po" || - ! $SHA1SUM -c --status "$cksum_file" \ - < "$new_po" > /dev/null; then - echo "$me: updated $po_dir/$po.po..." - cp "$new_po" "$po_dir/$po.po" \ - && $SHA1SUM < "$new_po" > "$cksum_file" - fi - done -} - -case $SKIP_PO in -'') - if test -d po; then - update_po_files po $package || exit - fi - - if test -d runtime-po; then - update_po_files runtime-po $package-runtime || exit - fi;; -esac - -symlink_to_dir() -{ - src=$1/$2 - dst=${3-$2} - - test -f "$src" && { - - # If the destination directory doesn't exist, create it. - # This is required at least for "lib/uniwidth/cjk.h". - dst_dir=$(dirname "$dst") - if ! test -d "$dst_dir"; then - mkdir -p "$dst_dir" - - # If we've just created a directory like lib/uniwidth, - # tell version control system(s) it's ignorable. - # FIXME: for now, this does only one level - parent=$(dirname "$dst_dir") - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$parent/$dot_ig - insert_vc_ignore $ig "${dst_dir##*/}" - done - fi - - if $copy; then - { - test ! -h "$dst" || { - echo "$me: rm -f $dst" && - rm -f "$dst" - } - } && - test -f "$dst" && - cmp -s "$src" "$dst" || { - echo "$me: cp -fp $src $dst" && - cp -fp "$src" "$dst" - } - else - # Leave any existing symlink alone, if it already points to the source, - # so that broken build tools that care about symlink times - # aren't confused into doing unnecessary builds. Conversely, if the - # existing symlink's time stamp is older than the source, make it afresh, - # so that broken tools aren't confused into skipping needed builds. See - # . - test -h "$dst" && - src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && - dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && - test "$src_i" = "$dst_i" && - both_ls=$(ls -dt "$src" "$dst") && - test "X$both_ls" = "X$dst$nl$src" || { - dot_dots= - case $src in - /*) ;; - *) - case /$dst/ in - *//* | */../* | */./* | /*/*/*/*/*/) - die "invalid symlink calculation: $src -> $dst";; - /*/*/*/*/) dot_dots=../../../;; - /*/*/*/) dot_dots=../../;; - /*/*/) dot_dots=../;; - esac;; - esac - - echo "$me: ln -fs $dot_dots$src $dst" && - ln -fs "$dot_dots$src" "$dst" - } - fi - } -} - -version_controlled_file() { - parent=$1 - file=$2 - if test -d .git; then - git rm -n "$file" > /dev/null 2>&1 - elif test -d .svn; then - svn log -r HEAD "$file" > /dev/null 2>&1 - elif test -d CVS; then - grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | - grep '^/[^/]*/[0-9]' > /dev/null - else - warn_ "no version control for $file?" - false - fi -} - -# NOTE: we have to be careful to run both autopoint and libtoolize -# before gnulib-tool, since gnulib-tool is likely to provide newer -# versions of files "installed" by these two programs. -# Then, *after* gnulib-tool (see below), we have to be careful to -# run autoreconf in such a way that it does not run either of these -# two just-pre-run programs. - -# Import from gettext. -with_gettext=yes -grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \ - with_gettext=no - -if test $with_gettext = yes || test $use_libtool = 1; then - - tempbase=.bootstrap$$ - trap "rm -f $tempbase.0 $tempbase.1" 1 2 13 15 - - > $tempbase.0 > $tempbase.1 && - find . ! -type d -print | sort > $tempbase.0 || exit - - if test $with_gettext = yes; then - # Released autopoint has the tendency to install macros that have been - # obsoleted in current gnulib, so run this before gnulib-tool. - echo "$0: $AUTOPOINT --force" - $AUTOPOINT --force || exit - fi - - # Autoreconf runs aclocal before libtoolize, which causes spurious - # warnings if the initial aclocal is confused by the libtoolized - # (or worse out-of-date) macro directory. - # libtoolize 1.9b added the --install option; but we support back - # to libtoolize 1.5.22, where the install action was default. - if test $use_libtool = 1; then - install= - case $($LIBTOOLIZE --help) in - *--install*) install=--install ;; - esac - echo "running: $LIBTOOLIZE $install --copy" - $LIBTOOLIZE $install --copy - fi - - find . ! -type d -print | sort >$tempbase.1 - old_IFS=$IFS - IFS=$nl - for file in $(comm -13 $tempbase.0 $tempbase.1); do - IFS=$old_IFS - parent=${file%/*} - version_controlled_file "$parent" "$file" || { - for dot_ig in x $vc_ignore; do - test $dot_ig = x && continue - ig=$parent/$dot_ig - insert_vc_ignore "$ig" "${file##*/}" - done - } - done - IFS=$old_IFS - - rm -f $tempbase.0 $tempbase.1 - trap - 1 2 13 15 -fi - -# Import from gnulib. - -gnulib_tool_options="\ - --import\ - --no-changelog\ - --aux-dir $build_aux\ - --doc-base $doc_base\ - --lib $gnulib_name\ - --m4-base $m4_base/\ - --source-base $source_base/\ - --tests-base $tests_base\ - --local-dir $local_gl_dir\ - $gnulib_tool_option_extras\ -" -if test $use_libtool = 1; then - case "$gnulib_tool_options " in - *' --libtool '*) ;; - *) gnulib_tool_options="$gnulib_tool_options --libtool" ;; - esac -fi -echo "$0: $gnulib_tool $gnulib_tool_options --import ..." -$gnulib_tool $gnulib_tool_options --import $gnulib_modules && - -for file in $gnulib_files; do - symlink_to_dir "$GNULIB_SRCDIR" $file \ - || die "failed to symlink $file" -done - -bootstrap_post_import_hook \ - || die "bootstrap_post_import_hook failed" - -# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some -# gnulib-populated directories. Such .m4 files would cause aclocal to fail. -# The following requires GNU find 4.2.3 or newer. Considering the usual -# portability constraints of this script, that may seem a very demanding -# requirement, but it should be ok. Ignore any failure, which is fine, -# since this is only a convenience to help developers avoid the relatively -# unusual case in which a symlinked-to .m4 file is git-removed from gnulib -# between successive runs of this script. -find "$m4_base" "$source_base" \ - -depth \( -name '*.m4' -o -name '*.[ch]' \) \ - -type l -xtype l -delete > /dev/null 2>&1 - -# Some systems (RHEL 5) are using ancient autotools, for which the -# --no-recursive option had not been invented. Detect that lack and -# omit the option when it's not supported. FIXME in 2017: remove this -# hack when RHEL 5 autotools are updated, or when they become irrelevant. -no_recursive= -case $($AUTORECONF --help) in - *--no-recursive*) no_recursive=--no-recursive;; -esac - -# Tell autoreconf not to invoke autopoint or libtoolize; they were run above. -echo "running: AUTOPOINT=true LIBTOOLIZE=true " \ - "$AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS" -AUTOPOINT=true LIBTOOLIZE=true \ - $AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS \ - || die "autoreconf failed" - -# Get some extra files from gnulib, overriding existing files. -for file in $gnulib_extra_files; do - case $file in - */INSTALL) dst=INSTALL;; - build-aux/*) dst=$build_aux/${file#build-aux/};; - *) dst=$file;; - esac - symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ - || die "failed to symlink $file" -done - -if test $with_gettext = yes; then - # Create gettext configuration. - echo "$0: Creating po/Makevars from po/Makevars.template ..." - rm -f po/Makevars - sed ' - /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ - /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ - /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'| - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >po/Makevars \ - || die 'cannot generate po/Makevars' - - # If the 'gettext' module is in use, grab the latest Makefile.in.in. - # If only the 'gettext-h' module is in use, assume autopoint already - # put the correct version of this file into place. - case $gnulib_modules in - *gettext-h*) ;; - *gettext*) - cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ - || die "cannot create po/Makefile.in.in" - ;; - esac - - if test -d runtime-po; then - # Similarly for runtime-po/Makevars, but not quite the same. - rm -f runtime-po/Makevars - sed ' - /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ - /^subdir *=.*/s/=.*/= runtime-po/ - /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ - /^XGETTEXT_OPTIONS *=/{ - s/$/ \\/ - a\ - '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} - } - ' po/Makevars.template >runtime-po/Makevars \ - || die 'cannot generate runtime-po/Makevars' - - # Copy identical files from po to runtime-po. - (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) - fi -fi - -bootstrap_epilogue - -echo "$0: done. Now you can run './configure'." - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -r f97a746e4544 -r 0cbac4d3a81c build-aux/bootstrap_gnulib.conf --- a/build-aux/bootstrap_gnulib.conf Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -# Bootstrap configuration. - -# Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# gnulib modules used by this package. -gnulib_modules=" - base64 - canonicalize - chdir - close - closedir - copysign - copysignf - crypto/md5 - dup2 - fclose - fcntl - fflush - filemode - float - floor - floorf - fnmatch - fopen - fseek - ftell - getcwd - gethostname - getopt-gnu - gettimeofday - glob - isatty - link - lstat - malloc-gnu - mkdir - mkfifo - mkostemp - mktime - nanosleep - nproc - open - opendir - pathmax - putenv - progname - readdir - readlink - realloc-gnu - rename - rmdir - round - roundf - select - sigaction - signal - sigprocmask - sleep - stat - stddef - stdint - stdio - strerror - strftime - strptime - symlink - sys_stat - sys_time - sys_times - time - times - tmpfile - trunc - truncf - unistd - unlink - vasprintf -" - -# Additional xgettext options to use. Use "\\\newline" to break lines. -XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ - --from-code=UTF-8\\\ - --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\ - --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\ - --flag=wrapf:1:c-format\\\ -' - -# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]" -# appears in configure.ac, exclude some unnecessary files. -# Without grep's -E option (not portable enough, pre-configure), -# the following test is ugly. Also, this depends on the existence -# of configure.ac, not the obsolescent-named configure.in. But if -# you're using this infrastructure, you should care about such things. - -gettext_external=0 -grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && - gettext_external=1 -grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && - gettext_external=1 - -if test $gettext_external = 1; then - # Gettext supplies these files, but we don't need them since - # we don't have an intl subdirectory. - excluded_files=' - m4/glibc2.m4 - m4/intdiv0.m4 - m4/lcmessage.m4 - m4/lock.m4 - m4/printf-posix.m4 - m4/size_max.m4 - m4/uintmax_t.m4 - m4/ulonglong.m4 - m4/visibility.m4 - m4/xsize.m4 - ' -fi - -# Build prerequisites -buildreq="\ -autoconf 2.59 -automake 1.9.6 -git 1.5.5 -tar - -" -checkout_only_file=etc/HACKING -gnulib_tool_option_extras="--libtool" -gnulib_name="libgnu" -source_base="libgnu" diff -r f97a746e4544 -r 0cbac4d3a81c build-aux/common.mk --- a/build-aux/common.mk Fri Jan 11 16:27:22 2013 -0500 +++ b/build-aux/common.mk Sat Jan 12 13:36:15 2013 -0500 @@ -1,3 +1,5 @@ +CROSS_TOOL_PREFIX = @CROSS_TOOL_PREFIX@ + AWK = @AWK@ export AWK @@ -154,6 +156,22 @@ NO_UNDEFINED_LDFLAG = @NO_UNDEFINED_LDFLAG@ +MKOCTFILE_CC = @MKOCTFILE_CC@ +MKOCTFILE_CXX = @MKOCTFILE_CXX@ +MKOCTFILE_DL_LD = @MKOCTFILE_DL_LD@ +MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ +MKOCTFILE_F77 = @MKOCTFILE_F77@ +MKOCTFILE_LD_CXX = @MKOCTFILE_LD_CXX@ + +# List of libraries and their special compilation flags + +MKOCTFILE_CC = @MKOCTFILE_CC@ +MKOCTFILE_CXX = @MKOCTFILE_CXX@ +MKOCTFILE_DL_LD = @MKOCTFILE_DL_LD@ +MKOCTFILE_DL_LDFLAGS = @MKOCTFILE_DL_LDFLAGS@ +MKOCTFILE_F77 = @MKOCTFILE_F77@ +MKOCTFILE_LD_CXX = @MKOCTFILE_LD_CXX@ + # List of libraries and their special compilation flags LIBOCTINTERP = @LIBOCTINTERP@ @@ -563,7 +581,12 @@ -e "s|%OCTAVE_CONF_MAGICK_CPPFLAGS%|\"${MAGICK_CPPFLAGS}\"|" \ -e "s|%OCTAVE_CONF_MAGICK_LDFLAGS%|\"${MAGICK_LDFLAGS}\"|" \ -e "s|%OCTAVE_CONF_MAGICK_LIBS%|\"${MAGICK_LIBS}\"|" \ - -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"@MKOCTFILE_DL_LDFLAGS@\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_CC%|\"${MKOCTFILE_CC}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_CXX%|\"${MKOCTFILE_CXX}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LD%|\"${MKOCTFILE_DL_LD}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"${MKOCTFILE_DL_LDFLAGS}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_F77%|\"${MKOCTFILE_F77}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_LD_CXX%|\"${MKOCTFILE_LD_CXX}\"|' \ -e "s|%OCTAVE_CONF_OCTAVE_LINK_DEPS%|\"${OCTAVE_LINK_DEPS}\"|" \ -e "s|%OCTAVE_CONF_OCTAVE_LINK_OPTS%|\"${OCTAVE_LINK_OPTS}\"|" \ -e "s|%OCTAVE_CONF_OCTINCLUDEDIR%|\"${octincludedir}\"|" \ diff -r f97a746e4544 -r 0cbac4d3a81c configure.ac --- a/configure.ac Fri Jan 11 16:27:22 2013 -0500 +++ b/configure.ac Sat Jan 12 13:36:15 2013 -0500 @@ -1421,7 +1421,7 @@ [ENABLE_DYNAMIC_LINKING=true]) if ! $STATIC_LIBS && ! $SHARED_LIBS; then - AC_MSG_ERROR([You can't disable building static AND shared libraries!]) + AC_MSG_ERROR([You can't disable building both static AND shared libraries!]) fi CPICFLAG=-fPIC @@ -1811,6 +1811,37 @@ AC_SUBST(LIBOCTINTERP) AC_SUBST(LIBOCTAVE) + +if test "$cross_compiling" = yes && test -n "$ac_tool_prefix"; then + CROSS_TOOL_PREFIX="$ac_tool_prefix" + MKOCTFILE_CC='$(shell echo $(CC) | sed "s,$(CROSS_TOOL_PREFIX),,")' + MKOCTFILE_CXX='$(shell echo $(CXX) | sed "s,$(CROSS_TOOL_PREFIX),,")' + MKOCTFILE_DL_LD='$(shell echo $(DL_LD) | sed "s,$(CROSS_TOOL_PREFIX),,")' + MKOCTFILE_F77='$(shell echo $(F77) | sed "s,$(CROSS_TOOL_PREFIX),,")' + MKOCTFILE_LD_CXX='$(shell echo $(LD_CXX) | sed "s,$(CROSS_TOOL_PREFIX),,")' +else + MKOCTFILE_CC="$CC" + MKOCTFILE_CXX="$CXX" + MKOCTFILE_DL_LD="$DL_LD" + MKOCTFILE_F77="$F77" + MKOCTFILE_LD_CXX="$LD_CXX" +fi +AC_MSG_NOTICE([defining CROSS_TOOL_PREFIX to be $CROSS_TOOL_PREFIX]) +AC_MSG_NOTICE([defining MKOCTFILE_CC to be $MKOCTFILE_CC]) +AC_MSG_NOTICE([defining MKOCTFILE_CXX to be $MKOCTFILE_CXX]) +AC_MSG_NOTICE([defining MKOCTFILE_DL_LD to be $MKOCTFILE_DL_LD]) +AC_MSG_NOTICE([defining MKOCTFILE_F77 to be $MKOCTFILE_F77]) +AC_MSG_NOTICE([defining MKOCTFILE_LD_CXX to be $MKOCTFILE_LD_CXX]) +AC_SUBST(CROSS_TOOL_PREFIX) +AC_SUBST(MKOCTFILE_CC) +AC_SUBST(MKOCTFILE_CXX) +AC_SUBST(MKOCTFILE_DL_LD) +AC_SUBST(MKOCTFILE_F77) +AC_SUBST(MKOCTFILE_LD_CXX) + +### Check for existence of various libraries + + ### Check for existence of various libraries ## OS-specific test for dirent, opendir. @@ -2416,8 +2447,8 @@ ## Java and JVM found. Set up flags. case $host_os in darwin*) - ## Sneak the -framework flag into mkoctfile via LFLAGS - LFLAGS="$LFLAGS -framework JavaVM" + ## Sneak the -framework flag into mkoctfile via LDFLAGS + LDFLAGS="$LDFLAGS -framework JavaVM" ## According to: http://developer.apple.com/unix/crossplatform.html ## one must explicitly set the include path. ## Unfortunately, the include path keeps moving around. diff -r f97a746e4544 -r 0cbac4d3a81c doc/interpreter/munge-texi.pl --- a/doc/interpreter/munge-texi.pl Fri Jan 11 16:27:22 2013 -0500 +++ b/doc/interpreter/munge-texi.pl Sat Jan 12 13:36:15 2013 -0500 @@ -26,7 +26,7 @@ do { - chomp; + s/\s*$//; # strip EOL character(s) $symbol = substr ($_,1); $docstring = extract_docstring (); if ($help_text{$symbol}) @@ -46,7 +46,7 @@ # Process .txi to .texi by expanding @DOCSTRING, @EXAMPLEFILE macros # Add warning header -print '@c DO NOT EDIT! Generated automatically by munge-texi.',"\n\n"; +print '@c DO NOT EDIT! Generated automatically by munge-texi.pl.',"\n\n"; TXI_LINE: while () { diff -r f97a746e4544 -r 0cbac4d3a81c doc/interpreter/stmt.txi --- a/doc/interpreter/stmt.txi Fri Jan 11 16:27:22 2013 -0500 +++ b/doc/interpreter/stmt.txi Sat Jan 12 13:36:15 2013 -0500 @@ -662,10 +662,11 @@ @section The break Statement @cindex @code{break} statement -The @code{break} statement jumps out of the innermost @code{for} or -@code{while} loop that encloses it. The @code{break} statement may only -be used within the body of a loop. The following example finds the -smallest divisor of a given integer, and also identifies prime numbers: +The @code{break} statement jumps out of the innermost @code{while}, +@code{do-until}, or @code{for} loop that encloses it. The @code{break} +statement may only be used within the body of a loop. The following +example finds the smallest divisor of a given integer, and also +identifies prime numbers: @example @group @@ -718,9 +719,10 @@ @cindex @code{continue} statement The @code{continue} statement, like @code{break}, is used only inside -@code{for} or @code{while} loops. It skips over the rest of the loop -body, causing the next cycle around the loop to begin immediately. -Contrast this with @code{break}, which jumps out of the loop altogether. +@code{while}, @code{do-until}, or @code{for} loops. It skips over the +rest of the loop body, causing the next cycle around the loop to begin +immediately. Contrast this with @code{break}, which jumps out of the +loop altogether. Here is an example: @example diff -r f97a746e4544 -r 0cbac4d3a81c etc/HACKING --- a/etc/HACKING Fri Jan 11 16:27:22 2013 -0500 +++ b/etc/HACKING Sat Jan 12 13:36:15 2013 -0500 @@ -48,10 +48,10 @@ $ ./bootstrap This script will examine the source tree and generate some Makefile -fragments and then runs the bootstrap script. The bootstrap script comes -from gnulib, but is kept in the Octave source archive. It should be -updated from the gnulib sources as necssary. The bootstrap script takes -care of running the autotools and generating the configure script. +fragments, then run autotools scripts to generate Makefile.in files from +Makefile.am files and create the configure script. The bootstrap script +comes from gnulib, but is kept in the Octave source archive. It should +be updated from the gnulib sources as necessary. If you have a copy of gnulib in some directory apart from the Octave source tree, then pass the name of the directory containing gnulib-tool @@ -73,10 +73,15 @@ Additional options besides --gnulib-srcdir can be passed to bootstrap and they will be forwarded without modification to the gnulib bootstrap script. -Once the bootstrap and bootstrap_gnulib scripts complete successfully, you may -run +Once the bootstrap script completes successfully, you may configure and +build Octave. We recommend that you build Octave in a separate +directory tree from the sources. For example, if you have just finished +running the bootstrap script in the top-level source directory, run the +following commands to create a build tree, configure, and build Octave: - $ ./configure + $ mkdir .build + $ cd .build + $ ../configure $ make $ make check @@ -109,13 +114,19 @@ examples -- some example files - gnulib -- gnulib subrepo. This is the actual gnulib source - tree, checked out with git. + gnulib-hg -- gnulib subrepo. This is a clone of the gnulib source + tree maintained by the Octave project. The default + branch is identical to the upstream gnulib sources. + There is also an "octave-stable" branch that may + contain changes as needed for the "stable" branch in + the Octave archive. We usually don't want to update + gnulib sources when going from one stable point + release to the next, but we occasionally need to + include small updates. libgnu -- gnulib sources that we use. The files here are copied here from the gnulib directory by the - build-aux/bootstrap_gnulib script that is run by the bootstrap script. @@ -294,7 +305,7 @@ jwe@octave.org -Last updated: Sat, 18 Aug 2012 18:51:25 EDT +Last updated: Thu, 10 Jan 2013 10:46:41 EST ################################################################################ diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/be_BY.qm Binary file libgui/languages/be_BY.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/be_BY.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/languages/be_BY.ts Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,1066 @@ + + + + + documentation_dock_widget + + + Documentation + Дакументацыя + + + + file_editor + + + + + + Octave Editor + + + + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: +%2. + + + + + File not saved! A file with the selected name +%1 +is already open in the editor + + + + + The associated file editor tab has disappeared. It was likely closed by some means. + + + + + &%1 %2 + + + + + &New File + &Новы файл + + + + &Open File + &Адкрыць файл + + + + &Save File + &Захаваць файл + + + + Save File &As + Захаваць файл &як + + + + &Undo + &Адрабіць + + + + &Redo + &Паўтарыць + + + + &Copy + &Капіяваць + + + + Cu&t + Вы&разаць + + + + Paste + + + + + &Next Bookmark + &Наступная закладка + + + + Pre&vious Bookmark + Па&пярэдняя закладка + + + + Toggle &Bookmark + &Паставіць/прыбраць закладку + + + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint + + + + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + + &File + &Файл + + + + Open &Recent + + + + + &Edit + &Змяніць + + + + &Debug + + + + + &Run + &Запусціць + + + + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + + + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + + Current Directory + Бягучы каталог + + + + Move up one directory. + Пасунуцца да ўзроўню вышэй. + + + + Enter the path or filename. + Увядзіце шлях ці назву файла. + + + + Doubleclick a file to open it. + Двойчы пстрык па файле адкрые яго. + + + + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + + + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + + Doubleclick a command to transfer it to the terminal. + Двойчы пстрык па загадзе перадасць яго ў тэрмінал. + + + + Enter text to filter the command history. + Увядзіце тэкст для фільтравання гісторыі загадаў. + + + + Command History + Гісторыя загадаў + + + + Copy + + + + + Evaluate + + + + + lexer_octave_gui + + + Default + Па змоўчванні + + + + Comment + Каментар + + + + Command + Загад + + + + Number + Нумар + + + + Keyword + Ключаслова + + + + Single-quoted string + Радок у аднакоссі + + + + Operator + Аператар + + + + Identifier + Ідэнтыфікатар + + + + Double-quoted string + Радок у двукоссі + + + + main_window + + + Save Workspace + Захаваць прастору зменных + + + + Load Workspace + Загрузіць прастору зменных + + + + Set working direcotry + + + + + + About Octave + Пра Octave + + + + View the variables in the active workspace. + Прагляд зменных бягучай прасторы. + + + + Browse and search the command history. + Агляд і пошук па гісторыі загадаў. + + + + Browse your files. + Агляд файлаў. + + + + See the documentation for help. + + + + + &File + &Файл + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + Выйсці + + + + &Edit + &Змяніць + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... + + + + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode + + + + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + + + + + Command History + Гісторыя загадаў + + + + Current Directory + Бягучы каталог + + + + Workspace + Прастора зменных + + + + Editor + Рэдактар + + + + Documentation + Дакументацыя + + + + Reset Windows + + + + + &Help + + + + + Report Bug + Паведаміць пра хібу + + + + Visit Agora + + + + + Visit Octave Forge + + + + + Current Directory: + + + + + settings_dialog + + + + Settings + Настаўленні + + + + + General + + + + + + Icon set for dock widget + + + + + + Octave logo only + + + + + + Letter icons + + + + + + Graphic icons + + + + + + Editor + Рэдактар + + + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + + Use custom file editor: + Вызначыць ўласны рэдактар: + + + + + emacs + emacs + + + + + Terminal + Тэрмінал + + + + + Cursor type: + + + + + + Cursor blinking + + + + + + File Browser + Файлавы аглядальнік + + + + + Show filenames + Паказваць назвы файлаў + + + + + Show file size + Паказваць памеры файлаў + + + + + Show file type + Паказваць тыпы файлаў + + + + + Show date of last modification + Паказваць дату апошняга змянення + + + + + Show hidden files + Паказваць схаваныя файлы + + + + + Alternating row colors + Колеры радкоў чаргуюцца + + + + + Network + Сетка + + + + + Use proxy server + Выкарыстоўваць проксі-сервер + + + + + Proxy Type: + Тып проксі: + + + + + HttpProxy + HttpProxy + + + + + Socks5Proxy + Socks5Proxy + + + + + Hostname: + Назва хоста: + + + + + Port: + Порт: + + + + + Username: + Імя карыстальніка: + + + + + Password: + Пароль: + + + + terminal_dock_widget + + + Command Window + + + + + webinfo + + + Type here and press 'Return' to search + + + + + Global search + + + + + welcome_wizard + + + + Welcome to GNU Octave + + + + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next + + + + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + + Name + Ідэнтыфікатар + + + + Class + + + + + Dimension + + + + + Value + Значэнне + + + + workspace_view + + + Workspace + Прастора зменных + + + diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/de-de.qm Binary file libgui/languages/de-de.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/de-de.ts --- a/libgui/languages/de-de.ts Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,642 +0,0 @@ - - - - - FileEditorMdiSubWindow - - - - File Editor - Dateieditor - - - - Cannot read file %1: -%2. - Konnte Datei %1 nicht lesen: -%2. - - - - File loaded. - Datei geladen. - - - - Do you want to save the current file -%1 ? - Möchten Sie die Datei %1 sichern ? - - - - Cannot write file %1: -%2. - Konnte Datei %1 nicht schreiben: -%2. - - - - File %1 saved - Datei %1 gesichert - - - - &Close File - &Datei schließen - - - - &New File - &Neue Datei - - - - &Open File - &Öffne Datei - - - - &Save File - &Sichere Datei - - - - Save File &As - Sichere Datei &als - - - - &Undo - &Rückgängig - - - - &Redo - &Wiederholen - - - - &Copy - &Kopieren - - - - Cu&t - &Ausschneiden - - - - &Paste - &Einfügen - - - - &Next Bookmark - &Nächstes Bookmark - - - - Pre&vious Bookmark - &Voriges Bookmark - - - - Toggle &Bookmark - &Bookmark setzen - - - - &Run File - &Ausführen - - - - &File - &Datei - - - - &Edit - &Editieren - - - - &Run - &Ausführen - - - - FilesDockWidget - - Current Folder - Aktuelles Verzeichnis - - - - Current Directory - Aktuelles Verzeichnis - - - - Move up one directory. - Ein Verzeichnis höher wechseln. - - - - Enter the path or filename. - Geben Sie einen Pfad oder Dateinamen ein. - - - - Doubleclick a file to open it. - Führen Sie einen Doppelklick aus, um eine Datei zu öffnen. - - - - HistoryDockWidget - - - Doubleclick a command to transfer it to the terminal. - Führen Sie einen Doppelklick aus, um den Befehl in das Terminal zu übertragen. - - - - Enter text to filter the command history. - Geben Sie Text ein, um die Befehlshistorie zu filtern. - - - - Command History - Befehlshistorie - - - History updated. - Befehlshistorie aktualisiert. - - - - LexerOctaveGui - - - Default - Standard - - - - Comment - Kommentar - - - - Command - Befehl - - - - Number - Zahl - - - - Keyword - Schlüsselwort - - - - Single-quoted string - Zeichenkette in einfachen Hochkommata - - - - Operator - Operator - - - - Identifier - Bezeichner - - - - Double-quoted string - Zeichenkette in doppelten Hochkommata - - - - MainWindow - - - Opening file. - Öffne Datei. - - - - Save Workspace - Speichere Arbeitsumgebung - - - - Load Workspace - Lade Arbeitsumgebung - - - - - About Octave - Über Octave - - - - Saving data and shutting down. - Speichere Daten und schließe. - - - - View the variables in the active workspace. - Sehen Sie die Variablen ein, die sich in der aktiven Arbeitsumgebung befinden. - - - - Browse and search the command history. - Durchsuchen Sie die Befehlshistorie. - - - - Browse your files. - Durchsuchen Sie Ihre Dateien. - - - - Terminal - Terminal - - - - Enter your commands into the Octave terminal. - Geben Sie Ihre Befehle in das Octave Terminal ein. - - - - Browse the Octave documentation for help. - Durchsuchen Sie die Octave Dokumentation, um Hilfe zu erhalten. - - - - Chat - Chat - - - - Instantly chat with other Octave users for help. - Tauschen Sie sich direkt mit anderen Octave Benutzern aus, um Hilfe zu erhalten. - - - - Octave - Octave - - - - Settings - Einstellungen - - - - Exit - Beenden - - - - Interface - Oberfläche - - - - Align Windows - Fenster ausrichten - - - - - Workspace - Arbeitsumgebung - - - - History - Befehlshistorie - - - - File Browser - Dateibrowser - - - - Open New Editor Window - Neues Editorfenster öffnen - - - - Load - Laden - - - - Save - Sichern - - - - Clear - Löschen - - - - Community - Gemeinschaft - - - - Report Bug - Fehler melden - - - - Agora - Agora - - - - Octave Forge - Octave Forge - - - - About Qt - Über Qt - - - Octave Toolbar - Octave Werkzeugleiste - - - Command Window - Konsolenfenster - - - File Editor - Dateieditor - - - - Documentation - Dokumentation - - - Service - Service - - - Established link to Octave. - Verbindung zu Octave hergestellt. - - - - NumberBar - - Stop Here - Stoppe hier - - - Current Line - Aktuelle Zeile - - - Error Line - Fehlerzeile - - - - NumberedCodeEdit - - This file name is not valid. - Dieser Dateiname ist nicht gültig. - - - Octave doesn't understand this file name: - - Octave versteht diesen Dateityp nicht: - - - -Please, change it. - Do you want to save your changes? - Bitte ändern Sie dies. Möchten Sie Ihre Änderungen sichern? - - - - SettingsDialog - - - Settings - Einstellungen - - - - Chat - Char - - - - Connect to #octave on startup - Beim Start mit #octave verbinden - - - - Show message of the day - Nachricht des Tages anzeigen (MOTD) - - - - Show topic - Thema des Chatkanals anzeigen - - - - Automatically identify on NickServ - Automatisch bei NickServ identifizieren - - - - Warning: Your password will be stored in ~/.octavegui in human-readable format. Do not enter your password if you worry about security issues. - Warnung: Ihre Passwort wird unter ~/.octave-gui in einem menschenlesbaren Format gesichert. Hinterlegen Sie nicht Ihr Password, wenn Sie Bedenken über die Sicherheit haben. - - - - - Password: - Passwort: - - - - Editor - Editor - - - - Use custom file editor: - Benutzerdefinierten Editor verwenden: - - - - emacs - emacs - - - - File Browser - Dateibrowser - - - - Show filenames - Dateinamen anzeigen - - - - Show file size - Dateigröße anzeigen - - - - Show file type - Dateityp anzeigen - - - - Show date of last modification - Datum der letzten Änderung anzeigen - - - - Show hidden files - Versteckte Dateien anzeigen - - - - Alternating row colors - Alternierende Farben verwenden - - - - Network - - - - - Use proxy server - - - - - Proxy Type: - - - - - HttpProxy - - - - - Socks5Proxy - - - - - Hostname: - - - - - Port: - - - - - Username: - - - - - Reset to defaults - Standardeinstellungen wiederherstellen - - - - Export - Exportieren - - - - Import - Importieren - - - - VariablesDockWidget - - - Name - Bezeichner - - - - Type - Typ - - - - Value - Wert - - - - Workspace - Arbeitsumgebung - - - Save - Sichern - - - Load - Laden - - - Clear - Löschen - - - - Local - Lokal - - - - Global - Global - - - - Persistent - Persistent - - - - Hidden - Versteckt - - - diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/de_DE.qm Binary file libgui/languages/de_DE.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/de_DE.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/languages/de_DE.ts Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,1066 @@ + + + + + documentation_dock_widget + + + Documentation + Dokumentation + + + + file_editor + + + + + + Octave Editor + + + + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: +%2. + + + + + File not saved! A file with the selected name +%1 +is already open in the editor + + + + + The associated file editor tab has disappeared. It was likely closed by some means. + + + + + &%1 %2 + + + + + &New File + &Neue Datei + + + + &Open File + &Öffne Datei + + + + &Save File + &Sichere Datei + + + + Save File &As + Sichere Datei &als + + + + &Undo + &Rückgängig + + + + &Redo + &Wiederholen + + + + &Copy + &Kopieren + + + + Cu&t + &Ausschneiden + + + + Paste + + + + + &Next Bookmark + &Nächstes Bookmark + + + + Pre&vious Bookmark + &Voriges Bookmark + + + + Toggle &Bookmark + &Bookmark setzen + + + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint + + + + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + + &File + &Datei + + + + Open &Recent + + + + + &Edit + &Editieren + + + + &Debug + + + + + &Run + &Ausführen + + + + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + + + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + + Current Directory + Aktuelles Verzeichnis + + + + Move up one directory. + Ein Verzeichnis höher wechseln. + + + + Enter the path or filename. + Geben Sie einen Pfad oder Dateinamen ein. + + + + Doubleclick a file to open it. + Führen Sie einen Doppelklick aus, um eine Datei zu öffnen. + + + + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + + + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + + Doubleclick a command to transfer it to the terminal. + Führen Sie einen Doppelklick aus, um den Befehl in das Terminal zu übertragen. + + + + Enter text to filter the command history. + Geben Sie Text ein, um die Befehlshistorie zu filtern. + + + + Command History + Befehlshistorie + + + + Copy + + + + + Evaluate + + + + + lexer_octave_gui + + + Default + Standard + + + + Comment + Kommentar + + + + Command + Befehl + + + + Number + Zahl + + + + Keyword + Schlüsselwort + + + + Single-quoted string + Zeichenkette in einfachen Hochkommata + + + + Operator + Operator + + + + Identifier + Bezeichner + + + + Double-quoted string + Zeichenkette in doppelten Hochkommata + + + + main_window + + + Save Workspace + Speichere Arbeitsumgebung + + + + Load Workspace + Lade Arbeitsumgebung + + + + Set working direcotry + + + + + + About Octave + Über Octave + + + + View the variables in the active workspace. + Sehen Sie die Variablen ein, die sich in der aktiven Arbeitsumgebung befinden. + + + + Browse and search the command history. + Durchsuchen Sie die Befehlshistorie. + + + + Browse your files. + Durchsuchen Sie Ihre Dateien. + + + + See the documentation for help. + + + + + &File + &Datei + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + Beenden + + + + &Edit + &Editieren + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... + + + + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode + + + + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + Konsolenfenster + + + + Command History + Befehlshistorie + + + + Current Directory + Aktuelles Verzeichnis + + + + Workspace + Arbeitsumgebung + + + + Editor + Editor + + + + Documentation + Dokumentation + + + + Reset Windows + + + + + &Help + + + + + Report Bug + Fehler melden + + + + Visit Agora + + + + + Visit Octave Forge + + + + + Current Directory: + + + + + settings_dialog + + + + Settings + Einstellungen + + + + + General + + + + + + Icon set for dock widget + + + + + + Octave logo only + + + + + + Letter icons + + + + + + Graphic icons + + + + + + Editor + Editor + + + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + + Use custom file editor: + Benutzerdefinierten Editor verwenden: + + + + + emacs + emacs + + + + + Terminal + Terminal + + + + + Cursor type: + + + + + + Cursor blinking + + + + + + File Browser + Dateibrowser + + + + + Show filenames + Dateinamen anzeigen + + + + + Show file size + Dateigröße anzeigen + + + + + Show file type + Dateityp anzeigen + + + + + Show date of last modification + Datum der letzten Änderung anzeigen + + + + + Show hidden files + Versteckte Dateien anzeigen + + + + + Alternating row colors + Alternierende Farben verwenden + + + + + Network + + + + + + Use proxy server + + + + + + Proxy Type: + + + + + + HttpProxy + + + + + + Socks5Proxy + + + + + + Hostname: + + + + + + Port: + + + + + + Username: + + + + + + Password: + Passwort: + + + + terminal_dock_widget + + + Command Window + Konsolenfenster + + + + webinfo + + + Type here and press 'Return' to search + + + + + Global search + + + + + welcome_wizard + + + + Welcome to GNU Octave + + + + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next + + + + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + + Name + Bezeichner + + + + Class + + + + + Dimension + + + + + Value + Wert + + + + workspace_view + + + Workspace + Arbeitsumgebung + + + diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/es-es.qm Binary file libgui/languages/es-es.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/es-es.ts --- a/libgui/languages/es-es.ts Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,576 +0,0 @@ - - - - - FileEditorMdiSubWindow - - - - File Editor - Editor de archivos - - - - Cannot read file %1: -%2. - No se puede leer archivo %1: -%2. - - - - File loaded. - Archivo cargado. - - - - Do you want to save the current file -%1 ? - ¿Desea guardar archivo actual -%1 ? - - - - Cannot write file %1: -%2. - No se puede escribir archivo %1: -%2. - - - - File %1 saved - Archivo %1 guardado - - - - &Close File - &Cerrar archivo - - - - &New File - Archivo &nuevo - - - - &Open File - &Abrir archivo - - - - &Save File - &Guardar archivo - - - - Save File &As - Search for proper shortcut for this command - Guardar archivo &como - - - - &Undo - &Deshacer - - - - &Redo - &Rehacer - - - - &Copy - &Copiar - - - - Cu&t - Cor&tar - - - - &Paste - &Pegar - - - - &Next Bookmark - - - - - Pre&vious Bookmark - - - - - Toggle &Bookmark - - - - - &Run File - &Ejecutar archivo - - - - &File - &Archivo - - - - &Edit - &Editar - - - - &Run - &Ejecutar - - - - FilesDockWidget - - Current Folder - Carpeta actual - - - - Current Directory - - - - - Move up one directory. - Subir un directorio. - - - - Enter the path or filename. - Introduzca dirección o nombre de archivo. - - - - Doubleclick a file to open it. - Haga doble clic para abir archivo. - - - - HistoryDockWidget - - - Doubleclick a command to transfer it to the terminal. - Haga doble clic para transferir el comando a la terminal. - - - - Enter text to filter the command history. - Introduzca texto para filtrar el historial de comandos. - - - - Command History - Historial de comandos - - - - LexerOctaveGui - - - Default - Valores predeterminados - - - - Comment - Comentario - - - - Command - Comando - - - - Number - Número - - - - Keyword - Contraseña - - - - Single-quoted string - Cadena entre comillas simples - - - - Operator - Operador - - - - Identifier - Identificador - - - - Double-quoted string - Cadena entre comillas dobles - - - - MainWindow - - - Opening file. - Abriendo archivo. - - - - Save Workspace - Guardar espacio de trabajo - - - - Load Workspace - Cargar espacio de trabajo - - - - - About Octave - Acerca de Octave - - - - Saving data and shutting down. - Guardando datos y cerrando el sistema. - - - - View the variables in the active workspace. - Ver variables en el espacio de trabajo activo. - - - - Browse and search the command history. - Navegar y buscar en el historial de comandos. - - - - Browse your files. - Explorar sus archivos. - - - - Terminal - Terminal - - - - Enter your commands into the Octave terminal. - Introducir su comando a la terminal de Octave. - - - - Documentation - Documentación - - - - Browse the Octave documentation for help. - Consultar la documentación de Octave para obtener ayuda. - - - - Chat - Chat/conversación instantanea - - - - Instantly chat with other Octave users for help. - Coversación instantanea con otros usuarios de octave para obtener ayuda. - - - - Octave - Octave - - - - Settings - Configuración - - - - Exit - Salir - - - - Interface - Interfase - - - - Align Windows - Alinear ventanas - - - - - Workspace - Espacio de trabajo - - - - History - Historial - - - - File Browser - Explorador de archivos - - - - Open New Editor Window - Abrir nueva ventana de editor - - - - Load - Cargar - - - - Save - Guardar - - - - Clear - Limpiar - - - - Community - Comunidad - - - - Report Bug - Reportar error de software/Bug - - - - Agora - Ágora - - - - Octave Forge - Octave Forge - - - - About Qt - Acerca de Qt - - - - SettingsDialog - - - Settings - Configuración - - - - Chat - Chat/conversación instantanea - - - - Connect to #octave on startup - Conectar a #octave en el arranque - - - - Show message of the day - Mostrar mensaje del día - - - - Show topic - Mostrar tema - - - - Automatically identify on NickServ - Identificar automáticamente el NickServ - - - - Warning: Your password will be stored in ~/.octavegui in human-readable format. Do not enter your password if you worry about security issues. - Advertencia: La contraseña se guarda en ~ / octavegui en formato legible. No introduzca su contraseña en caso de que le preocupen los aspectos de seguridad. - - - - - - Password: - Contraseña: - - - - Editor - Editor - - - - Use custom file editor: - Usar editor de archivos personalizados: - - - - emacs - emacs - - - - File Browser - Explorador de archivos - - - - Show filenames - Mostrar nombres de archivos - - - - Show file size - Mostrar tamaño de archivo - - - - Show file type - Mostrar tipo de archivo - - - - Show date of last modification - Mostrar fecha de la última modificación - - - - Show hidden files - Mostrar archivos ocultos - - - - Alternating row colors - Colores alternos de filas - - - - Network - - - - - Use proxy server - - - - - Proxy Type: - - - - - HttpProxy - - - - - Socks5Proxy - - - - - Hostname: - - - - - Port: - - - - - Username: - - - - - Reset to defaults - Restaurar los valores predeterminados - - - - Export - Exportar - - - - Import - Importar - - - - VariablesDockWidget - - - Workspace - Espacio de trabajo - - - - Name - Nombre - - - - Type - Tipo - - - - Value - Valor - - - - Local - Local - - - - Global - Global - - - - Persistent - Persistente - - - - Hidden - Oculto - - - diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/es_ES.qm Binary file libgui/languages/es_ES.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/es_ES.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/languages/es_ES.ts Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,1066 @@ + + + + + documentation_dock_widget + + + Documentation + Documentación + + + + file_editor + + + + + + Octave Editor + + + + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: +%2. + + + + + File not saved! A file with the selected name +%1 +is already open in the editor + + + + + The associated file editor tab has disappeared. It was likely closed by some means. + + + + + &%1 %2 + + + + + &New File + Archivo &nuevo + + + + &Open File + &Abrir archivo + + + + &Save File + &Guardar archivo + + + + Save File &As + Guardar archivo &como + + + + &Undo + &Deshacer + + + + &Redo + &Rehacer + + + + &Copy + &Copiar + + + + Cu&t + Cor&tar + + + + Paste + + + + + &Next Bookmark + + + + + Pre&vious Bookmark + + + + + Toggle &Bookmark + + + + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint + + + + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + + &File + &Archivo + + + + Open &Recent + + + + + &Edit + &Editar + + + + &Debug + + + + + &Run + &Ejecutar + + + + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + + + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + + Current Directory + + + + + Move up one directory. + Subir un directorio. + + + + Enter the path or filename. + Introduzca dirección o nombre de archivo. + + + + Doubleclick a file to open it. + Haga doble clic para abir archivo. + + + + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + + + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + + Doubleclick a command to transfer it to the terminal. + Haga doble clic para transferir el comando a la terminal. + + + + Enter text to filter the command history. + Introduzca texto para filtrar el historial de comandos. + + + + Command History + Historial de comandos + + + + Copy + + + + + Evaluate + + + + + lexer_octave_gui + + + Default + Valores predeterminados + + + + Comment + Comentario + + + + Command + Comando + + + + Number + Número + + + + Keyword + Contraseña + + + + Single-quoted string + Cadena entre comillas simples + + + + Operator + Operador + + + + Identifier + Identificador + + + + Double-quoted string + Cadena entre comillas dobles + + + + main_window + + + Save Workspace + Guardar espacio de trabajo + + + + Load Workspace + Cargar espacio de trabajo + + + + Set working direcotry + + + + + + About Octave + Acerca de Octave + + + + View the variables in the active workspace. + Ver variables en el espacio de trabajo activo. + + + + Browse and search the command history. + Navegar y buscar en el historial de comandos. + + + + Browse your files. + Explorar sus archivos. + + + + See the documentation for help. + + + + + &File + &Archivo + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + Salir + + + + &Edit + &Editar + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... + + + + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode + + + + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + + + + + Command History + Historial de comandos + + + + Current Directory + + + + + Workspace + Espacio de trabajo + + + + Editor + Editor + + + + Documentation + Documentación + + + + Reset Windows + + + + + &Help + + + + + Report Bug + Reportar error de software/Bug + + + + Visit Agora + + + + + Visit Octave Forge + + + + + Current Directory: + + + + + settings_dialog + + + + Settings + Configuración + + + + + General + + + + + + Icon set for dock widget + + + + + + Octave logo only + + + + + + Letter icons + + + + + + Graphic icons + + + + + + Editor + Editor + + + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + + Use custom file editor: + Usar editor de archivos personalizados: + + + + + emacs + emacs + + + + + Terminal + Terminal + + + + + Cursor type: + + + + + + Cursor blinking + + + + + + File Browser + Explorador de archivos + + + + + Show filenames + Mostrar nombres de archivos + + + + + Show file size + Mostrar tamaño de archivo + + + + + Show file type + Mostrar tipo de archivo + + + + + Show date of last modification + Mostrar fecha de la última modificación + + + + + Show hidden files + Mostrar archivos ocultos + + + + + Alternating row colors + Colores alternos de filas + + + + + Network + + + + + + Use proxy server + + + + + + Proxy Type: + + + + + + HttpProxy + + + + + + Socks5Proxy + + + + + + Hostname: + + + + + + Port: + + + + + + Username: + + + + + + Password: + Contraseña: + + + + terminal_dock_widget + + + Command Window + + + + + webinfo + + + Type here and press 'Return' to search + + + + + Global search + + + + + welcome_wizard + + + + Welcome to GNU Octave + + + + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next + + + + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + + Name + Nombre + + + + Class + + + + + Dimension + + + + + Value + Valor + + + + workspace_view + + + Workspace + Espacio de trabajo + + + diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/generic.ts --- a/libgui/languages/generic.ts Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/languages/generic.ts Sat Jan 12 13:36:15 2013 -0500 @@ -2,565 +2,1064 @@ - FileEditorMdiSubWindow + documentation_dock_widget - - - File Editor + + Documentation + + + + + file_editor + + + + + + Octave Editor - - Cannot read file %1: + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: %2. - - File loaded. - - - - - Do you want to save the current file -%1 ? + + File not saved! A file with the selected name +%1 +is already open in the editor - - Cannot write file %1: -%2. + + The associated file editor tab has disappeared. It was likely closed by some means. - - File %1 saved + + &%1 %2 - - &Close File - - - - + &New File - + &Open File - + &Save File - + Save File &As - + &Undo - + &Redo - + &Copy - + Cu&t - - &Paste + + Paste - + &Next Bookmark - + Pre&vious Bookmark - + Toggle &Bookmark - - &Run File + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint - + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + &File - + + Open &Recent + + + + &Edit - + + &Debug + + + + &Run - FilesDockWidget + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + - + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + Current Directory - + Move up one directory. - + Enter the path or filename. - + Doubleclick a file to open it. - HistoryDockWidget + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + - + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + Doubleclick a command to transfer it to the terminal. - + Enter text to filter the command history. - + Command History + + + Copy + + + + + Evaluate + + - LexerOctaveGui + lexer_octave_gui - + Default - + Comment - + Command - + Number - + Keyword - + Single-quoted string - + Operator - + Identifier - + Double-quoted string - MainWindow + main_window - - Opening file. - - - - + Save Workspace - + Load Workspace - - + + Set working direcotry + + + + + About Octave - - Saving data and shutting down. - - - - + View the variables in the active workspace. - + Browse and search the command history. - + Browse your files. - - Terminal + + See the documentation for help. + + + + + &File + + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + + + + + &Edit + + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... - - Enter your commands into the Octave terminal. + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode - + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + + + + + Command History + + + + + Current Directory + + + + + Workspace + + + + + Editor + + + + Documentation - - Browse the Octave documentation for help. - - - - - Chat - - - - - Instantly chat with other Octave users for help. - - - - - Octave - - - - - Settings - - - - - Exit - - - - - Interface - - - - - Align Windows + + Reset Windows - - - Workspace - - - - - History - - - - - File Browser - - - - - Open New Editor Window + + &Help - - Load - - - - - Save - - - - - Clear - - - - - Community - - - - + Report Bug - - Agora + + Visit Agora - - Octave Forge + + Visit Octave Forge - - About Qt + + Current Directory: - SettingsDialog + settings_dialog - + + Settings - - Chat + + + General - - Connect to #octave on startup - - - - - Show message of the day + + + Icon set for dock widget - - Show topic - - - - - Automatically identify on NickServ + + + Octave logo only - - Warning: Your password will be stored in ~/.octavegui in human-readable format. Do not enter your password if you worry about security issues. + + + Letter icons - - - Password: + + + Graphic icons - + + Editor - + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + Use custom file editor: - + + emacs - + + + Terminal + + + + + + Cursor type: + + + + + + Cursor blinking + + + + + File Browser - + + Show filenames - + + Show file size - + + Show file type - + + Show date of last modification - + + Show hidden files - + + Alternating row colors - + + Network - + + Use proxy server - + + Proxy Type: - + + HttpProxy - + + Socks5Proxy - + + Hostname: - + + Port: - + + Username: - - Reset to defaults + + + Password: + + + + + terminal_dock_widget + + + Command Window + + + + + webinfo + + + Type here and press 'Return' to search - - Export - - - - - Import + + Global search - VariablesDockWidget + welcome_wizard + + + + Welcome to GNU Octave + + - - Workspace + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next - + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + Name - - Type + + Class - - Value + + Dimension - - Local - - - - - Global + + Value + + + workspace_view - - Persistent - - - - - Hidden + + Workspace diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/pt-br.qm Binary file libgui/languages/pt-br.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/pt-br.ts --- a/libgui/languages/pt-br.ts Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,571 +0,0 @@ - - - - - FileEditorMdiSubWindow - - - - File Editor - Editor de Arquivos - - - - Cannot read file %1: -%2. - Não foi possível ler o arquivo %1: %2. - - - - File loaded. - Arquivo carregado. - - - - Do you want to save the current file -%1 ? - Você deseja salvar o arquivo atual %1 ? - - - - Cannot write file %1: -%2. - Não foi possível escrever no arquivo %1: %2. - - - - File %1 saved - Arquivo %1 salvo - - - - &Close File - &Fechar Arquivo - - - - &New File - &Novo Arquivo - - - - &Open File - &Abrir Arquivo - - - - &Save File - &Salvar Arquivo - - - - Save File &As - Salvar Arquivo &Como - - - - &Undo - &Desfazer - - - - &Redo - &Refazer - - - - &Copy - - - - - Cu&t - - - - - &Paste - - - - - &Next Bookmark - - - - - Pre&vious Bookmark - - - - - Toggle &Bookmark - - - - - &Run File - - - - - &File - - - - - &Edit - - - - - &Run - - - - - FilesDockWidget - - Current Folder - Diretório Atual - - - - Current Directory - - - - - Move up one directory. - Subir um diretório. - - - - Enter the path or filename. - Digite o caminho ou o nome do arquivo. - - - - Doubleclick a file to open it. - Clique duas vezes num arquivo para abrí-lo. - - - - HistoryDockWidget - - - Doubleclick a command to transfer it to the terminal. - Clique duas vezes num comando para transferí-lo ao terminal. - - - - Enter text to filter the command history. - Digite um texto para filtrar o hitórico de comandos. - - - - Command History - Histórico de Comandos - - - - LexerOctaveGui - - - Default - Padrão - - - - Comment - Comentário - - - - Command - Comando - - - - Number - Número - - - - Keyword - Palavra-Chave - - - - Single-quoted string - String com aspas simples - - - - Operator - Operador - - - - Identifier - Identificador - - - - Double-quoted string - String com aspas duplas - - - - MainWindow - - - Opening file. - Abrindo arquivo. - - - - Save Workspace - Salvar ambiente de trabalho - - - - Load Workspace - Carregar ambiente de trabalho - - - - - About Octave - Sobre o Octave - - - - Saving data and shutting down. - Salvando dados e encerrando a sessão. - - - - View the variables in the active workspace. - Visualizar variáveis no ambiente de trabalho. - - - - Browse and search the command history. - Pesquise no histórico de comandos. - - - - Browse your files. - Procure seus arquivos. - - - - Terminal - Terminal - - - - Enter your commands into the Octave terminal. - Digite seus comandos no terminal do Octave. - - - - Documentation - Documentação - - - - Browse the Octave documentation for help. - Procure na documentação do Octave. - - - - Chat - Chat - - - - Instantly chat with other Octave users for help. - Converse instantaneamente com outros usuários do Octave para pedir ajuda. - - - - Octave - Octave - - - - Settings - Configurações - - - - Exit - Sair - - - - Interface - Interface - - - - Align Windows - Alinhar Janelas - - - - - Workspace - Ambiente de trabalho - - - - History - Histórico - - - - File Browser - Navegador de Arquivos - - - - Open New Editor Window - Abrir nova janela de edição - - - - Load - Carregar - - - - Save - Salvar - - - - Clear - Limpar - - - - Community - Comunidade - - - - Report Bug - Reportar Bug - - - - Agora - Agora - - - - Octave Forge - Octave Forge - - - - About Qt - Sobre o Qt - - - - SettingsDialog - - - Settings - Configurações - - - - Chat - Chat - - - - Connect to #octave on startup - Conectar ao #octave ao iniciar - - - - Show message of the day - Mostrar mensagem do dia - - - - Show topic - Mostrar tópico - - - - Automatically identify on NickServ - Identificar-se automaticamente com o NickServ - - - - Warning: Your password will be stored in ~/.octavegui in human-readable format. Do not enter your password if you worry about security issues. - Aviso: Sua senha será salva em ~/.octavegui em um formato legível. Não digite sua senha se você tem problemas com segurança. - - - - - Password: - Senha: - - - - Editor - Editor - - - - Use custom file editor: - Usar editor de arquivos personalizado: - - - - emacs - emacs - - - - File Browser - Navegador de Arquivos - - - - Show filenames - Mostrar nomes de arquivo - - - - Show file size - Mostrar tamanho do arquivo - - - - Show file type - Mostrar tipo do arquivo - - - - Show date of last modification - Mostrar data de última modificação - - - - Show hidden files - Mostrar arquivos ocultos - - - - Alternating row colors - Alternar cores das linhas - - - - Network - - - - - Use proxy server - - - - - Proxy Type: - - - - - HttpProxy - - - - - Socks5Proxy - - - - - Hostname: - - - - - Port: - - - - - Username: - - - - - Reset to defaults - Resetar ao padrão - - - - Export - Exportar - - - - Import - Importar - - - - VariablesDockWidget - - - Workspace - Ambiente de trabalho - - - - Name - Nome - - - - Type - Tipo - - - - Value - Valor - - - - Local - Local - - - - Global - Global - - - - Persistent - Persistente - - - - Hidden - Oculto - - - diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/pt_BR.qm Binary file libgui/languages/pt_BR.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/pt_BR.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/languages/pt_BR.ts Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,1066 @@ + + + + + documentation_dock_widget + + + Documentation + Documentação + + + + file_editor + + + + + + Octave Editor + + + + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: +%2. + + + + + File not saved! A file with the selected name +%1 +is already open in the editor + + + + + The associated file editor tab has disappeared. It was likely closed by some means. + + + + + &%1 %2 + + + + + &New File + &Novo Arquivo + + + + &Open File + &Abrir Arquivo + + + + &Save File + &Salvar Arquivo + + + + Save File &As + Salvar Arquivo &Como + + + + &Undo + &Desfazer + + + + &Redo + &Refazer + + + + &Copy + + + + + Cu&t + + + + + Paste + + + + + &Next Bookmark + + + + + Pre&vious Bookmark + + + + + Toggle &Bookmark + + + + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint + + + + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + + &File + + + + + Open &Recent + + + + + &Edit + + + + + &Debug + + + + + &Run + + + + + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + + + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + + Current Directory + + + + + Move up one directory. + Subir um diretório. + + + + Enter the path or filename. + Digite o caminho ou o nome do arquivo. + + + + Doubleclick a file to open it. + Clique duas vezes num arquivo para abrí-lo. + + + + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + + + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + + Doubleclick a command to transfer it to the terminal. + Clique duas vezes num comando para transferí-lo ao terminal. + + + + Enter text to filter the command history. + Digite um texto para filtrar o hitórico de comandos. + + + + Command History + Histórico de Comandos + + + + Copy + + + + + Evaluate + + + + + lexer_octave_gui + + + Default + Padrão + + + + Comment + Comentário + + + + Command + Comando + + + + Number + Número + + + + Keyword + Palavra-Chave + + + + Single-quoted string + String com aspas simples + + + + Operator + Operador + + + + Identifier + Identificador + + + + Double-quoted string + String com aspas duplas + + + + main_window + + + Save Workspace + Salvar ambiente de trabalho + + + + Load Workspace + Carregar ambiente de trabalho + + + + Set working direcotry + + + + + + About Octave + Sobre o Octave + + + + View the variables in the active workspace. + Visualizar variáveis no ambiente de trabalho. + + + + Browse and search the command history. + Pesquise no histórico de comandos. + + + + Browse your files. + Procure seus arquivos. + + + + See the documentation for help. + + + + + &File + + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + Sair + + + + &Edit + + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... + + + + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode + + + + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + + + + + Command History + Histórico de Comandos + + + + Current Directory + + + + + Workspace + Ambiente de trabalho + + + + Editor + Editor + + + + Documentation + Documentação + + + + Reset Windows + + + + + &Help + + + + + Report Bug + Reportar Bug + + + + Visit Agora + + + + + Visit Octave Forge + + + + + Current Directory: + + + + + settings_dialog + + + + Settings + Configurações + + + + + General + + + + + + Icon set for dock widget + + + + + + Octave logo only + + + + + + Letter icons + + + + + + Graphic icons + + + + + + Editor + Editor + + + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + + Use custom file editor: + Usar editor de arquivos personalizado: + + + + + emacs + emacs + + + + + Terminal + Terminal + + + + + Cursor type: + + + + + + Cursor blinking + + + + + + File Browser + Navegador de Arquivos + + + + + Show filenames + Mostrar nomes de arquivo + + + + + Show file size + Mostrar tamanho do arquivo + + + + + Show file type + Mostrar tipo do arquivo + + + + + Show date of last modification + Mostrar data de última modificação + + + + + Show hidden files + Mostrar arquivos ocultos + + + + + Alternating row colors + Alternar cores das linhas + + + + + Network + + + + + + Use proxy server + + + + + + Proxy Type: + + + + + + HttpProxy + + + + + + Socks5Proxy + + + + + + Hostname: + + + + + + Port: + + + + + + Username: + + + + + + Password: + Senha: + + + + terminal_dock_widget + + + Command Window + + + + + webinfo + + + Type here and press 'Return' to search + + + + + Global search + + + + + welcome_wizard + + + + Welcome to GNU Octave + + + + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next + + + + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + + Name + Nome + + + + Class + + + + + Dimension + + + + + Value + Valor + + + + workspace_view + + + Workspace + Ambiente de trabalho + + + diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/ru-ru.qm Binary file libgui/languages/ru-ru.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/ru-ru.ts --- a/libgui/languages/ru-ru.ts Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,574 +0,0 @@ - - - - - FileEditorMdiSubWindow - - - - File Editor - Редактор файлов - - - - Cannot read file %1: -%2. - Не удалось прочитать файл %1: -%2. - - - - File loaded. - Файл загружен. - - - - Do you want to save the current file -%1 ? - Сохранить текущий файл -%1? - - - - Cannot write file %1: -%2. - Не удалось сохранить файл %1: -%2. - - - - File %1 saved - Файл %1 сохранён - - - - &Close File - &Закрыть - - - - &New File - Созд&ать - - - - &Open File - &Открыть - - - - &Save File - &Сохранить - - - - Save File &As - Сохранить &как - - - - &Undo - О&тменить - - - - &Redo - &Повторить - - - - &Copy - &Копировать - - - - Cu&t - Вы&резать - - - - &Paste - &Вставить - - - - &Next Bookmark - С&ледующая закладка - - - - Pre&vious Bookmark - Пр&едыдущая закладка - - - - Toggle &Bookmark - &Установить/снять закладку - - - - &Run File - &Запустить файл - - - - &File - &Файл - - - - &Edit - &Правка - - - - &Run - &Запуск - - - - FilesDockWidget - - Current Folder - Текущий каталог - - - - Current Directory - Текущий каталог - - - - Move up one directory. - Перейти на уровень выше. - - - - Enter the path or filename. - Введите путь или имя файла. - - - - Doubleclick a file to open it. - Двойной щелчок по файлу откроет его. - - - - HistoryDockWidget - - - Doubleclick a command to transfer it to the terminal. - Двойной щелчок по команде перенесёт её в командную строку. - - - - Enter text to filter the command history. - Введите текст для фильтрации выполненных команд. - - - - Command History - Журнал выполненных команд - - - - LexerOctaveGui - - - Default - По умолчанию - - - - Comment - Комментарий - - - - Command - Команда - - - - Number - Число - - - - Keyword - Зарезервированное слово - - - - Single-quoted string - Строка в одинарных кавычках - - - - Operator - Оператор - - - - Identifier - Идентификатор - - - - Double-quoted string - Строка в двойных кавычках - - - - MainWindow - - - Opening file. - Открывается файл. - - - - Save Workspace - Сохранить область переменных - - - - Load Workspace - Загрузить область переменных - - - - - About Octave - Об Octave - - - - Saving data and shutting down. - Сохранить и завершить работу. - - - - View the variables in the active workspace. - Просмотр содержимого текущей области переменных. - - - - Browse and search the command history. - Просмотр и поиск в журнале выполненных команд. - - - - Browse your files. - Просмотр файлов. - - - - Terminal - Командная строка - - - - Enter your commands into the Octave terminal. - Введите команды в командной строке Octave. - - - - Documentation - Документация - - - - Browse the Octave documentation for help. - Открыть документацию по Octave. - - - - Chat - Чат - - - - Instantly chat with other Octave users for help. - Чат с пользователями Octave. - - - - Octave - Octave - - - - Settings - Параметры - - - - Exit - Выход - - - - Interface - Интерфейс - - - - Align Windows - Выровнять окна - - - - - Workspace - Область переменных - - - - History - Журнал выполненных команд - - - - File Browser - Файловый менеджер - - - - Open New Editor Window - Открыть новое окно редактора - - - - Load - Загрузить - - - - Save - Сохранить - - - - Clear - Очистить - - - - Community - Сообщество - - - - Report Bug - Сообщить об ошибке - - - - Agora - Agora - - - - Octave Forge - Octave Forge - - - - About Qt - О Qt - - - - SettingsDialog - - - Settings - Параметры - - - - Chat - Чат - - - - Connect to #octave on startup - Подключиться к #octave при запуске - - - - Show message of the day - Показывать совет дня - - - - Show topic - Показывать тему обсуждения при подключении - - - - Automatically identify on NickServ - Автоматически идентифицироваться у NickServ - - - - Warning: Your password will be stored in ~/.octavegui in human-readable format. Do not enter your password if you worry about security issues. - Предупреждение: пароль будет сохранён в ~/.octavegui обычным текстом. Не вводите пароль, если переживаете о возможных уязвимостях в безопасности приложения. - - - - - Password: - Пароль: - - - - Editor - Редактор - - - - Use custom file editor: - Выбрать редактор: - - - - emacs - emacs - - - - File Browser - Файловый менеджер - - - - Show filenames - Показывать имена файлов - - - - Show file size - Показывать размер файлов - - - - Show file type - Показывать типы файлов - - - - Show date of last modification - Показывать дату последнего изменения - - - - Show hidden files - Показывать скрытые файлы - - - - Alternating row colors - Чередующиеся цвета строк - - - - Network - - - - - Use proxy server - - - - - Proxy Type: - - - - - HttpProxy - - - - - Socks5Proxy - - - - - Hostname: - - - - - Port: - - - - - Username: - - - - - Reset to defaults - Установить параметры по умолчанию - - - - Export - Экспортировать - - - - Import - Импортировать - - - - VariablesDockWidget - - - Workspace - Область переменных - - - - Name - Идентификатор - - - - Type - Тип - - - - Value - Значение - - - - Local - Локальная - - - - Global - Глобальная - - - - Persistent - Статическая - - - - Hidden - Скрытая - - - diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/ru_RU.qm Binary file libgui/languages/ru_RU.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/ru_RU.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/languages/ru_RU.ts Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,1066 @@ + + + + + documentation_dock_widget + + + Documentation + Документация + + + + file_editor + + + + + + Octave Editor + + + + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: +%2. + + + + + File not saved! A file with the selected name +%1 +is already open in the editor + + + + + The associated file editor tab has disappeared. It was likely closed by some means. + + + + + &%1 %2 + + + + + &New File + Созд&ать + + + + &Open File + &Открыть + + + + &Save File + &Сохранить + + + + Save File &As + Сохранить &как + + + + &Undo + О&тменить + + + + &Redo + &Повторить + + + + &Copy + &Копировать + + + + Cu&t + Вы&резать + + + + Paste + + + + + &Next Bookmark + С&ледующая закладка + + + + Pre&vious Bookmark + Пр&едыдущая закладка + + + + Toggle &Bookmark + &Установить/снять закладку + + + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint + + + + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + + &File + &Файл + + + + Open &Recent + + + + + &Edit + &Правка + + + + &Debug + + + + + &Run + &Запуск + + + + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + + + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + + Current Directory + Текущий каталог + + + + Move up one directory. + Перейти на уровень выше. + + + + Enter the path or filename. + Введите путь или имя файла. + + + + Doubleclick a file to open it. + Двойной щелчок по файлу откроет его. + + + + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + + + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + + Doubleclick a command to transfer it to the terminal. + Двойной щелчок по команде перенесёт её в командную строку. + + + + Enter text to filter the command history. + Введите текст для фильтрации выполненных команд. + + + + Command History + Журнал выполненных команд + + + + Copy + + + + + Evaluate + + + + + lexer_octave_gui + + + Default + По умолчанию + + + + Comment + Комментарий + + + + Command + Команда + + + + Number + Число + + + + Keyword + Зарезервированное слово + + + + Single-quoted string + Строка в одинарных кавычках + + + + Operator + Оператор + + + + Identifier + Идентификатор + + + + Double-quoted string + Строка в двойных кавычках + + + + main_window + + + Save Workspace + Сохранить область переменных + + + + Load Workspace + Загрузить область переменных + + + + Set working direcotry + + + + + + About Octave + Об Octave + + + + View the variables in the active workspace. + Просмотр содержимого текущей области переменных. + + + + Browse and search the command history. + Просмотр и поиск в журнале выполненных команд. + + + + Browse your files. + Просмотр файлов. + + + + See the documentation for help. + + + + + &File + &Файл + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + Выход + + + + &Edit + &Правка + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... + + + + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode + + + + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + + + + + Command History + Журнал выполненных команд + + + + Current Directory + Текущий каталог + + + + Workspace + Область переменных + + + + Editor + Редактор + + + + Documentation + Документация + + + + Reset Windows + + + + + &Help + + + + + Report Bug + Сообщить об ошибке + + + + Visit Agora + + + + + Visit Octave Forge + + + + + Current Directory: + + + + + settings_dialog + + + + Settings + Параметры + + + + + General + + + + + + Icon set for dock widget + + + + + + Octave logo only + + + + + + Letter icons + + + + + + Graphic icons + + + + + + Editor + Редактор + + + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + + Use custom file editor: + Выбрать редактор: + + + + + emacs + emacs + + + + + Terminal + Командная строка + + + + + Cursor type: + + + + + + Cursor blinking + + + + + + File Browser + Файловый менеджер + + + + + Show filenames + Показывать имена файлов + + + + + Show file size + Показывать размер файлов + + + + + Show file type + Показывать типы файлов + + + + + Show date of last modification + Показывать дату последнего изменения + + + + + Show hidden files + Показывать скрытые файлы + + + + + Alternating row colors + Чередующиеся цвета строк + + + + + Network + + + + + + Use proxy server + + + + + + Proxy Type: + + + + + + HttpProxy + + + + + + Socks5Proxy + + + + + + Hostname: + + + + + + Port: + + + + + + Username: + + + + + + Password: + Пароль: + + + + terminal_dock_widget + + + Command Window + + + + + webinfo + + + Type here and press 'Return' to search + + + + + Global search + + + + + welcome_wizard + + + + Welcome to GNU Octave + + + + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next + + + + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + + Name + Идентификатор + + + + Class + + + + + Dimension + + + + + Value + Значение + + + + workspace_view + + + Workspace + Область переменных + + + diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/translators --- a/libgui/languages/translators Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/languages/translators Sat Jan 12 13:36:15 2013 -0500 @@ -1,8 +1,9 @@ # Below Octave GUI translators are listed with their e-mails # to be able inform them about generic translation file changes -en-en Jacob Dawid -es-es Valentin Ortega-Clavero -de-de Jacob Dawid -pt-br Júlio Hoffimann Mendes -ru-ru Andriy Shinkarchuck -uk-ua Andriy Shinkarchuck +be_BY Mihas Varantsou +de_DE Jacob Dawid +en_US Jacob Dawid +es_ES Valentin Ortega-Clavero +pt_BE Júlio Hoffimann Mendes +ru_RU Andriy Shinkarchuck +uk_UA Andriy Shinkarchuck diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/uk-ua.qm Binary file libgui/languages/uk-ua.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/uk-ua.ts --- a/libgui/languages/uk-ua.ts Fri Jan 11 16:27:22 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,574 +0,0 @@ - - - - - FileEditorMdiSubWindow - - - - File Editor - Редактор файлів - - - - Cannot read file %1: -%2. - Не вдалося прочитати файл %1: -%2. - - - - File loaded. - Файл завантажено. - - - - Do you want to save the current file -%1 ? - Справді зберегти поточний файл -%1? - - - - Cannot write file %1: -%2. - Не вдалося зберегти файл %1: -%2. - - - - File %1 saved - Файл %1 збережено - - - - &Close File - За&крити - - - - &New File - &Створити - - - - &Open File - &Відкрити - - - - &Save File - &Зберегти - - - - Save File &As - Зберегти &як - - - - &Undo - В&ернути - - - - &Redo - П&овторити - - - - &Copy - &Копіювати - - - - Cu&t - Виріза&ти - - - - &Paste - &Вставити - - - - &Next Bookmark - До &наступної закладки - - - - Pre&vious Bookmark - До &попередньої закладки - - - - Toggle &Bookmark - В&становити/видалити закладку - - - - &Run File - &Виконати файл - - - - &File - &Файл - - - - &Edit - &Правка - - - - &Run - &Виконання - - - - FilesDockWidget - - Current Folder - Поточний каталог - - - - Current Directory - Поточний каталог - - - - Move up one directory. - Перейти вгору деревом каталогів. - - - - Enter the path or filename. - Введіть повний шлях до файлу або назву файлу. - - - - Doubleclick a file to open it. - Подвійне клацання відкриє файл. - - - - HistoryDockWidget - - - Doubleclick a command to transfer it to the terminal. - Подвійне клацання перенесе команду до командного рядку. - - - - Enter text to filter the command history. - Введіть текст для фільтрування історії виконаних команд. - - - - Command History - Історія виконаних команд - - - - LexerOctaveGui - - - Default - Стандартні налаштування - - - - Comment - Коментар - - - - Command - Команда - - - - Number - Число - - - - Keyword - Зарезервоване слово - - - - Single-quoted string - Рядок в одинарних лапках - - - - Operator - Оператор - - - - Identifier - Ідентифікатор - - - - Double-quoted string - Рядок у подвійних лапках - - - - MainWindow - - - Opening file. - Відкривається файл. - - - - Save Workspace - Зберегти область змінних - - - - Load Workspace - Завантажити область змінних - - - - - About Octave - Про Octave - - - - Saving data and shutting down. - Зберегти дані і завершити роботу. - - - - View the variables in the active workspace. - Перегляд змісту поточної області змінних. - - - - Browse and search the command history. - Перегляд і пошук серед історії виконаних команд. - - - - Browse your files. - Переглянути файли. - - - - Terminal - Командний рядок - - - - Enter your commands into the Octave terminal. - Введіть команди до командного рядка Octave. - - - - Documentation - Документація - - - - Browse the Octave documentation for help. - Переглянути документацію до Octave. - - - - Chat - Чат - - - - Instantly chat with other Octave users for help. - Чат з користувачами Octave. - - - - Octave - Octave - - - - Settings - Налаштування - - - - Exit - Вийти - - - - Interface - Інтерфейс - - - - Align Windows - Вирівняти вікна - - - - - Workspace - Область змінних - - - - History - Історія виконаних команд - - - - File Browser - Файловий менеджер - - - - Open New Editor Window - Відкрити нове вікно редактора - - - - Load - Завантажити - - - - Save - Зберегти - - - - Clear - Очистити - - - - Community - Спільнота - - - - Report Bug - Повідомити про помилку - - - - Agora - Agora - - - - Octave Forge - Octave Forge - - - - About Qt - Про Qt - - - - SettingsDialog - - - Settings - Налаштування - - - - Chat - Чат - - - - Connect to #octave on startup - З'єднатися з #octave при запуску - - - - Show message of the day - Показувати пораду дня - - - - Show topic - Показувати тему чату при з'єднанні - - - - Automatically identify on NickServ - Автоматично ідентифікуватися в NickServ - - - - Warning: Your password will be stored in ~/.octavegui in human-readable format. Do not enter your password if you worry about security issues. - Попередження: пароль буде збережено в ~/.octavegui звичайним текстом. Не вводьте пароль, якщо переймаєтесь потенційними проблемами із захистом даних в програмі. - - - - - Password: - Пароль: - - - - Editor - Редактор - - - - Use custom file editor: - Використовувати інший редактор: - - - - emacs - emacs - - - - File Browser - Файловий менеджер - - - - Show filenames - Показувати назви файлів - - - - Show file size - Показувати розмір файлів - - - - Show file type - Показувати типи файлів - - - - Show date of last modification - Показувати дату останньої зміни - - - - Show hidden files - Показувати приховані файли - - - - Alternating row colors - Чергувати колір рядків - - - - Network - - - - - Use proxy server - - - - - Proxy Type: - - - - - HttpProxy - - - - - Socks5Proxy - - - - - Hostname: - - - - - Port: - - - - - Username: - - - - - Reset to defaults - Встановити стандартні налаштування - - - - Export - Експортувати - - - - Import - Імпортувати - - - - VariablesDockWidget - - - Workspace - Область змінних - - - - Name - Ідентифікатор - - - - Type - Тип - - - - Value - Значення - - - - Local - Локальна - - - - Global - Глобальна - - - - Persistent - Статична - - - - Hidden - Прихована - - - diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/uk_UA.qm Binary file libgui/languages/uk_UA.qm has changed diff -r f97a746e4544 -r 0cbac4d3a81c libgui/languages/uk_UA.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/languages/uk_UA.ts Sat Jan 12 13:36:15 2013 -0500 @@ -0,0 +1,1066 @@ + + + + + documentation_dock_widget + + + Documentation + Документація + + + + file_editor + + + + + + Octave Editor + + + + + File %1 is already open in the editor. + + + + + Could not open file %1 for read: +%2. + + + + + File not saved! A file with the selected name +%1 +is already open in the editor + + + + + The associated file editor tab has disappeared. It was likely closed by some means. + + + + + &%1 %2 + + + + + &New File + &Створити + + + + &Open File + &Відкрити + + + + &Save File + &Зберегти + + + + Save File &As + Зберегти &як + + + + &Undo + В&ернути + + + + &Redo + П&овторити + + + + &Copy + &Копіювати + + + + Cu&t + Виріза&ти + + + + Paste + + + + + &Next Bookmark + До &наступної закладки + + + + Pre&vious Bookmark + До &попередньої закладки + + + + Toggle &Bookmark + В&становити/видалити закладку + + + + &Remove All Bookmarks + + + + + &Next breakpoint + + + + + Pre&vious breakpoint + + + + + Toggle &breakpoint + + + + + &Remove All breakpoints + + + + + &Comment Selected Text + + + + + &Uncomment Selected Text + + + + + &Find and Replace + + + + + Save File And Run + + + + + &File + &Файл + + + + Open &Recent + + + + + &Edit + &Правка + + + + &Debug + + + + + &Run + &Виконання + + + + file_editor_tab + + + + + + + Octave Editor + + + + + The file '%1' has been modified. Do you want to save the changes? + + + + + Could not open file %1 for write: +%2. + + + + + File not saved! You've selected a file name + + %1 + +which is the same as the current file name. Use Save to overwrite. (Could allow overwriting, with message, if that is what folks want.) + + + + + It seems that '%1' has been modified by another application. Do you want to reload it? + + + + + It seems that '%1' has been deleted or renamed. Do you want to save it now? + + + + + files_dock_widget + + + Current Directory + Поточний каталог + + + + Move up one directory. + Перейти вгору деревом каталогів. + + + + Enter the path or filename. + Введіть повний шлях до файлу або назву файлу. + + + + Doubleclick a file to open it. + Подвійне клацання відкриє файл. + + + + find_dialog + + + Find &what: + + + + + Re&place with: + + + + + Match &case + + + + + Search from &start + + + + + &Wrap while searching + + + + + &Find Next + + + + + &Replace + + + + + Replace &All + + + + + &More + + + + + &Whole words + + + + + Regular E&xpressions + + + + + Search &backward + + + + + Search se&lection + + + + + history_dock_widget + + + Doubleclick a command to transfer it to the terminal. + Подвійне клацання перенесе команду до командного рядку. + + + + Enter text to filter the command history. + Введіть текст для фільтрування історії виконаних команд. + + + + Command History + Історія виконаних команд + + + + Copy + + + + + Evaluate + + + + + lexer_octave_gui + + + Default + Стандартні налаштування + + + + Comment + Коментар + + + + Command + Команда + + + + Number + Число + + + + Keyword + Зарезервоване слово + + + + Single-quoted string + Рядок в одинарних лапках + + + + Operator + Оператор + + + + Identifier + Ідентифікатор + + + + Double-quoted string + Рядок у подвійних лапках + + + + main_window + + + Save Workspace + Зберегти область змінних + + + + Load Workspace + Завантажити область змінних + + + + Set working direcotry + + + + + + About Octave + Про Octave + + + + View the variables in the active workspace. + Перегляд змісту поточної області змінних. + + + + Browse and search the command history. + Перегляд і пошук серед історії виконаних команд. + + + + Browse your files. + Переглянути файли. + + + + See the documentation for help. + + + + + &File + &Файл + + + + New + + + + + Script + + + + + Function + + + + + Class + + + + + Enumeration + + + + + Figure + + + + + Variable + + + + + Model + + + + + GUI + + + + + Open... + + + + + Close Command Window + + + + + Import Data... + + + + + Save Workspace... + + + + + Preferences... + + + + + Page Setup... + + + + + Print + + + + + Print Selection... + + + + + Exit + Вийти + + + + &Edit + &Правка + + + + Undo + + + + + Redo + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Paste To Workspace... + + + + + Select All + + + + + Delete + + + + + Find... + + + + + Find Files... + + + + + Clear Command Window + + + + + Clear Command History + + + + + Clear Workspace + + + + + De&bug + + + + + Step + + + + + Step in + + + + + Step out + + + + + Continue + + + + + Exit Debug Mode + + + + + &Desktop + + + + + Load workspace + + + + + &Window + + + + + Show Command Window + + + + + Show Command History + + + + + Show Current Directory + + + + + Show Workspace + + + + + Show Editor + + + + + Show Documentation + + + + + Command Window + + + + + Command History + Історія виконаних команд + + + + Current Directory + Поточний каталог + + + + Workspace + Область змінних + + + + Editor + Редактор + + + + Documentation + Документація + + + + Reset Windows + + + + + &Help + + + + + Report Bug + Повідомити про помилку + + + + Visit Agora + + + + + Visit Octave Forge + + + + + Current Directory: + + + + + settings_dialog + + + + Settings + Налаштування + + + + + General + + + + + + Icon set for dock widget + + + + + + Octave logo only + + + + + + Letter icons + + + + + + Graphic icons + + + + + + Editor + Редактор + + + + + + + Font + + + + + + + + Font Size + + + + + + Show line numbers + + + + + + Highlight current line + + + + + + Code completion + + + + + + Show complete path in window title + + + + + + Restore tabs from previous session on startup + + + + + + Use custom file editor: + Використовувати інший редактор: + + + + + emacs + emacs + + + + + Terminal + Командний рядок + + + + + Cursor type: + + + + + + Cursor blinking + + + + + + File Browser + Файловий менеджер + + + + + Show filenames + Показувати назви файлів + + + + + Show file size + Показувати розмір файлів + + + + + Show file type + Показувати типи файлів + + + + + Show date of last modification + Показувати дату останньої зміни + + + + + Show hidden files + Показувати приховані файли + + + + + Alternating row colors + Чергувати колір рядків + + + + + Network + + + + + + Use proxy server + + + + + + Proxy Type: + + + + + + HttpProxy + + + + + + Socks5Proxy + + + + + + Hostname: + + + + + + Port: + + + + + + Username: + + + + + + Password: + Пароль: + + + + terminal_dock_widget + + + Command Window + + + + + webinfo + + + Type here and press 'Return' to search + + + + + Global search + + + + + welcome_wizard + + + + Welcome to GNU Octave + + + + + + It appears that you have launched Octave GUI for the first time on this computer, since no configuration file could be found at '~/.octave-gui'. This wizard will guide you through the essential settings you should make before you can start using Octave GUI. If you want to transfer your settings you have previously made just close this dialog and copy over the settings file to your home folder. The presence of that file will automatically be detected and will skip this wizard. IMPORTANT: This wizard is not fully functional yet. Just click your way to the end and it will create a standard settings file. + + + + + + + + + + + + Next + + + + + + + + + + + + Previous + + + + + + Welcome to Octave! + + + + + + This is the development version of Octave with the first official GUI. + + + + + + You seem to run Octave GUI for the first time on this computer. This assistant will help you to configure this software installation. Click 'Finish' to write a configuration file and launch Octave GUI. + + + + + + Finish + + + + + workspace_model + + + Name + Ідентифікатор + + + + Class + + + + + Dimension + + + + + Value + Значення + + + + workspace_view + + + Workspace + Область змінних + + + diff -r f97a746e4544 -r 0cbac4d3a81c libgui/qterminal/libqterminal/QTerminal.h --- a/libgui/qterminal/libqterminal/QTerminal.h Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/qterminal/libqterminal/QTerminal.h Sat Jan 12 13:36:15 2013 -0500 @@ -31,8 +31,8 @@ { Q_OBJECT public: - QTerminal(QWidget *parent = 0) - : QWinTerminalImpl(parent) { } + QTerminal(QWidget *xparent = 0) + : QWinTerminalImpl(xparent) { } ~QTerminal() { } }; #else @@ -41,8 +41,8 @@ { Q_OBJECT public: - QTerminal(QWidget *parent = 0) - : QUnixTerminalImpl(parent) { } + QTerminal(QWidget *xparent = 0) + : QUnixTerminalImpl(xparent) { } ~QTerminal() { } }; #endif diff -r f97a746e4544 -r 0cbac4d3a81c libgui/qterminal/libqterminal/QTerminalInterface.h --- a/libgui/qterminal/libqterminal/QTerminalInterface.h Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/qterminal/libqterminal/QTerminalInterface.h Sat Jan 12 13:36:15 2013 -0500 @@ -30,7 +30,7 @@ { Q_OBJECT public: - QTerminalInterface(QWidget *parent = 0) : QWidget(parent) { + QTerminalInterface(QWidget *xparent = 0) : QWidget(xparent) { connect (this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(handleCustomContextMenuRequested(QPoint))); diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/history-dockwidget.cc --- a/libgui/src/history-dockwidget.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/history-dockwidget.cc Sat Jan 12 13:36:15 2013 -0500 @@ -102,14 +102,14 @@ setFocusProxy (_filter_line_edit); } -void history_dock_widget::ctxMenu(const QPoint &pos) { +void history_dock_widget::ctxMenu(const QPoint &xpos) { QMenu *menu = new QMenu; menu->addAction(tr("Copy"), this, SLOT(handle_contextmenu_copy(bool))); menu->addAction(tr("Evaluate"), this, SLOT(handle_contextmenu_evaluate(bool))); - menu->exec(_history_list_view->mapToGlobal(pos)); + menu->exec(_history_list_view->mapToGlobal(xpos)); } -void history_dock_widget::handle_contextmenu_copy(bool flag) +void history_dock_widget::handle_contextmenu_copy(bool) { QString text; QItemSelectionModel *selectionModel = _history_list_view->selectionModel(); @@ -123,7 +123,7 @@ QApplication::clipboard()->setText(text); } -void history_dock_widget::handle_contextmenu_evaluate(bool flag) +void history_dock_widget::handle_contextmenu_evaluate(bool) { QItemSelectionModel *selectionModel = _history_list_view->selectionModel(); QModelIndexList rows = selectionModel->selectedRows(); @@ -200,7 +200,7 @@ std::string entry = command_history::get_entry (i); _history_model->setData (_history_model->index (i), - QString::fromLocal8Bit (entry.data (), entry.size ())); + QString::fromUtf8 (entry.data (), entry.size ())); } // FIXME -- does this behavior make sense? Calling diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/m-editor/file-editor-tab.cc --- a/libgui/src/m-editor/file-editor-tab.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/m-editor/file-editor-tab.cc Sat Jan 12 13:36:15 2013 -0500 @@ -675,7 +675,7 @@ } int -file_editor_tab::check_file_modified (const QString& msg, int cancelButton) +file_editor_tab::check_file_modified (const QString&, int) { int decision = QMessageBox::Yes; if (_edit_area->isModified ()) @@ -987,13 +987,14 @@ else _edit_area->setAutoCompletionThreshold (-1); - QFont font( settings->value ("editor/fontName","Courier").toString () , - settings->value ("editor/fontSize",10).toInt () ); + QFont xfont (settings->value ("editor/fontName","Courier").toString (), + settings->value ("editor/fontSize",10).toInt ()); + if (settings->value ("editor/showLineNumbers",true).toBool ()) { _edit_area->setMarginLineNumbers (2, true); - _edit_area->setMarginsFont( font ); - QFontMetrics metrics( font ); + _edit_area->setMarginsFont (xfont); + QFontMetrics metrics (xfont); _edit_area->setMarginWidth(2, metrics.width("9999")); } else diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/m-editor/file-editor.cc --- a/libgui/src/m-editor/file-editor.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/m-editor/file-editor.cc Sat Jan 12 13:36:15 2013 -0500 @@ -225,7 +225,8 @@ // Create a NonModal message about error. QMessageBox* msgBox = new QMessageBox ( QMessageBox::Critical, tr ("Octave Editor"), - tr ("File not saved! You've selected a file name\n\n %1\n\nwhich is the same as an already open file in the editor. (Could allow overwriting, with message, if that is what folks want.)"). + tr ("File not saved! A file with the selected name\n%1\n" + "is already open in the editor"). arg (saveFileName), QMessageBox::Ok, 0); msgBox->setWindowModality (Qt::NonModal); @@ -511,7 +512,9 @@ file_editor::construct () { QWidget *editor_widget = new QWidget (this); - QStyle *editor_style = QApplication::style (); + + // FIXME -- what was the intended purpose of this unused variable? + // QStyle *editor_style = QApplication::style (); _menu_bar = new QMenuBar (editor_widget); _tool_bar = new QToolBar (editor_widget); diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/main-window.cc --- a/libgui/src/main-window.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/main-window.cc Sat Jan 12 13:36:15 2013 -0500 @@ -200,14 +200,15 @@ delete settingsDialog; } + void main_window::notice_settings () { - // Set terminal font: QSettings *settings = resource_manager::get_settings (); // FIXME -- what should happen if settings is 0? + // Set terminal font: QFont term_font = QFont(); term_font.setFamily(settings->value("terminal/fontName").toString()); term_font.setPointSize(settings->value("terminal/fontSize").toInt ()); @@ -224,8 +225,32 @@ cursorBlinking); // the widget's icons (when floating) - int icon_set = settings->value ("DockWidgets/widget_icon_set",0).toInt (); - QString icon_prefix = QString (WIDGET_ICON_SET_PREFIX[icon_set]); + QString icon_set = settings->value ("DockWidgets/widget_icon_set","NONE"). + toString (); + static struct + { + QString name; + QString path; + } + widget_icon_data[] = + { // array of possible icon sets (name, path (complete for NONE)) + // the first entry here is the default! + {"NONE", ":/actions/icons/logo.png"}, + {"GRAPHIC", ":/actions/icons/graphic_logo_"}, + {"LETTER", ":/actions/icons/letter_logo_"}, + {"", ""} // end marker has empty name + }; + int count = 0; + int icon_set_found = 0; // default + while (!widget_icon_data[count].name.isEmpty ()) + { // while not end of data + if (widget_icon_data[count].name == icon_set) + { // data of desired icon set found + icon_set_found = count; + break; + } + count++; + } QString icon; foreach (QObject *obj, children ()) { @@ -233,9 +258,9 @@ if (obj->inherits("QDockWidget") && ! name.isEmpty ()) { // if children is a dockwidget with a name QDockWidget *widget = qobject_cast (obj); - icon = icon_prefix; // prefix or octave-logo - if (icon_set) // > 0 : each widget has individual icon - icon = icon + name + QString(".png"); + icon = widget_icon_data[icon_set_found].path; // prefix or octave-logo + if (widget_icon_data[icon_set_found].name != "NONE") + icon = icon + name + ".png"; // add widget name and ext. widget->setWindowIcon (QIcon (icon)); } } @@ -243,6 +268,7 @@ resource_manager::update_network_settings (); } + void main_window::prepare_for_quit () { @@ -276,7 +302,7 @@ if (!directory.isEmpty ()) { - std::string dir = directory.toLocal8Bit ().data (); + std::string dir = directory.toUtf8 ().data (); octave_link::post_event (this, &main_window::change_directory_callback,dir); } } @@ -287,7 +313,7 @@ QFileInfo fileInfo (directory); // check whether this is an existing dir if (fileInfo.exists () && fileInfo.isDir ()) // is dir and exists { - std::string dir = directory.toLocal8Bit ().data (); + std::string dir = directory.toUtf8 ().data (); octave_link::post_event (this, &main_window::change_directory_callback,dir); } } diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/octave-adapter/octave-main-thread.cc diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/octave-qt-event-listener.cc --- a/libgui/src/octave-qt-event-listener.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/octave-qt-event-listener.cc Sat Jan 12 13:36:15 2013 -0500 @@ -36,7 +36,7 @@ octave_qt_event_listener::current_directory_has_changed (const std::string& directory) { emit current_directory_has_changed_signal - (QString::fromLocal8Bit (directory.data (), directory.size ())); + (QString::fromUtf8 (directory.data (), directory.size ())); } void diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/resource-manager.cc --- a/libgui/src/resource-manager.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/resource-manager.cc Sat Jan 12 13:36:15 2013 -0500 @@ -56,7 +56,7 @@ resource_manager::find_translator_file (const QString& language) { // TODO: Quick hack to be able to test language files. - return QString ("../languages/%1.qm").arg (language); + return QString ("libgui/languages/%1.qm").arg (language); } bool diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/resource-manager.h --- a/libgui/src/resource-manager.h Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/resource-manager.h Sat Jan 12 13:36:15 2013 -0500 @@ -28,18 +28,6 @@ #include #include -// constants for the widget's icons -enum widget_icon_set - { - NO_ICON_SET = 0, - GRAPHIC_ICON_SET, - LETTER_ICON_SET - }; -static const char* WIDGET_ICON_SET_PREFIX[] = - {":/actions/icons/logo.png", - ":/actions/icons/graphic_logo_", - ":/actions/icons/letter_logo_"}; - class resource_manager { @@ -119,6 +107,7 @@ void do_update_network_settings (void); bool do_is_first_run (void); + }; #endif // RESOURCEMANAGER_H diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/settings-dialog.cc --- a/libgui/src/settings-dialog.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/settings-dialog.cc Sat Jan 12 13:36:15 2013 -0500 @@ -38,10 +38,12 @@ // FIXME -- what should happen if settings is 0? - int widget_icon_set = settings->value ("DockWidgets/widget_icon_set",0).toInt (); - ui->general_icon_octave-> setChecked (NO_ICON_SET == widget_icon_set); - ui->general_icon_graphic-> setChecked (GRAPHIC_ICON_SET == widget_icon_set); - ui->general_icon_letter-> setChecked (LETTER_ICON_SET == widget_icon_set); + QString widget_icon_set = + settings->value ("DockWidgets/widget_icon_set","NONE").toString (); + ui->general_icon_octave-> setChecked (true); // the default (if invalid set) + ui->general_icon_octave-> setChecked (widget_icon_set == "NONE"); + ui->general_icon_graphic-> setChecked (widget_icon_set == "GRAPHIC"); + ui->general_icon_letter-> setChecked (widget_icon_set == "LETTER"); ui->useCustomFileEditor->setChecked (settings->value ("useCustomFileEditor").toBool ()); ui->customFileEditor->setText (settings->value ("customFileEditor").toString ()); @@ -105,11 +107,11 @@ // FIXME -- what should happen if settings is 0? - int widget_icon_set = NO_ICON_SET; + QString widget_icon_set = "NONE"; if (ui->general_icon_letter->isChecked ()) - widget_icon_set = LETTER_ICON_SET; + widget_icon_set = "LETTER"; else if (ui->general_icon_graphic->isChecked ()) - widget_icon_set = GRAPHIC_ICON_SET; + widget_icon_set = "GRAPHIC"; settings->setValue ("DockWidgets/widget_icon_set",widget_icon_set); settings->setValue ("useCustomFileEditor", ui->useCustomFileEditor->isChecked ()); settings->setValue ("customFileEditor", ui->customFileEditor->text ()); diff -r f97a746e4544 -r 0cbac4d3a81c libgui/src/symbol-information.h --- a/libgui/src/symbol-information.h Fri Jan 11 16:27:22 2013 -0500 +++ b/libgui/src/symbol-information.h Sat Jan 12 13:36:15 2013 -0500 @@ -81,7 +81,11 @@ QString symbol (void) const { return _symbol; } QString class_name (void) const { return _class_name; } - QString value (void) const { return _value; } + QString value (void) const + { + return QString::fromUtf8 (_value.toStdString ().data (), + _value.toStdString ().size ()); + } QString dimension (void) const { return _dimension; } Scope scope (void) const { return _scope; } diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/Makefile.am diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/gendoc.pl diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/interp-core/jit-typeinfo.cc --- a/libinterp/interp-core/jit-typeinfo.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libinterp/interp-core/jit-typeinfo.cc Sat Jan 12 13:36:15 2013 -0500 @@ -381,6 +381,15 @@ } extern "C" Complex +octave_jit_complex_mul (Complex lhs, Complex rhs) +{ + if (lhs.imag () == 0 && rhs.imag() == 0) + return Complex (lhs.real () * rhs.real (), 0); + + return lhs * rhs; +} + +extern "C" Complex octave_jit_complex_div (Complex lhs, Complex rhs) { // see src/OPERATORS/op-cs-cs.cc @@ -1018,6 +1027,9 @@ new jit_typeinfo (m, e); } +// wrap function names to simplify jit_typeinfo::create_external +#define JIT_FN(fn) engine, &fn, #fn + jit_typeinfo::jit_typeinfo (llvm::Module *m, llvm::ExecutionEngine *e) : module (m), engine (e), next_id (0), builder (*new llvm::IRBuilderD (context)) @@ -1051,7 +1063,7 @@ matrix_contents[4] = string_t; matrix_t->setBody (llvm::makeArrayRef (matrix_contents, 5)); - llvm::Type *complex_t = llvm::VectorType::get (scalar_t, 2); + llvm::Type *complex_t = llvm::ArrayType::get (scalar_t, 2); // complex_ret is what is passed to C functions in order to get calling // convention right @@ -1122,19 +1134,16 @@ // generic call function { jit_type *int_t = intN (sizeof (octave_builtin::fcn) * 8); - any_call = create_function (jit_convention::external, "octave_jit_call", - any, int_t, int_t, any_ptr, int_t); - any_call.add_mapping (engine, &octave_jit_call); + any_call = create_external (JIT_FN (octave_jit_call), any, int_t, int_t, + any_ptr, int_t); } // any with anything is an any op jit_function fn; jit_type *binary_op_type = intN (sizeof (octave_value::binary_op) * 8); llvm::Type *llvm_bo_type = binary_op_type->to_llvm (); - jit_function any_binary = create_function (jit_convention::external, - "octave_jit_binary_any_any", + jit_function any_binary = create_external (JIT_FN (octave_jit_binary_any_any), any, binary_op_type, any, any); - any_binary.add_mapping (engine, &octave_jit_binary_any_any); any_binary.mark_can_error (); binary_ops.resize (octave_value::num_binary_ops); for (size_t i = 0; i < octave_value::num_binary_ops; ++i) @@ -1157,7 +1166,7 @@ llvm::Twine fn_name ("octave_jit_binary_any_any_"); fn_name = fn_name + llvm::Twine (op); - fn = create_function (jit_convention::internal, fn_name, any, any, any); + fn = create_internal (fn_name, any, any, any); fn.mark_can_error (); llvm::BasicBlock *block = fn.new_block (); builder.SetInsertPoint (block); @@ -1172,9 +1181,7 @@ } // grab matrix - fn = create_function (jit_convention::external, "octave_jit_grab_matrix", - matrix, matrix); - fn.add_mapping (engine, &octave_jit_grab_matrix); + fn = create_external (JIT_FN (octave_jit_grab_matrix), matrix, matrix); grab_fn.add_overload (fn); grab_fn.add_overload (create_identity (scalar)); @@ -1185,16 +1192,12 @@ grab_fn.add_overload (create_identity (index)); // release any - fn = create_function (jit_convention::external, "octave_jit_release_any", 0, - any); - fn.add_mapping (engine, &octave_jit_release_any); + fn = create_external (JIT_FN (octave_jit_release_any), 0, any); release_fn.add_overload (fn); release_fn.stash_name ("release"); // release matrix - fn = create_function (jit_convention::external, "octave_jit_release_matrix", - 0, matrix); - fn.add_mapping (engine, &octave_jit_release_matrix); + fn = create_external (JIT_FN (octave_jit_release_matrix), 0, matrix); release_fn.add_overload (fn); // destroy @@ -1218,14 +1221,11 @@ add_binary_fcmp (scalar, octave_value::op_gt, llvm::CmpInst::FCMP_UGT); add_binary_fcmp (scalar, octave_value::op_ne, llvm::CmpInst::FCMP_UNE); - jit_function gripe_div0 = create_function (jit_convention::external, - "gripe_divide_by_zero", 0); - gripe_div0.add_mapping (engine, &gripe_divide_by_zero); + jit_function gripe_div0 = create_external (JIT_FN (gripe_divide_by_zero), 0); gripe_div0.mark_can_error (); // divide is annoying because it might error - fn = create_function (jit_convention::internal, - "octave_jit_div_scalar_scalar", scalar, scalar, scalar); + fn = create_internal ("octave_jit_div_scalar_scalar", scalar, scalar, scalar); fn.mark_can_error (); llvm::BasicBlock *body = fn.new_block (); @@ -1258,17 +1258,14 @@ // In general, the result of scalar ^ scalar is a complex number. We might be // able to improve on this if we keep track of the range of values varaibles // can take on. - fn = create_function (jit_convention::external, - "octave_jit_pow_scalar_scalar", complex, scalar, + fn = create_external (JIT_FN (octave_jit_pow_scalar_scalar), complex, scalar, scalar); - fn.add_mapping (engine, &octave_jit_pow_scalar_scalar); binary_ops[octave_value::op_pow].add_overload (fn); binary_ops[octave_value::op_el_pow].add_overload (fn); // now for unary scalar operations // FIXME: Impelment not - fn = create_function (jit_convention::internal, "octave_jit_++", scalar, - scalar); + fn = create_internal ("octave_jit_++", scalar, scalar); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1279,8 +1276,7 @@ } unary_ops[octave_value::op_incr].add_overload (fn); - fn = create_function (jit_convention::internal, "octave_jit_--", scalar, - scalar); + fn = create_internal ("octave_jit_--", scalar, scalar); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1291,8 +1287,7 @@ } unary_ops[octave_value::op_decr].add_overload (fn); - fn = create_function (jit_convention::internal, "octave_jit_uminus", scalar, - scalar); + fn = create_internal ("octave_jit_uminus", scalar, scalar); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1308,106 +1303,53 @@ unary_ops[octave_value::op_hermitian].add_overload (fn); // now for binary complex operations - add_binary_op (complex, octave_value::op_add, llvm::Instruction::FAdd); - add_binary_op (complex, octave_value::op_sub, llvm::Instruction::FSub); + fn = create_internal ("octave_jit_+_complex_complex", complex, complex, + complex); + body = fn.new_block (); + builder.SetInsertPoint (body); + { + llvm::Value *lhs = fn.argument (builder, 0); + llvm::Value *rhs = fn.argument (builder, 1); + llvm::Value *real = builder.CreateFAdd (complex_real (lhs), + complex_real (rhs)); + llvm::Value *imag = builder.CreateFAdd (complex_imag (lhs), + complex_imag (rhs)); + fn.do_return (builder, complex_new (real, imag)); + } + binary_ops[octave_value::op_add].add_overload (fn); - fn = create_function (jit_convention::internal, - "octave_jit_*_complex_complex", complex, complex, + fn = create_internal ("octave_jit_-_complex_complex", complex, complex, complex); body = fn.new_block (); builder.SetInsertPoint (body); { - // (x0*x1 - y0*y1, x0*y1 + y0*x1) = (x0,y0) * (x1,y1) - // We compute this in one vectorized multiplication, a subtraction, and an - // addition. llvm::Value *lhs = fn.argument (builder, 0); llvm::Value *rhs = fn.argument (builder, 1); - - // FIXME: We need a better way of doing this, working with llvm's IR - // directly is sort of a pain. - llvm::Value *zero = builder.getInt32 (0); - llvm::Value *one = builder.getInt32 (1); - llvm::Value *two = builder.getInt32 (2); - llvm::Value *three = builder.getInt32 (3); - llvm::Value *fzero = llvm::ConstantFP::get (scalar_t, 0); - - // we are really dealing with a complex number OR a scalar. That is, if the - // complex component is 0, we really have a scalar. This matters in - // 0+0i * NaN - llvm::BasicBlock *complex_mul = fn.new_block ("complex_mul"); - llvm::BasicBlock *real_mul = fn.new_block ("real_mul"); - llvm::BasicBlock *ret_block = fn.new_block ("ret"); - llvm::Value *temp = builder.CreateFCmpUEQ (complex_imag (lhs), fzero); - llvm::Value *temp2 = builder.CreateFCmpUEQ (complex_imag (rhs), fzero); - temp = builder.CreateAnd (temp, temp2); - builder.CreateCondBr (temp, real_mul, complex_mul); - - builder.SetInsertPoint(real_mul); - temp = builder.CreateFMul (complex_real (lhs), complex_real (rhs)); - llvm::Value *real_branch_ret = complex_new (temp, fzero); - builder.CreateBr (ret_block); + llvm::Value *real = builder.CreateFSub (complex_real (lhs), + complex_real (rhs)); + llvm::Value *imag = builder.CreateFSub (complex_imag (lhs), + complex_imag (rhs)); + fn.do_return (builder, complex_new (real, imag)); + } + binary_ops[octave_value::op_sub].add_overload (fn); - llvm::Type *vec4 = llvm::VectorType::get (scalar_t, 4); - llvm::Value *mlhs = llvm::UndefValue::get (vec4); - llvm::Value *mrhs = mlhs; - builder.SetInsertPoint (complex_mul); - temp = complex_real (lhs); - mlhs = builder.CreateInsertElement (mlhs, temp, zero); - mlhs = builder.CreateInsertElement (mlhs, temp, two); - temp = complex_imag (lhs); - mlhs = builder.CreateInsertElement (mlhs, temp, one); - mlhs = builder.CreateInsertElement (mlhs, temp, three); - - temp = complex_real (rhs); - mrhs = builder.CreateInsertElement (mrhs, temp, zero); - mrhs = builder.CreateInsertElement (mrhs, temp, three); - temp = complex_imag (rhs); - mrhs = builder.CreateInsertElement (mrhs, temp, one); - mrhs = builder.CreateInsertElement (mrhs, temp, two); - - llvm::Value *mres = builder.CreateFMul (mlhs, mrhs); - llvm::Value *tlhs = builder.CreateExtractElement (mres, zero); - llvm::Value *trhs = builder.CreateExtractElement (mres, one); - llvm::Value *ret_real = builder.CreateFSub (tlhs, trhs); - - tlhs = builder.CreateExtractElement (mres, two); - trhs = builder.CreateExtractElement (mres, three); - llvm::Value *ret_imag = builder.CreateFAdd (tlhs, trhs); - llvm::Value *complex_branch_ret = complex_new (ret_real, ret_imag); - builder.CreateBr (ret_block); - - builder.SetInsertPoint (ret_block); - llvm::PHINode *merge = llvm::PHINode::Create(complex_t, 2); - builder.Insert (merge); - merge->addIncoming (real_branch_ret, real_mul); - merge->addIncoming (complex_branch_ret, complex_mul); - fn.do_return (builder, merge); - } - + fn = create_external (JIT_FN (octave_jit_complex_mul), + complex, complex, complex); binary_ops[octave_value::op_mul].add_overload (fn); binary_ops[octave_value::op_el_mul].add_overload (fn); - jit_function complex_div = create_function (jit_convention::external, - "octave_jit_complex_div", + jit_function complex_div = create_external (JIT_FN (octave_jit_complex_div), complex, complex, complex); - complex_div.add_mapping (engine, &octave_jit_complex_div); complex_div.mark_can_error (); binary_ops[octave_value::op_div].add_overload (fn); binary_ops[octave_value::op_ldiv].add_overload (fn); - // fn = mirror_binary (complex_div); - // binary_ops[octave_value::op_ldiv].add_overload (fn); - // binary_ops[octave_value::op_el_ldiv].add_overload (fn); - - fn = create_function (jit_convention::external, - "octave_jit_pow_complex_complex", complex, complex, - complex); - fn.add_mapping (engine, &octave_jit_pow_complex_complex); + fn = create_external (JIT_FN (octave_jit_pow_complex_complex), complex, + complex, complex); binary_ops[octave_value::op_pow].add_overload (fn); binary_ops[octave_value::op_el_pow].add_overload (fn); - fn = create_function (jit_convention::internal, - "octave_jit_*_scalar_complex", complex, scalar, + fn = create_internal ("octave_jit_*_scalar_complex", complex, scalar, complex); jit_function mul_scalar_complex = fn; body = fn.new_block (); @@ -1430,8 +1372,9 @@ builder.SetInsertPoint (complex_mul); - temp = complex_new (lhs, lhs); - fn.do_return (builder, builder.CreateFMul (temp, rhs)); + temp = complex_new (builder.CreateFMul (lhs, complex_real (rhs)), + builder.CreateFMul (lhs, complex_imag (rhs))); + fn.do_return (builder, temp); } binary_ops[octave_value::op_mul].add_overload (fn); binary_ops[octave_value::op_el_mul].add_overload (fn); @@ -1441,8 +1384,8 @@ binary_ops[octave_value::op_mul].add_overload (fn); binary_ops[octave_value::op_el_mul].add_overload (fn); - fn = create_function (jit_convention::internal, "octave_jit_+_scalar_complex", - complex, scalar, complex); + fn = create_internal ("octave_jit_+_scalar_complex", complex, scalar, + complex); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1456,8 +1399,8 @@ fn = mirror_binary (fn); binary_ops[octave_value::op_add].add_overload (fn); - fn = create_function (jit_convention::internal, "octave_jit_-_complex_scalar", - complex, complex, scalar); + fn = create_internal ("octave_jit_-_complex_scalar", complex, complex, + scalar); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1468,8 +1411,8 @@ } binary_ops[octave_value::op_sub].add_overload (fn); - fn = create_function (jit_convention::internal, "octave_jit_-_scalar_complex", - complex, scalar, complex); + fn = create_internal ("octave_jit_-_scalar_complex", complex, scalar, + complex); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1480,17 +1423,13 @@ } binary_ops[octave_value::op_sub].add_overload (fn); - fn = create_function (jit_convention::external, - "octave_jit_pow_scalar_complex", complex, scalar, + fn = create_external (JIT_FN (octave_jit_pow_scalar_complex), complex, scalar, complex); - fn.add_mapping (engine, &octave_jit_pow_scalar_complex); binary_ops[octave_value::op_pow].add_overload (fn); binary_ops[octave_value::op_el_pow].add_overload (fn); - fn = create_function (jit_convention::external, - "octave_jit_pow_complex_scalar", complex, complex, - scalar); - fn.add_mapping (engine, &octave_jit_pow_complex_scalar); + fn = create_external (JIT_FN (octave_jit_pow_complex_scalar), complex, + complex, scalar); binary_ops[octave_value::op_pow].add_overload (fn); binary_ops[octave_value::op_el_pow].add_overload (fn); @@ -1509,8 +1448,7 @@ // initialize for loop for_init_fn.stash_name ("for_init"); - fn = create_function (jit_convention::internal, "octave_jit_for_range_init", - index, range); + fn = create_internal ("octave_jit_for_range_init", index, range); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1522,8 +1460,7 @@ // bounds check for for loop for_check_fn.stash_name ("for_check"); - fn = create_function (jit_convention::internal, "octave_jit_for_range_check", - boolean, range, index); + fn = create_internal ("octave_jit_for_range_check", boolean, range, index); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1538,8 +1475,7 @@ // index variabe for for loop for_index_fn.stash_name ("for_index"); - fn = create_function (jit_convention::internal, "octave_jit_for_range_idx", - scalar, range, index); + fn = create_internal ("octave_jit_for_range_idx", scalar, range, index); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1559,13 +1495,10 @@ logically_true_fn.stash_name ("logically_true"); jit_function gripe_nantl - = create_function (jit_convention::external, - "octave_jit_gripe_nan_to_logical_conversion", 0); - gripe_nantl.add_mapping (engine, &octave_jit_gripe_nan_to_logical_conversion); + = create_external (JIT_FN (octave_jit_gripe_nan_to_logical_conversion), 0); gripe_nantl.mark_can_error (); - fn = create_function (jit_convention::internal, - "octave_jit_logically_true_scalar", boolean, scalar); + fn = create_internal ("octave_jit_logically_true_scalar", boolean, scalar); fn.mark_can_error (); body = fn.new_block (); @@ -1597,12 +1530,11 @@ // FIXME: May be benificial to implement all in LLVM make_range_fn.stash_name ("make_range"); jit_function compute_nelem - = create_function (jit_convention::external, "octave_jit_compute_nelem", + = create_external (JIT_FN (octave_jit_compute_nelem), index, scalar, scalar, scalar); - compute_nelem.add_mapping (engine, &octave_jit_compute_nelem); + - fn = create_function (jit_convention::internal, "octave_jit_make_range", - range, scalar, scalar, scalar); + fn = create_internal ("octave_jit_make_range", range, scalar, scalar, scalar); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1627,17 +1559,12 @@ jit_type *jit_int = intN (sizeof (int) * 8); llvm::Type *int_t = jit_int->to_llvm (); jit_function ginvalid_index - = create_function (jit_convention::external, "octave_jit_ginvalid_index", - 0); - ginvalid_index.add_mapping (engine, &octave_jit_ginvalid_index); - jit_function gindex_range = create_function (jit_convention::external, - "octave_jit_gindex_range", + = create_external (JIT_FN (octave_jit_ginvalid_index), 0); + jit_function gindex_range = create_external (JIT_FN (octave_jit_gindex_range), 0, jit_int, jit_int, index, index); - gindex_range.add_mapping (engine, &octave_jit_gindex_range); - fn = create_function (jit_convention::internal, "()subsref", scalar, matrix, - scalar); + fn = create_internal ("()subsref", scalar, matrix, scalar); fn.mark_can_error (); body = fn.new_block (); @@ -1706,12 +1633,11 @@ paren_subsasgn_fn.stash_name ("()subsasgn"); jit_function resize_paren_subsasgn - = create_function (jit_convention::external, - "octave_jit_paren_subsasgn_impl", matrix, matrix, index, - scalar); - resize_paren_subsasgn.add_mapping (engine, &octave_jit_paren_subsasgn_impl); - fn = create_function (jit_convention::internal, "octave_jit_paren_subsasgn", - matrix, matrix, scalar, scalar); + = create_external (JIT_FN (octave_jit_paren_subsasgn_impl), matrix, matrix, + index, scalar); + + fn = create_internal ("octave_jit_paren_subsasgn", matrix, matrix, scalar, + scalar); fn.mark_can_error (); body = fn.new_block (); builder.SetInsertPoint (body); @@ -1774,16 +1700,13 @@ } paren_subsasgn_fn.add_overload (fn); - fn = create_function (jit_convention::external, - "octave_jit_paren_subsasgn_matrix_range", matrix, + fn = create_external (JIT_FN (octave_jit_paren_subsasgn_matrix_range), matrix, matrix, range, scalar); - fn.add_mapping (engine, &octave_jit_paren_subsasgn_matrix_range); fn.mark_can_error (); paren_subsasgn_fn.add_overload (fn); end1_fn.stash_name ("end1"); - fn = create_function (jit_convention::internal, "octave_jit_end1_matrix", - scalar, matrix, index, index); + fn = create_internal ("octave_jit_end1_matrix", scalar, matrix, index, index); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1794,14 +1717,13 @@ end1_fn.add_overload (fn); end_fn.stash_name ("end"); - fn = create_function (jit_convention::external, "octave_jit_end_matrix", - scalar, matrix, index, index); + fn = create_external (JIT_FN (octave_jit_end_matrix),scalar, matrix, index, + index); end_fn.add_overload (fn); // -------------------- create_undef -------------------- create_undef_fn.stash_name ("create_undef"); - fn = create_function (jit_convention::external, "octave_jit_create_undef", - any); + fn = create_external (JIT_FN (octave_jit_create_undef), any); create_undef_fn.add_overload (fn); casts[any->type_id ()].stash_name ("(any)"); @@ -1811,56 +1733,39 @@ casts[range->type_id ()].stash_name ("(range)"); // cast any <- matrix - fn = create_function (jit_convention::external, "octave_jit_cast_any_matrix", - any, matrix); - fn.add_mapping (engine, &octave_jit_cast_any_matrix); + fn = create_external (JIT_FN (octave_jit_cast_any_matrix), any, matrix); casts[any->type_id ()].add_overload (fn); // cast matrix <- any - fn = create_function (jit_convention::external, "octave_jit_cast_matrix_any", - matrix, any); - fn.add_mapping (engine, &octave_jit_cast_matrix_any); + fn = create_external (JIT_FN (octave_jit_cast_matrix_any), matrix, any); casts[matrix->type_id ()].add_overload (fn); // cast any <- range - fn = create_function (jit_convention::external, "octave_jit_cast_any_range", - any, range); - fn.add_mapping (engine, &octave_jit_cast_any_range); + fn = create_external (JIT_FN (octave_jit_cast_any_range), any, range); casts[any->type_id ()].add_overload (fn); // cast range <- any - fn = create_function (jit_convention::external, "octave_jit_cast_range_any", - range, any); - fn.add_mapping (engine, &octave_jit_cast_range_any); + fn = create_external (JIT_FN (octave_jit_cast_range_any), range, any); casts[range->type_id ()].add_overload (fn); // cast any <- scalar - fn = create_function (jit_convention::external, "octave_jit_cast_any_scalar", - any, scalar); - fn.add_mapping (engine, &octave_jit_cast_any_scalar); + fn = create_external (JIT_FN (octave_jit_cast_any_scalar), any, scalar); casts[any->type_id ()].add_overload (fn); // cast scalar <- any - fn = create_function (jit_convention::external, "octave_jit_cast_scalar_any", - scalar, any); - fn.add_mapping (engine, &octave_jit_cast_scalar_any); + fn = create_external (JIT_FN (octave_jit_cast_scalar_any), scalar, any); casts[scalar->type_id ()].add_overload (fn); // cast any <- complex - fn = create_function (jit_convention::external, "octave_jit_cast_any_complex", - any, complex); - fn.add_mapping (engine, &octave_jit_cast_any_complex); + fn = create_external (JIT_FN (octave_jit_cast_any_complex), any, complex); casts[any->type_id ()].add_overload (fn); // cast complex <- any - fn = create_function (jit_convention::external, "octave_jit_cast_complex_any", - complex, any); - fn.add_mapping (engine, &octave_jit_cast_complex_any); + fn = create_external (JIT_FN (octave_jit_cast_complex_any), complex, any); casts[complex->type_id ()].add_overload (fn); // cast complex <- scalar - fn = create_function (jit_convention::internal, - "octave_jit_cast_complex_scalar", complex, scalar); + fn = create_internal ("octave_jit_cast_complex_scalar", complex, scalar); body = fn.new_block (); builder.SetInsertPoint (body); { @@ -1870,8 +1775,7 @@ casts[complex->type_id ()].add_overload (fn); // cast scalar <- complex - fn = create_function (jit_convention::internal, - "octave_jit_cast_scalar_complex", scalar, complex); + fn = create_internal ("octave_jit_cast_scalar_complex", scalar, complex); body = fn.new_block (); builder.SetInsertPoint (body); fn.do_return (builder, complex_real (fn.argument (builder, 0))); @@ -1934,9 +1838,8 @@ casts.resize (next_id + 1); jit_function any_id = create_identity (any); - jit_function grab_any = create_function (jit_convention::external, - "octave_jit_grab_any", any, any); - grab_any.add_mapping (engine, &octave_jit_grab_any); + jit_function grab_any = create_external (JIT_FN (octave_jit_grab_any), + any, any); jit_function release_any = get_release (any); std::vector args; args.resize (1); @@ -1981,9 +1884,7 @@ { std::stringstream name; name << "octave_jit_print_" << ty->name (); - jit_function fn = create_function (jit_convention::external, name.str (), 0, - intN (8), ty); - fn.add_mapping (engine, fptr); + jit_function fn = create_external (engine, fptr, name.str (), 0, intN (8), ty); print_fn.add_overload (fn); } @@ -1996,8 +1897,7 @@ fname << "octave_jit_" << octave_value::binary_op_as_string (ov_op) << "_" << ty->name (); - jit_function fn = create_function (jit_convention::internal, fname.str (), - ty, ty, ty); + jit_function fn = create_internal (fname.str (), ty, ty, ty); llvm::BasicBlock *block = fn.new_block (); builder.SetInsertPoint (block); llvm::Instruction::BinaryOps temp @@ -2017,8 +1917,7 @@ fname << "octave_jit" << octave_value::binary_op_as_string (ov_op) << "_" << ty->name (); - jit_function fn = create_function (jit_convention::internal, fname.str (), - boolean, ty, ty); + jit_function fn = create_internal (fname.str (), boolean, ty, ty); llvm::BasicBlock *block = fn.new_block (); builder.SetInsertPoint (block); llvm::CmpInst::Predicate temp @@ -2037,8 +1936,7 @@ fname << "octave_jit" << octave_value::binary_op_as_string (ov_op) << "_" << ty->name (); - jit_function fn = create_function (jit_convention::internal, fname.str (), - boolean, ty, ty); + jit_function fn = create_internal (fname.str (), boolean, ty, ty); llvm::BasicBlock *block = fn.new_block (); builder.SetInsertPoint (block); llvm::CmpInst::Predicate temp @@ -2069,9 +1967,8 @@ { std::stringstream name; name << "id_" << type->name (); - jit_function fn = create_function (jit_convention::internal, name.str (), - type, type); + jit_function fn = create_internal (name.str (), type, type); llvm::BasicBlock *body = fn.new_block (); builder.SetInsertPoint (body); fn.do_return (builder, fn.argument (builder, 0)); @@ -2130,8 +2027,7 @@ // The first argument will be the Octave function, but we already know that // the function call is the equivalent of the intrinsic, so we ignore it and // call the intrinsic with the remaining arguments. - jit_function fn = create_function (jit_convention::internal, fn_name.str (), - result, args1); + jit_function fn = create_internal (fn_name.str (), result, args1); llvm::BasicBlock *body = fn.new_block (); builder.SetInsertPoint (body); @@ -2164,8 +2060,7 @@ std::vector fn_args (args.size () + 1); fn_args[0] = builtins[name]; std::copy (args.begin (), args.end (), fn_args.begin () + 1); - jit_function fn = create_function (jit_convention::internal, name, result, - fn_args); + jit_function fn = create_internal (name, result, fn_args); fn.mark_can_error (); llvm::BasicBlock *block = fn.new_block (); builder.SetInsertPoint (block); @@ -2203,8 +2098,7 @@ jit_function jit_typeinfo::mirror_binary (const jit_function& fn) { - jit_function ret = create_function (jit_convention::internal, - fn.name () + "_reverse", + jit_function ret = create_internal (fn.name () + "_reverse", fn.result (), fn.argument_type (1), fn.argument_type (0)); if (fn.can_error ()) @@ -2226,8 +2120,8 @@ jit_typeinfo::pack_complex (llvm::IRBuilderD& bld, llvm::Value *cplx) { llvm::Type *complex_ret = instance->complex_ret; - llvm::Value *real = bld.CreateExtractElement (cplx, bld.getInt32 (0)); - llvm::Value *imag = bld.CreateExtractElement (cplx, bld.getInt32 (1)); + llvm::Value *real = bld.CreateExtractValue (cplx, 0); + llvm::Value *imag = bld.CreateExtractValue (cplx, 1); llvm::Value *ret = llvm::UndefValue::get (complex_ret); unsigned int re_idx[] = {0, 0}; @@ -2247,32 +2141,32 @@ llvm::Value *imag = bld.CreateExtractValue (result, im_idx); llvm::Value *ret = llvm::UndefValue::get (complex_t); - ret = bld.CreateInsertElement (ret, real, bld.getInt32 (0)); - return bld.CreateInsertElement (ret, imag, bld.getInt32 (1)); + ret = bld.CreateInsertValue (ret, real, 0); + return bld.CreateInsertValue (ret, imag, 1); } llvm::Value * jit_typeinfo::complex_real (llvm::Value *cx) { - return builder.CreateExtractElement (cx, builder.getInt32 (0)); + return builder.CreateExtractValue (cx, 0); } llvm::Value * jit_typeinfo::complex_real (llvm::Value *cx, llvm::Value *real) { - return builder.CreateInsertElement (cx, real, builder.getInt32 (0)); + return builder.CreateInsertValue (cx, real, 0); } llvm::Value * jit_typeinfo::complex_imag (llvm::Value *cx) { - return builder.CreateExtractElement (cx, builder.getInt32 (1)); + return builder.CreateExtractValue (cx, 1); } llvm::Value * jit_typeinfo::complex_imag (llvm::Value *cx, llvm::Value *imag) { - return builder.CreateInsertElement (cx, imag, builder.getInt32 (1)); + return builder.CreateInsertValue (cx, imag, 1); } llvm::Value * @@ -2333,7 +2227,7 @@ // We don't really represent complex values, instead we represent // complex_or_scalar. If the imag value is zero, we assume a scalar. - if (cv.imag () == 0) + if (cv.imag () != 0) return get_complex (); } diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/interp-core/jit-typeinfo.h --- a/libinterp/interp-core/jit-typeinfo.h Fri Jan 11 16:27:22 2013 -0500 +++ b/libinterp/interp-core/jit-typeinfo.h Sat Jan 12 13:36:15 2013 -0500 @@ -586,6 +586,11 @@ { return instance->create_undef_fn; } + + static llvm::Value *create_complex (llvm::Value *real, llvm::Value *imag) + { + return instance->complex_new (real, imag); + } private: jit_typeinfo (llvm::Module *m, llvm::ExecutionEngine *e); @@ -673,15 +678,53 @@ void add_binary_fcmp (jit_type *ty, int op, int llvm_op); + // create a function with an external calling convention + // forces the function pointer to be specified + template + jit_function create_external (llvm::ExecutionEngine *ee, T fn, + const llvm::Twine& name, jit_type *ret, + const std::vector& args + = std::vector ()) + { + jit_function retval = create_function (jit_convention::external, name, ret, + args); + retval.add_mapping (ee, fn); + return retval; + } + +#define JIT_PARAM_ARGS llvm::ExecutionEngine *ee, T fn, \ + const llvm::Twine& name, jit_type *ret, +#define JIT_PARAMS ee, fn, name, ret, +#define CREATE_FUNCTION(N) JIT_EXPAND(template jit_function, \ + create_external, \ + jit_type *, /* empty */, N) + + CREATE_FUNCTION(1); + CREATE_FUNCTION(2); + CREATE_FUNCTION(3); + CREATE_FUNCTION(4); + +#undef JIT_PARAM_ARGS +#undef JIT_PARAMS +#undef CREATE_FUNCTION + + // use create_external or create_internal directly jit_function create_function (jit_convention::type cc, const llvm::Twine& name, jit_type *ret, const std::vector& args = std::vector ()); -#define JIT_PARAM_ARGS jit_convention::type cc, const llvm::Twine& name, \ - jit_type *ret, -#define JIT_PARAMS cc, name, ret, -#define CREATE_FUNCTION(N) JIT_EXPAND(jit_function, create_function, \ + // create an internal calling convention (a function defined in llvm) + jit_function create_internal (const llvm::Twine& name, jit_type *ret, + const std::vector& args + = std::vector ()) + { + return create_function (jit_convention::internal, name, ret, args); + } + +#define JIT_PARAM_ARGS const llvm::Twine& name, jit_type *ret, +#define JIT_PARAMS name, ret, +#define CREATE_FUNCTION(N) JIT_EXPAND(jit_function, create_internal, \ jit_type *, /* empty */, N) CREATE_FUNCTION(1); diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/interp-core/pt-jit.cc --- a/libinterp/interp-core/pt-jit.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libinterp/interp-core/pt-jit.cc Sat Jan 12 13:36:15 2013 -0500 @@ -1262,11 +1262,10 @@ jit_convert_llvm::visit (jit_const_complex& cc) { llvm::Type *scalar_t = jit_typeinfo::get_scalar_llvm (); - llvm::Constant *values[2]; Complex value = cc.value (); - values[0] = llvm::ConstantFP::get (scalar_t, value.real ()); - values[1] = llvm::ConstantFP::get (scalar_t, value.imag ()); - cc.stash_llvm (llvm::ConstantVector::get (values)); + llvm::Value *real = llvm::ConstantFP::get (scalar_t, value.real ()); + llvm::Value *imag = llvm::ConstantFP::get (scalar_t, value.imag ()); + cc.stash_llvm (jit_typeinfo::create_complex (real, imag)); } void jit_convert_llvm::visit (jit_const_index& ci) diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/interpfcn/debug.cc --- a/libinterp/interpfcn/debug.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libinterp/interpfcn/debug.cc Sat Jan 12 13:36:15 2013 -0500 @@ -701,7 +701,7 @@ DEFUN (dbwhere, , , "-*- texinfo -*-\n\ -@deftypefn {Built-in Function} {} dbwhere ()\n\ +@deftypefn {Command} {} dbwhere\n\ In debugging mode, report the current file and line number where\n\ execution is stopped.\n\ @seealso{dbstatus, dbcont, dbstep, dbup}\n\ @@ -1027,8 +1027,8 @@ DEFUN (dbstack, args, nargout, "-*- texinfo -*-\n\ -@deftypefn {Built-in Function} {} dbstack ()\n\ -@deftypefnx {Built-in Function} {} dbstack (@var{n})\n\ +@deftypefn {Command} {} dbstack\n\ +@deftypefnx {Command} {} dbstack @var{n}\n\ @deftypefnx {Built-in Function} {[@var{stack}, @var{idx}] =} dbstack (@dots{})\n\ Display or return current debugging function stack information.\n\ With optional argument @var{n}, omit the @var{n} innermost stack frames.\n\ diff -r f97a746e4544 -r 0cbac4d3a81c libinterp/interpfcn/help.cc --- a/libinterp/interpfcn/help.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/libinterp/interpfcn/help.cc Sat Jan 12 13:36:15 2013 -0500 @@ -478,7 +478,16 @@ @deftypefn {Keyword} {} do\n\ Begin a do-until loop. This differs from a do-while loop in that the\n\ body of the loop is executed at least once.\n\ -@seealso{while}\n\ +\n\ +@example\n\ +@group\n\ +i = 0;\n\ +do\n\ + i++\n\ +until (i == 10)\n\ +@end group\n\ +@end example\n\ +@seealso{for, until, while}\n\ @end deftypefn"), pair_type ("else", @@ -708,7 +717,7 @@ pair_type ("until", "-*- texinfo -*-\n\ @deftypefn {Keyword} {} until\n\ -End a do-until loop.\n\ +End a do-until loop. See @code{do} for an example.\n\ @seealso{do}\n\ @end deftypefn"), @@ -751,7 +760,16 @@ "-*- texinfo -*-\n\ @deftypefn {Keyword} {} while\n\ Begin a while loop.\n\ -@seealso{do}\n\ +\n\ +@example\n\ +@group\n\ +i = 0;\n\ +while (i < 10)\n\ + i++\n\ +endwhile\n\ +@end group\n\ +@end example\n\ +@seealso{do, endwhile, for, until}\n\ @end deftypefn"), }; diff -r f97a746e4544 -r 0cbac4d3a81c liboctave/util/lo-cutils.h --- a/liboctave/util/lo-cutils.h Fri Jan 11 16:27:22 2013 -0500 +++ b/liboctave/util/lo-cutils.h Sat Jan 12 13:36:15 2013 -0500 @@ -23,6 +23,8 @@ #if !defined (octave_liboctave_cutils_h) #define octave_liboctave_cutils_h 1 +#include + #ifdef HAVE_LOADLIBRARY_API #define WIN32_LEAN_AND_MEAN #include diff -r f97a746e4544 -r 0cbac4d3a81c scripts/specfun/perms.m --- a/scripts/specfun/perms.m Fri Jan 11 16:27:22 2013 -0500 +++ b/scripts/specfun/perms.m Sat Jan 12 13:36:15 2013 -0500 @@ -38,17 +38,17 @@ ## @end example ## @end deftypefn -function A = perms (w) +function A = perms (v) if (nargin != 1) print_usage (); endif - v = [1:length(w)]'; - n = length (v); + vidx = [1:length(v)]'; + n = length (vidx); if (n == 0) p = []; else - p = v(1); + p = vidx(1); for j = 2:n B = p; p = zeros (prod (2:j), n); @@ -56,13 +56,13 @@ idx = 1:k; for i = j:-1:1 p(idx,1:i-1) = B(:,1:i-1); - p(idx,i) = v(j); + p(idx,i) = vidx(j); p(idx,i+1:j) = B(:,i:j-1); idx += k; endfor endfor endif - A = w(p); + A = v(p); endfunction diff -r f97a746e4544 -r 0cbac4d3a81c src/Makefile.am diff -r f97a746e4544 -r 0cbac4d3a81c src/mkoctfile.in.cc --- a/src/mkoctfile.in.cc Fri Jan 11 16:27:22 2013 -0500 +++ b/src/mkoctfile.in.cc Sat Jan 12 13:36:15 2013 -0500 @@ -202,13 +202,13 @@ vars["CPPFLAGS"] = get_variable ("CPPFLAGS", %OCTAVE_CONF_CPPFLAGS%); vars["INCFLAGS"] = get_variable ("INCFLAGS", DEFAULT_INCFLAGS); - vars["F77"] = get_variable ("F77", %OCTAVE_CONF_F77%); + vars["F77"] = get_variable ("F77", %OCTAVE_CONF_MKOCTFILE_F77%); vars["FFLAGS"] = get_variable ("FFLAGS", %OCTAVE_CONF_FFLAGS%); vars["FPICFLAG"] = get_variable ("FPICFLAG", %OCTAVE_CONF_FPICFLAG%); - vars["CC"] = get_variable ("CC", %OCTAVE_CONF_CC%); + vars["CC"] = get_variable ("CC", %OCTAVE_CONF_MKOCTFILE_CC%); vars["CFLAGS"] = get_variable ("CFLAGS", %OCTAVE_CONF_CFLAGS%); vars["CPICFLAG"] = get_variable ("CPICFLAG", %OCTAVE_CONF_CPICFLAG%); - vars["CXX"] = get_variable ("CXX", %OCTAVE_CONF_CXX%); + vars["CXX"] = get_variable ("CXX", %OCTAVE_CONF_MKOCTFILE_CXX%); vars["CXXFLAGS"] = get_variable ("CXXFLAGS", %OCTAVE_CONF_CXXFLAGS%); vars["CXXPICFLAG"] = get_variable ("CXXPICFLAG", %OCTAVE_CONF_CXXPICFLAG%); vars["XTRA_CFLAGS"] = get_variable ("XTRA_CFLAGS", %OCTAVE_CONF_XTRA_CFLAGS%); @@ -217,7 +217,7 @@ vars["DEPEND_FLAGS"] = get_variable ("DEPEND_FLAGS", %OCTAVE_CONF_DEPEND_FLAGS%); vars["DEPEND_EXTRA_SED_PATTERN"] = get_variable ("DEPEND_EXTRA_SED_PATTERN", %OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%); - vars["DL_LD"] = get_variable ("DL_LD", %OCTAVE_CONF_DL_LD%); + vars["DL_LD"] = get_variable ("DL_LD", %OCTAVE_CONF_MKOCTFILE_DL_LD%); vars["DL_LDFLAGS"] = get_variable ("DL_LDFLAGS", %OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%); vars["RDYNAMIC_FLAG"] = get_variable ("RDYNAMIC_FLAG", %OCTAVE_CONF_RDYNAMIC_FLAG%); @@ -236,7 +236,7 @@ vars["OCT_LINK_DEPS"] = get_variable ("FLIBS", %OCTAVE_CONF_OCT_LINK_DEPS%); vars["FLIBS"] = get_variable ("FLIBS", %OCTAVE_CONF_FLIBS%); - vars["LD_CXX"] = get_variable ("LD_CXX", %OCTAVE_CONF_LD_CXX%); + vars["LD_CXX"] = get_variable ("LD_CXX", %OCTAVE_CONF_MKOCTFILE_LD_CXX%); vars["LDFLAGS"] = get_variable ("LDFLAGS", %OCTAVE_CONF_LDFLAGS%); vars["LD_STATIC_FLAG"] = get_variable ("LD_STATIC_FLAG", %OCTAVE_CONF_LD_STATIC_FLAG%); vars["LFLAGS"] = get_variable ("LFLAGS", DEFAULT_LFLAGS); diff -r f97a746e4544 -r 0cbac4d3a81c src/mkoctfile.in.sh --- a/src/mkoctfile.in.sh Fri Jan 11 16:27:22 2013 -0500 +++ b/src/mkoctfile.in.sh Sat Jan 12 13:36:15 2013 -0500 @@ -67,13 +67,13 @@ : ${CPPFLAGS=%OCTAVE_CONF_CPPFLAGS%} : ${INCFLAGS=$DEFAULT_INCFLAGS} -: ${F77=%OCTAVE_CONF_F77%} +: ${F77=%OCTAVE_CONF_MKOCTFILE_F77%} : ${FFLAGS=%OCTAVE_CONF_FFLAGS%} : ${FPICFLAG=%OCTAVE_CONF_FPICFLAG%} -: ${CC=%OCTAVE_CONF_CC%} +: ${CC=%OCTAVE_CONF_MKOCTFILE_CC%} : ${CFLAGS=%OCTAVE_CONF_CFLAGS%} : ${CPICFLAG=%OCTAVE_CONF_CPICFLAG%} -: ${CXX=%OCTAVE_CONF_CXX%} +: ${CXX=%OCTAVE_CONF_MKOCTFILE_CXX%} : ${CXXFLAGS=%OCTAVE_CONF_CXXFLAGS%} : ${CXXPICFLAG=%OCTAVE_CONF_CXXPICFLAG%} : ${XTRA_CFLAGS=%OCTAVE_CONF_XTRA_CFLAGS%} @@ -82,7 +82,7 @@ : ${DEPEND_FLAGS=%OCTAVE_CONF_DEPEND_FLAGS%} : ${DEPEND_EXTRA_SED_PATTERN=%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%} -: ${DL_LD=%OCTAVE_CONF_DL_LD%} +: ${DL_LD=%OCTAVE_CONF_MKOCTFILE_DL_LD%} : ${DL_LDFLAGS=%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%} : ${RDYNAMIC_FLAG=%OCTAVE_CONF_RDYNAMIC_FLAG%} @@ -101,7 +101,7 @@ : ${OCTAVE_LINK_OPTS=%OCTAVE_CONF_OCTAVE_LINK_OPTS%} : ${OCT_LINK_DEPS=%OCTAVE_CONF_OCT_LINK_DEPS%} : ${OCT_LINK_OPTS=%OCTAVE_CONF_OCT_LINK_OPTS%} -: ${LD_CXX=%OCTAVE_CONF_LD_CXX%} +: ${LD_CXX=%OCTAVE_CONF_MKOCTFILE_LD_CXX%} : ${LDFLAGS=%OCTAVE_CONF_LDFLAGS%} : ${LD_STATIC_FLAG=%OCTAVE_CONF_LD_STATIC_FLAG%} : ${LFLAGS=$DEFAULT_LFLAGS}