]> git.lyx.org Git - lyx.git/commitdiff
some new (not extensive) changes, some fixes, will probably reverto to .la libs later...
authorLars Gullik Bjønnes <larsbj@gullik.org>
Sat, 8 Jan 2000 21:02:58 +0000 (21:02 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Sat, 8 Jan 2000 21:02:58 +0000 (21:02 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@408 a592a061-630c-0410-9148-cb99ea01b6c8

35 files changed:
ABOUT-NLS
ChangeLog
Makefile.am
acinclude.m4
autogen.sh
config/config.guess
config/config.sub
config/gettext.m4
config/lcmessage.m4
config/ltconfig
config/progtest.m4
lib/Makefile.am
po/Makefile.in.in
src/BufferView.C
src/BufferView.h
src/LyXView.C
src/Spacing.h
src/buffer.C
src/buffer.h
src/bufferlist.C
src/insets/insetref.h
src/lyx_cb.C
src/lyx_cb.h
src/lyxfunc.C
src/mathed/formula.C
src/mathed/math_symbols.C
src/menus.C
src/spellchecker.C
src/spellchecker.h
src/support/block.h
src/support/filetools.C
src/support/lstrings.C
src/text.C
src/text2.C
src/trans_mgr.C

index dacb8b18bed2a18974292237727854087941d5f3..28d38c76fd68364a19f8ef42601e0421bd9039f1 100644 (file)
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -137,7 +137,8 @@ Each translation team has its own mailing list, courtesy of Linux
 International.  You may reach your translation team at the address
 `LL@li.org', replacing LL by the two-letter ISO 639 code for your
 language.  Language codes are *not* the same as the country codes given
-in ISO 3166.  The following translation teams exist, as of August 1997:
+in ISO 3166.  The following translation teams exist, as of December
+1997:
 
      Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
      Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
@@ -172,42 +173,42 @@ Available Packages
 ==================
 
    Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of August
+matrix shows the current state of internationalization, as of December
 1997.  The matrix shows, in regard of each package, for which languages
 PO files have been submitted to translation coordination.
 
-     Ready PO files    cs da de en es fi fr it ja ko nl no pl pt sl sv
-                     .-------------------------------------------------.
-     bash            |       []          []          []                |  3
-     bison           |       []          []          []                |  3
-     clisp           |       [] [] []    []                            |  4
-     cpio            |       []    []    []          []    []          |  5
-     diffutils       |       []    []    []                []       [] |  5
-     enscript        |       []    [] [] []          []          []    |  6
-     fileutils       | []    []    []    []       [] []    [] [] [] [] | 10
-     findutils       |       []    []    [] []    [] []    []       [] |  8
-     flex            |             []    []       []                [] |  4
-     gcal            |       []          []          []    []       [] |  5
-     gettext         |       []    []    []       [] [] [] [] [] [] [] | 11
-     grep            |       []    []    []       [] [] [] []    [] [] |  9
-     hello           |       []    []    []       [] [] [] [] [] [] [] | 10
-     id-utils        |       []          []                []          |  3
-     indent          |    [] []                   []       []          |  4
-     libc            |       []    []    []       [] []    []       [] |  7
-     m4              |       []          []    []    []             [] |  5
-     make            |       []    []    []       [] []    []          |  6
-     music           |                   []                []          |  2
-     ptx             |       []    []    []          [] [] [] []    [] |  8
-     recode          |    [] []    []    []          []    [] [] [] [] |  9
-     sh-utils        |       []          []          [] [] [] []    [] |  7
-     sharutils       |       []    []    []          []             [] |  5
-     tar             |       []          [] []    [] [] [] [] [] [] [] | 10
-     texinfo         |                   []                            |  1
-     textutils       | []    []    []    []       [] [] [] []       [] |  9
-     wdiff           | []    []    []    []          [] [] []       [] |  8
-                     `-------------------------------------------------'
-       16 languages    cs da de en es fi fr it ja ko nl no pl pt sl sv
-       27 packages      3  2 24  1 17  1 26  2  1 11 20  9 19  7  7 17  167
+     Ready PO files    cs da de en es fi fr it ja ko nl no pl pt ru sl sv
+                     .----------------------------------------------------.
+     bash            |       []          []          []                   |  3
+     bison           |       []          []          []                   |  3
+     clisp           |       [] [] []    []                               |  4
+     cpio            |       []    []    []       [] []    []             |  6
+     diffutils       |       []    []    []                []          [] |  5
+     enscript        |       []    [] [] []          []             []    |  6
+     fileutils       | []    []    []    []       [] []    [] []    [] [] | 10
+     findutils       |       []    []    [] []    [] []    []    []    [] |  9
+     flex            |             []    []       []                   [] |  4
+     gcal            |       []          []          []    []          [] |  5
+     gettext         |    [] []    []    []       [] [] [] [] []    [] [] | 12
+     grep            |       []    []    []       [] [] [] []    [] [] [] | 10
+     hello           |    [] []    []    []       [] [] [] [] []    [] [] | 11
+     id-utils        |       []          []                []             |  3
+     indent          |    [] []                   []       []    []       |  5
+     libc            |       []    []    []       [] []    []          [] |  7
+     m4              |       []          []    []    []          []    [] |  6
+     make            |       []    []    []       [] []    []             |  6
+     music           |                   []                []             |  2
+     ptx             |       []    []    []          [] [] [] []       [] |  8
+     recode          |    [] []    []    []          []    [] []    [] [] |  9
+     sh-utils        |       []    []    []          [] [] [] []       [] |  8
+     sharutils       | []    []    []    []          []                [] |  6
+     tar             | []    []          [] []    [] [] [] [] []    [] [] | 11
+     texinfo         | []    []          []                               |  3
+     textutils       | []    []    []    []       [] [] [] []          [] |  9
+     wdiff           | []    []    []    []          [] [] []          [] |  8
+                     `----------------------------------------------------'
+       17 languages    cs da de en es fi fr it ja ko nl no pl pt ru sl sv
+       27 packages      6  4 25  1 18  1 26  2  1 12 20  9 19  7  4  7 17  179
 
    Some counters in the preceding matrix are higher than the number of
 visible blocks let us expect.  This is because a few extra PO files are
@@ -220,6 +221,6 @@ distributed as such by its maintainer.  There might be an observable
 lag between the mere existence a PO file and its wide availability in a
 distribution.
 
-   If August 1997 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites.
+   If December 1997 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites.
 
index 75016c42f5fb1124b6444349e875b70a00219392..f77a6937cac4f4cb229c2922d4ee6b2cfc6eacbb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+2000-01-08  Lars Gullik Bjønnes  <larsbj@lyx.org>
+
+       * src/bufferlist.C (close): don't call insetUnlock if the buffer
+       does not have a BufferView.
+       (unlockInset): ditto + don't access the_locking_inset if the
+       buffer does not have a BufferView.
+
+       * src/LyXView.C (KeyPressMask_raw_callback): add a XSync in
+       certain circumstances so that we don't continue a keyboard
+       operation long after the key was released. Try f.ex. to load a
+       large document, press PageDown for some seconds and then release
+       it. Before this change the document would contine to scroll for
+       some time, with this change it stops imidiatly.
+
+       * src/support/block.h: don't allocate more space than needed. As
+       long as we don't try to write to the arr[x] in a array_type arr[x]
+       it is perfectly ok. (if you write to it you might segfault).
+       added operator value_type*() so that is possible to pass the array
+       to functions expecting a C-pointer.
+
+       * lib/Makefile.am (dist-hook): don't fail completely if unable to
+       cvs.
+
+       * intl/*: updated to gettext 0.10.35, tried to add our own
+       required modifications. Please verify.
+
+       * po/*: updated to gettext 0.10.35, tried to add our own required
+       modifications. Please verify.
+       
+       * src/support/lstrings.C (tostr): go at fixing the problem with
+       cxx and stringstream. When stringstream is used return
+       oss.str().c_str() so that problems with lyxstring and basic_string
+       are avoided. Note that the best solution would be for cxx to use
+       basic_string all the way, but it is not conformant yet. (it seems)
+
+       * src/lyx_cb.C + other files: moved several global functions to
+       class BufferView, some have been moved to BufferView.[Ch] others
+       are still located in lyx_cb.C. Code changes because of this. (part
+       of "get rid of current_view project".)
+
+       * src/buffer.C + other files: moved several Buffer functions to
+       class BufferView, the functions are still present in buffer.C.
+       Code changes because of this.
+
+       * config/lcmessage.m4: updated to most recent. used when creating
+       acinclude.m4.
+
+       * config/progtest.m4: updated to most recent. used when creating
+       acinclude.m4.
+       
+       * config/gettext.m4: updated to most recent. applied patch for
+       tmplinguas.
+
+       * config/gettext.m4.patch: new file that shows what changes we
+       have done to the local copy of gettext.m4.
+
+       * config/libtool.m4: new file, used in creation of acinclude.m4
+
+       * config/lyxinclude.m4: new file, this is the lyx created m4
+       macros, used in making acinclude.m4.
+       
+       * autogen.sh: GNU m4 discovered as a separate task not as part of
+       the lib/configure creation. 
+       Generate acinlucde from files in config. Actually cat
+       lyxinclude.m4, libtool.m4 and gettext.m4 together. This makes it
+       easier to upgrade .m4 files that really are external.
+
+       * src/Spacing.h: moved using std::istringstream to right after
+       <sstream>. This should fix the problem seen with some compilers.
+
 2000-01-06  Lars Gullik Bjønnes  <larsbj@lyx.org>
 
        * src/lyx_cb.C: began some work to remove the dependency a lot of
index dfa8b9cb328c72b5a0776504f7bda88010ffcc5d..7ff2005daf1637ed7bc741517fa8fb6d5242fa57 100644 (file)
@@ -5,7 +5,7 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure \
 SUBDIRS = intl po src lib
 
 EXTRA_DIST = ANNOUNCE OLD-CHANGES INSTALL.OS2 INSTALL.autoconf README.OS2 \
-       UPGRADING lyx.man \
+       UPGRADING lyx.man acconfig.h \
        config development forms images
 ETAGS_ARGS = --c++
 man_MANS = lyx.1
index c45ad717009eb8c01861b0a91b38f3cb698395a4..1c78ee274b39b0a1a6322c2f90e9e043c0788c2b 100644 (file)
@@ -185,7 +185,7 @@ dnl Check the version of g++
     case $gxx_version in
       2.7*) CXXFLAGS="$lyx_opt";;
       2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti";;
-      2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti";;
+      2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
       *)    CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
     esac
   else
@@ -784,7 +784,6 @@ extern int select ($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func
  AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
 ])
 
-### BEGIN libtool.m4
 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
@@ -1215,9 +1214,6 @@ AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
 
 dnl This is just to silence aclocal about the macro not being used
 ifelse([AC_DISABLE_FAST_INSTALL])dnl
-
-### END libtool.m4
-
 # Macro to add for using GNU gettext.
 # Ulrich Drepper <drepper@cygnus.com>, 1995.
 #
@@ -1447,11 +1443,12 @@ strdup __argz_count __argz_stringify __argz_next])
      else
        AC_MSG_CHECKING(for catalogs to be installed)
        NEW_LINGUAS=
-dnl ============== Fix is here! =======================
+dnl ============== Fix is here! ======================
 dnl Some sh do not like substitution in bounds of for loops
-dnl       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+dnl    for lang in ${LINGUAS=$ALL_LINGUAS}; do
     tmplinguas=${LINGUAS=$ALL_LINGUAS}
     for lang in ${tmplinguas}; do
+dnl ==== end of fix
          case "$ALL_LINGUAS" in
           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
          esac
@@ -1537,3 +1534,69 @@ dnl       for lang in ${LINGUAS=$ALL_LINGUAS}; do
    sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
        < $srcdir/po/POTFILES.in > po/POTFILES
   ])
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 1
+
+AC_DEFUN(AM_LC_MESSAGES,
+  [if test $ac_cv_header_locale_h = yes; then
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      AC_DEFINE(HAVE_LC_MESSAGES)
+    fi
+  fi])
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 1
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN(AM_PATH_PROG_WITH_TEST,
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+       ac_cv_path_$1="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
index ffbf543bcd79f133df393239d0f55be190e8acf5..5ab1e78fc22e749a2c2db420364bbe3f1945a690 100755 (executable)
@@ -4,73 +4,82 @@ ACLOCAL=aclocal
 AUTOHEADER=autoheader
 AUTOMAKE="automake -a -c --foreign"
 AUTOCONF=autoconf
+GNUM4=
+
+echo -n "Locating GNU m4..."
+for prog in $M4 gm4 gnum4 m4 ; do
+  case `$prog --version 2>&1` in
+    *GNU*) ok=yes
+           GNUM4=`type -path $prog`
+          echo "found: $GNUM4"
+          break ;;
+    *) ;;
+  esac
+done
+if test x$ok = xno ; then
+    echo "not found."
+fi
+
+# Generate acinclude.m4
+echo -n "Generate acinclude.m4..."
+rm -rf acinclude.m4
+touch acinclude.m4
+for fil in config/lyxinclude.m4 config/libtool.m4 config/gettext.m4 config/lcmessage.m4 config/progtest.m4 ; do
+    cat $fil >> acinclude.m4
+done
+echo "done."
 
 # Generate the Makefiles and configure files
 if ( aclocal --version ) </dev/null > /dev/null 2>&1; then
-       echo "Building macros."
+       echo -n "Building macros..."
        $ACLOCAL ; (cd lib/reLyX; $ACLOCAL )
+       echo "done."
 else
        echo "aclocal not found -- aborting"
        exit
 fi
 
 if ( autoheader --version ) </dev/null > /dev/null 2>&1; then
-       echo "Building config header template"
+       echo -n "Building config header template..."
        $AUTOHEADER
+       echo "done."
 else
        echo "autoheader not found -- aborting"
        exit
 fi
 
 if ( $AUTOMAKE --version ) </dev/null > /dev/null 2>&1; then
-       echo "Building Makefile templates"
+       echo -n "Building Makefile templates..."
        $AUTOMAKE ; (cd lib/reLyX ; $AUTOMAKE )
+       echo "done."
 else
        echo "automake not found -- aborting"
        exit
 fi
 
 if ( $AUTOCONF --version ) </dev/null > /dev/null 2>&1; then
-       echo "Building configure"
+       echo -n "Building configure..."
        $AUTOCONF ; ( cd lib/reLyX ; $AUTOCONF )
+       echo "done."
        echo 'run "./configure ; make"'
 else
        echo "autoconf not found -- aborting"
        exit
 fi
 
-# Autogenerate lib/configure.m4. We need GNU m4 for that and thus have
-# to try several ones.  
-ok=no
-#for prog in $M4 gm4 gnum4 m4 ; do
-#  case `$prog --help < /dev/null 2>&1 | grep traditional` in
-#    *traditional*) echo "Building lib/configure"
-#                 rm -f lib/configure
-#                 $prog lib/configure.m4 >lib/configure
-#                 chmod a+x lib/configure
-#                 ok=yes
-#                 break ;;
-#    *) ;;
-#  esac
-#done
-# Why not use --version ? (Lgb)
-for prog in $M4 gm4 gnum4 m4 ; do
-  case `$prog --version 2>&1` in
-    *GNU*) echo "Building lib/configure"
-                  rm -f lib/configure
-                  $prog lib/configure.m4 >lib/configure
-                  chmod a+x lib/configure
-                  ok=yes
-                  break ;;
-    *) ;;
-  esac
-done
-if test $ok = no ; then
-    echo "GNU m4 not found -- aborting"
+# Autogenerate lib/configure.m4.
+if test x$GNUM4 != x ; then
+    echo -n "Building lib/configure ..."
+    rm -f lib/configure
+    $GNUM4 lib/configure.m4 > lib/configure
+    chmod a+x lib/configure
+    echo "done."
+else
+    echo "No GNU m4. Impossible to build lib/configure -- aborting"
     exit
 fi
 
-echo "Creating POTFILES.in..."
+echo -n "Creating POTFILES.in..."
 cat <<EOF > tmppot
 #
 # This file is automatically generated by autogen.sh. This command was
index 1ec70cc19e7cbaf69e28374156c61cba220cc94b..e1b5871708010cf0962a293681cd941b915125e3 100755 (executable)
@@ -1,6 +1,7 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
+#   Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -23,6 +24,7 @@
 
 # Written by Per Bothner <bothner@cygnus.com>.
 # The master version of this file is at the FSF in /home/gd/gnu/lib.
+# Please send patches to <autoconf-patches@gnu.org>.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # (but try to keep the structure clean).
 #
 
+# Use $HOST_CC if defined. $CC may point to a cross-compiler
+if test x"$CC_FOR_BUILD" = x; then
+  if test x"$HOST_CC" != x; then
+    CC_FOR_BUILD="$HOST_CC"
+  else
+    if test x"$CC" != x; then
+      CC_FOR_BUILD="$CC"
+    else
+      CC_FOR_BUILD=cc
+    fi
+  fi
+fi
+
+
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 8/24/94.)
 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
@@ -46,7 +62,8 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
 
 # Note: order is significant - the case branches are not exclusive.
 
@@ -59,7 +76,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       cat <<EOF >dummy.s
+       cat <<EOF >$dummy.s
        .globl main
        .ent main
 main:
@@ -76,9 +93,9 @@ main:
        ret \$31,(\$26),1
        .end main
 EOF
-       ${CC-cc} dummy.s -o dummy 2>/dev/null
+       $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
        if test "$?" = 0 ; then
-               ./dummy
+               ./$dummy
                case "$?" in
                        7)
                                UNAME_MACHINE="alpha"
@@ -97,8 +114,14 @@ EOF
                                ;;
                esac
        fi
-       rm -f dummy.s dummy
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
+       rm -f $dummy.s $dummy
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit 0 ;;
+    Alpha\ *:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # Should we change UNAME_MACHINE based on the output of uname instead
+       # of the specific Alpha model?
+       echo alpha-pc-interix
        exit 0 ;;
     21064:Windows_NT:50:3)
        echo alpha-dec-winnt3.5
@@ -133,6 +156,9 @@ EOF
     wgrisc:OpenBSD:*:*)
        echo mipsel-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit 0 ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit 0;;
@@ -142,7 +168,7 @@ EOF
     SR2?01:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
-    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
                echo pyramid-pyramid-sysv3
@@ -150,7 +176,7 @@ EOF
                echo pyramid-pyramid-bsd
        fi
        exit 0 ;;
-    NILE:*:*:dcosx)
+    NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
        exit 0 ;;
     sun4H:SunOS:5.*:*)
@@ -201,6 +227,32 @@ EOF
     atari*:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor 
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
     sun3*:NetBSD:*:*)
        echo m68k-sun-netbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -234,12 +286,16 @@ EOF
     VAX*:ULTRIX*:*:*)
        echo vax-dec-ultrix${UNAME_RELEASE}
        exit 0 ;;
-    2020:CLIX:*:*)
+    2020:CLIX:*:* | 2430:CLIX:*:*)
        echo clipper-intergraph-clix${UNAME_RELEASE}
        exit 0 ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       sed 's/^        //' << EOF >dummy.c
-       int main (argc, argv) int argc; char **argv; {
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
        #if defined (host_mips) && defined (MIPSEB)
        #if defined (SYSTYPE_SYSV)
          printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
@@ -254,10 +310,10 @@ EOF
          exit (-1);
        }
 EOF
-       ${CC-cc} dummy.c -o dummy \
-         && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && rm dummy.c dummy && exit 0
-       rm -f dummy.c dummy
+       $CC_FOR_BUILD $dummy.c -o $dummy \
+         && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+         && rm $dummy.c $dummy && exit 0
+       rm -f $dummy.c $dummy
        echo mips-mips-riscos${UNAME_RELEASE}
        exit 0 ;;
     Night_Hawk:Power_UNIX:*:*)
@@ -275,15 +331,18 @@ EOF
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
-        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
-       if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-            -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
                echo m88k-dg-dgux${UNAME_RELEASE}
-       else
+           else
                echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
        fi
-        else echo i586-dg-dgux${UNAME_RELEASE}
-        fi
        exit 0 ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
@@ -309,7 +368,7 @@ EOF
        exit 0 ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               sed 's/^                //' << EOF >dummy.c
+               sed 's/^                //' << EOF >$dummy.c
                #include <sys/systemcfg.h>
 
                main()
@@ -320,8 +379,8 @@ EOF
                        exit(0);
                        }
 EOF
-               ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
-               rm -f dummy.c dummy
+               $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+               rm -f $dummy.c $dummy
                echo rs6000-ibm-aix3.2.5
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
                echo rs6000-ibm-aix3.2.4
@@ -368,25 +427,25 @@ EOF
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
-              sed 's/^              //' << EOF >dummy.c
+           9000/[678][0-9][0-9])
+              sed 's/^              //' << EOF >$dummy.c
               #include <stdlib.h>
               #include <unistd.h>
-              
+
               int main ()
               {
               #if defined(_SC_KERNEL_BITS)
                   long bits = sysconf(_SC_KERNEL_BITS);
-              #endif 
+              #endif
                   long cpu  = sysconf (_SC_CPU_VERSION);
-              
-                  switch (cpu) 
+
+                  switch (cpu)
                {
                case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
                case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0: 
+               case CPU_PA_RISC2_0:
               #if defined(_SC_KERNEL_BITS)
-                   switch (bits) 
+                   switch (bits)
                        {
                        case 64: puts ("hppa2.0w"); break;
                        case 32: puts ("hppa2.0n"); break;
@@ -394,20 +453,20 @@ EOF
                        } break;
               #else  /* !defined(_SC_KERNEL_BITS) */
                    puts ("hppa2.0"); break;
-              #endif 
+              #endif
                default: puts ("hppa1.0"); break;
                }
                   exit (0);
               }
 EOF
-       (${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy`
-       rm -f dummy.c dummy
+       (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+       rm -f $dummy.c $dummy
        esac
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        exit 0 ;;
     3050*:HI-UX:*:*)
-       sed 's/^        //' << EOF >dummy.c
+       sed 's/^        //' << EOF >$dummy.c
        #include <unistd.h>
        int
        main ()
@@ -432,8 +491,8 @@ EOF
          exit (0);
        }
 EOF
-       ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
-       rm -f dummy.c dummy
+       $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+       rm -f $dummy.c $dummy
        echo unknown-hitachi-hiuxwe2
        exit 0 ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -442,6 +501,9 @@ EOF
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
        exit 0 ;;
+    *9??*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit 0 ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
        echo hppa1.1-hp-osf
        exit 0 ;;
@@ -458,6 +520,9 @@ EOF
     parisc*:Lites*:*:*)
        echo hppa1.1-hp-lites
        exit 0 ;;
+    hppa*:OpenBSD:*:*)
+       echo hppa-unknown-openbsd
+       exit 0 ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
         exit 0 ;;
@@ -490,11 +555,14 @@ EOF
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE}
        exit 0 ;;
+    CRAY*T3E:*:*:*)
+       echo alpha-cray-unicosmk${UNAME_RELEASE}
+       exit 0 ;;
     CRAY-2:*:*:*)
        echo cray2-cray-unicos
         exit 0 ;;
     F300:UNIX_System_V:*:*)
-        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
         echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
         exit 0 ;;
@@ -507,29 +575,47 @@ EOF
     hp300:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit 0 ;;
     sparc*:BSD/OS:*:*)
        echo sparc-unknown-bsdi${UNAME_RELEASE}
        exit 0 ;;
-    i?86:BSD/386:*:* | *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit 0 ;;
     *:FreeBSD:*:*)
+       if test -x /usr/bin/objformat; then
+           if test "elf" = "`/usr/bin/objformat`"; then
+               echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
+               exit 0
+           fi
+       fi
        echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
        exit 0 ;;
     *:NetBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
        exit 0 ;;
     *:OpenBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
        exit 0 ;;
     i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin32
+       echo ${UNAME_MACHINE}-pc-cygwin
        exit 0 ;;
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit 0 ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+       echo i386-pc-interix
+       exit 0 ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit 0 ;;
     p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin32
+       echo powerpcle-unknown-cygwin
        exit 0 ;;
     prep*:SunOS:5.*:*)
        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -538,15 +624,11 @@ EOF
        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit 0 ;;
     *:Linux:*:*)
-       # uname on the ARM produces all sorts of strangeness, and we need to
-       # filter it out.
-       case "$UNAME_MACHINE" in
-         arm* | sa110*)              UNAME_MACHINE="arm" ;;
-       esac
 
        # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us.
-       ld_help_string=`ld --help 2>&1`
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+       ld_help_string=`cd /; ld --help 2>&1`
        ld_supported_emulations=`echo $ld_help_string \
                         | sed -ne '/supported emulations:/!d
                                    s/[         ][      ]*/ /g
@@ -554,16 +636,74 @@ EOF
                                    s/ .*//
                                    p'`
         case "$ld_supported_emulations" in
-         i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
-         i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
-         sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-         elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
+         *ia64)
+               echo "${UNAME_MACHINE}-unknown-linux"
+               exit 0
+               ;;
+         i?86linux)
+               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+               exit 0
+               ;;
+         i?86coff)
+               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+               exit 0
+               ;;
+         sparclinux)
+               echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+               exit 0
+               ;;
+         armlinux)
+               echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+               exit 0
+               ;;
+         elf32arm*)
+               echo "${UNAME_MACHINE}-unknown-linux-gnu"
+               exit 0
+               ;;
+         armelf_linux*)
+               echo "${UNAME_MACHINE}-unknown-linux-gnu"
+               exit 0
+               ;;
+         m68klinux)
+               echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+               exit 0
+               ;;
+         elf32ppc)
+               # Determine Lib Version
+               cat >$dummy.c <<EOF
+#include <features.h>
+#if defined(__GLIBC__)
+extern char __libc_version[];
+extern char __libc_release[];
+#endif
+main(argc, argv)
+     int argc;
+     char *argv[];
+{
+#if defined(__GLIBC__)
+  printf("%s %s\n", __libc_version, __libc_release);
+#else
+  printf("unkown\n");
+#endif
+  return 0;
+}
+EOF
+               LIBC=""
+               $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
+               if test "$?" = 0 ; then
+                       ./$dummy | grep 1\.99 > /dev/null
+                       if test "$?" = 0 ; then
+                               LIBC="libc1"
+                       fi
+               fi      
+               rm -f $dummy.c $dummy
+               echo powerpc-unknown-linux-gnu${LIBC}
+               exit 0
+               ;;
        esac
 
        if test "${UNAME_MACHINE}" = "alpha" ; then
-               sed 's/^        //'  <<EOF >dummy.s
+               sed 's/^        //'  <<EOF >$dummy.s
                .globl main
                .ent main
        main:
@@ -581,9 +721,9 @@ EOF
                .end main
 EOF
                LIBC=""
-               ${CC-cc} dummy.s -o dummy 2>/dev/null
+               $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
                if test "$?" = 0 ; then
-                       ./dummy
+                       ./$dummy
                        case "$?" in
                        7)
                                UNAME_MACHINE="alpha"
@@ -600,22 +740,23 @@ EOF
                        16)
                                UNAME_MACHINE="alphaev6"
                                ;;
-                       esac    
+                       esac
 
-                       objdump --private-headers dummy | \
+                       objdump --private-headers $dummy | \
                          grep ld.so.1 > /dev/null
                        if test "$?" = 0 ; then
                                LIBC="libc1"
                        fi
-               fi      
-               rm -f dummy.s dummy
+               fi
+               rm -f $dummy.s $dummy
                echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
        elif test "${UNAME_MACHINE}" = "mips" ; then
-         cat >dummy.c <<EOF
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
+         cat >$dummy.c <<EOF
+#ifdef __cplusplus
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
 #ifdef __MIPSEB__
   printf ("%s-unknown-linux-gnu\n", argv[1]);
 #endif
@@ -625,8 +766,8 @@ main(argc, argv)
   return 0;
 }
 EOF
-         ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
-         rm -f dummy.c dummy
+         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+         rm -f $dummy.c $dummy
        else
          # Either a pre-BFD a.out linker (linux-gnuoldld)
          # or one that does not give us useful --help.
@@ -645,12 +786,13 @@ EOF
            ;;
          esac
          # Determine whether the default compiler is a.out or elf
-         cat >dummy.c <<EOF
+         cat >$dummy.c <<EOF
 #include <features.h>
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
+#ifdef __cplusplus
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
 #ifdef __ELF__
 # ifdef __GLIBC__
 #  if __GLIBC__ >= 2
@@ -667,8 +809,8 @@ main(argc, argv)
   return 0;
 }
 EOF
-         ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
-         rm -f dummy.c dummy
+         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+         rm -f $dummy.c $dummy
        fi ;;
 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
 # are messed up and put the nodename in both sysname and nodename.
@@ -684,10 +826,20 @@ EOF
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit 0 ;;
     i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+       else
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit 0 ;;
+    i?86:*:5:7*)
+        # Fixed at (any) Pentium or better
+        UNAME_MACHINE=i586
+        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
+           echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
        else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+           echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
        fi
        exit 0 ;;
     i?86:*:3.2:*)
@@ -699,18 +851,15 @@ EOF
                (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
                (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
                        && UNAME_MACHINE=i586
+               (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
                echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
        else
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
-    i?86:UnixWare:*:*)
-       if /bin/uname -X 2>/dev/null >/dev/null ; then
-         (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
-           && UNAME_MACHINE=i586
-       fi
-       echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
-       exit 0 ;;
     pc:*:*:*)
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
@@ -752,7 +901,7 @@ EOF
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit 0 ;;
-    i?86:LynxOS:2.*:*)
+    i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     TSUNAMI:LynxOS:2.*:*)
@@ -764,6 +913,9 @@ EOF
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
        exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
     RM*:SINIX-*:*:*)
        echo mips-sni-sysv4
        exit 0 ;;
@@ -794,7 +946,7 @@ EOF
     news*:NEWS-OS:*:6*)
        echo mips-sony-newsos6
        exit 0 ;;
-    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
                echo mips-nec-sysv${UNAME_RELEASE}
        else
@@ -810,12 +962,27 @@ EOF
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
        echo i586-pc-beos
        exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:QNX:*:4*)
+       echo i386-qnx-qnx${UNAME_VERSION}
+       exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
 
-cat >dummy.c <<EOF
+cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
 # include <sys/types.h>
 # include <sys/utsname.h>
@@ -853,7 +1020,10 @@ main ()
 #endif
   int version;
   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
   exit (0);
 #endif
 
@@ -913,8 +1083,8 @@ main ()
 }
 EOF
 
-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
-rm -f dummy.c dummy
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
+rm -f $dummy.c $dummy
 
 # Apollos put the system type in the environment.
 
index ba26d742ae4066e9a389cfc0097d95795f66099c..28426bb8fa0abac1f35de4b4b587faeff310a936 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
+#   Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
 # can handle that machine.  It does not imply ALL GNU software can.
@@ -98,11 +98,21 @@ case $os in
                os=
                basic_machine=$1
                ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
        -sco5)
-               os=sco3.2v5
+               os=-sco3.2v5
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco4)
@@ -121,6 +131,9 @@ case $os in
                os=-sco3.2v2
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
        -isc)
                os=-isc2.2
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -143,22 +156,33 @@ case $os in
        -psos*)
                os=-psos
                ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
 esac
 
 # Decode aliases for certain CPU-COMPANY combinations.
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
-       tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+       tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
                | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
-               | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \
-               | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
-               | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
-               | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
-               | mipstx39 | mipstx39el | armv[34][lb] \
-               | sparc | sparclet | sparclite | sparc64 | v850)
+               | 580 | i960 | h8300 \
+               | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
+               | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
+               | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
+               | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
+               | mips64orion | mips64orionel | mipstx39 | mipstx39el \
+               | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
+               | mips64vr5000 | miprs64vr5000el | mcore \
+               | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
+               | thumb | d10v | fr30)
                basic_machine=$basic_machine-unknown
                ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
+               ;;
+
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -171,27 +195,45 @@ case $basic_machine in
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
-       vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
+       # FIXME: clean up the formatting here.
+       vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
              | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
              | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
-             | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
-             | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
-             | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
-             | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
+             | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
+             | xmp-* | ymp-* \
+             | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
+             | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
+             | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
+             | clipper-* | orion-* \
              | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
-             | sparc64-* | mips64-* | mipsel-* | armv[34][lb]-*\
-             | mips64el-* | mips64orion-* | mips64orionel-*  \
-             | mipstx39-* | mipstx39el-* \
-             | f301-*)
+             | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
+             | mips64el-* | mips64orion-* | mips64orionel-* \
+             | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
+             | mipstx39-* | mipstx39el-* | mcore-* \
+             | f301-* | armv*-* | t3e-* \
+             | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
+             | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
                basic_machine=m68000-att
                ;;
        3b*)
                basic_machine=we32k-att
                ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
        alliant | fx80)
                basic_machine=fx80-alliant
                ;;
@@ -221,6 +263,10 @@ case $basic_machine in
                basic_machine=m68k-apollo
                os=-sysv
                ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -297,6 +343,10 @@ case $basic_machine in
        encore | umax | mmax)
                basic_machine=ns32k-encore
                ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
        fx2800)
                basic_machine=i860-alliant
                ;;
@@ -315,6 +365,14 @@ case $basic_machine in
                basic_machine=h8300-hitachi
                os=-hms
                ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
        harris)
                basic_machine=m88k-harris
                os=-sysv3
@@ -330,13 +388,30 @@ case $basic_machine in
                basic_machine=m68k-hp
                os=-hpux
                ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
                basic_machine=m68000-hp
                ;;
        hp9k3[2-9][0-9])
                basic_machine=m68k-hp
                ;;
-       hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
                basic_machine=hppa1.1-hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
@@ -345,9 +420,16 @@ case $basic_machine in
        hppa-next)
                os=-nextstep3
                ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
-               os=-mvs
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
        i[34567]86v32)
@@ -366,6 +448,25 @@ case $basic_machine in
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
+       i386-go32 | go32)
+               basic_machine=i386-unknown
+               os=-go32
+               ;;
+       i386-mingw32 | mingw32)
+               basic_machine=i386-unknown
+               os=-mingw32
+               ;;
+       i386-qnx | qnx)
+               basic_machine=i386-qnx
+               ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
@@ -394,6 +495,10 @@ case $basic_machine in
        miniframe)
                basic_machine=m68000-convergent
                ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
        mipsel*-linux*)
                basic_machine=mipsel-unknown
                os=-linux-gnu
@@ -408,10 +513,30 @@ case $basic_machine in
        mips3*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
                ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       msdos)
+               basic_machine=i386-unknown
+               os=-msdos
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
                ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
        news | news700 | news800 | news900)
                basic_machine=m68k-sony
                os=-newsos
@@ -424,6 +549,10 @@ case $basic_machine in
                basic_machine=mips-sony
                os=-newsos
                ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
        next | m*-next )
                basic_machine=m68k-next
                case $os in
@@ -449,9 +578,25 @@ case $basic_machine in
                basic_machine=i960-intel
                os=-nindy
                ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
        np1)
                basic_machine=np1-gould
                ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
        pa-hitachi)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -469,19 +614,19 @@ case $basic_machine in
         pc532 | pc532-*)
                basic_machine=ns32k-pc532
                ;;
-       pentium | p5 | k5 | nexen)
+       pentium | p5 | k5 | k6 | nexen)
                basic_machine=i586-pc
                ;;
-       pentiumpro | p6 | k6 | 6x86)
+       pentiumpro | p6 | 6x86)
                basic_machine=i686-pc
                ;;
        pentiumii | pentium2)
                basic_machine=i786-pc
                ;;
-       pentium-* | p5-* | k5-* | nexen-*)
+       pentium-* | p5-* | k5-* | k6-* | nexen-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
-       pentiumpro-* | p6-* | k6-* | 6x86-*)
+       pentiumpro-* | p6-* | 6x86-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-*)
@@ -505,12 +650,20 @@ case $basic_machine in
        ps2)
                basic_machine=i386-ibm
                ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
        rm[46]00)
                basic_machine=mips-siemens
                ;;
        rtpc | rtpc-*)
                basic_machine=romp-ibm
                ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
        sequent)
                basic_machine=i386-sequent
                ;;
@@ -518,6 +671,10 @@ case $basic_machine in
                basic_machine=sh-hitachi
                os=-hms
                ;;
+       sparclite-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
        sps7)
                basic_machine=m68k-bull
                os=-sysv2
@@ -525,6 +682,13 @@ case $basic_machine in
        spur)
                basic_machine=spur-unknown
                ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -569,6 +733,10 @@ case $basic_machine in
                basic_machine=i386-sequent
                os=-dynix
                ;;
+       t3e)
+               basic_machine=t3e-cray
+               os=-unicos
+               ;;
        tx39)
                basic_machine=mipstx39-unknown
                ;;
@@ -586,6 +754,10 @@ case $basic_machine in
                basic_machine=a29k-nyu
                os=-sym1
                ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
        vaxv)
                basic_machine=vax-dec
                os=-sysv
@@ -609,6 +781,14 @@ case $basic_machine in
                basic_machine=a29k-wrs
                os=-vxworks
                ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
        xmp)
                basic_machine=xmp-cray
                os=-unicos
@@ -616,6 +796,10 @@ case $basic_machine in
         xps | xps100)
                basic_machine=xps100-honeywell
                ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
        none)
                basic_machine=none-none
                os=-none
@@ -623,6 +807,15 @@ case $basic_machine in
 
 # Here we handle the default manufacturer of certain CPU types.  It is in
 # some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
        mips)
                if [ x$os = x-linux-gnu ]; then
                        basic_machine=mips-unknown
@@ -645,7 +838,7 @@ case $basic_machine in
        we32k)
                basic_machine=we32k-att
                ;;
-       sparc)
+       sparc | sparcv9)
                basic_machine=sparc-sun
                ;;
         cydra)
@@ -657,6 +850,16 @@ case $basic_machine in
        orion105)
                basic_machine=clipper-highlevel
                ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       c4x*)
+               basic_machine=c4x-none
+               os=-coff
+               ;;
        *)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                exit 1
@@ -710,13 +913,21 @@ case $os in
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos*)
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+             | -macos* | -mpw* | -magic* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
        -linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
@@ -726,6 +937,9 @@ case $os in
        -sunos6*)
                os=`echo $os | sed -e 's|sunos6|solaris3|'`
                ;;
+       -opened*)
+               os=-openedition
+               ;;
        -osfrose*)
                os=-osfrose
                ;;
@@ -741,6 +955,9 @@ case $os in
        -acis*)
                os=-aos
                ;;
+       -386bsd)
+               os=-bsd
+               ;;
        -ctix* | -uts*)
                os=-sysv
                ;;
@@ -760,6 +977,9 @@ case $os in
        -oss*)
                os=-sysv3
                ;;
+        -qnx)
+               os=-qnx4
+               ;;
        -svr4)
                os=-sysv4
                ;;
@@ -772,9 +992,18 @@ case $os in
        # This must come after -sysvr4.
        -sysv*)
                ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
        -xenix)
                os=-xenix
                ;;
+        -*mint | -*MiNT)
+               os=-mint
+               ;;
        -none)
                ;;
        *)
@@ -800,6 +1029,9 @@ case $basic_machine in
        *-acorn)
                os=-riscix1.2
                ;;
+       arm*-rebel)
+               os=-linux
+               ;;
        arm*-semi)
                os=-aout
                ;;
@@ -821,6 +1053,15 @@ case $basic_machine in
                # default.
                # os=-sunos4
                ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
                os=-sysv3
                ;;
@@ -833,6 +1074,15 @@ case $basic_machine in
        *-ibm)
                os=-aix
                ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
        *-hp)
                os=-hpux
                ;;
@@ -896,6 +1146,18 @@ case $basic_machine in
        f301-fujitsu)
                os=-uxpv
                ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
        *)
                os=-none
                ;;
@@ -917,9 +1179,15 @@ case $basic_machine in
                        -aix*)
                                vendor=ibm
                                ;;
+                       -beos*)
+                               vendor=be
+                               ;;
                        -hpux*)
                                vendor=hp
                                ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
                        -hiux*)
                                vendor=hitachi
                                ;;
@@ -935,7 +1203,7 @@ case $basic_machine in
                        -genix*)
                                vendor=ns
                                ;;
-                       -mvs*)
+                       -mvs* | -opened*)
                                vendor=ibm
                                ;;
                        -ptx*)
@@ -947,6 +1215,15 @@ case $basic_machine in
                        -aux*)
                                vendor=apple
                                ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -*MiNT)
+                               vendor=atari
+                               ;;
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                ;;
index 64f2e8e74ae88d98a0bd3c7f2c0cab5ded5c859f..078443463477ffa3ee574dac2868aaa71499ba2a 100644 (file)
@@ -1,7 +1,12 @@
 # Macro to add for using GNU gettext.
 # Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
 
-# serial 3
+# serial 5
 
 AC_DEFUN(AM_WITH_NLS,
   [AC_MSG_CHECKING([whether NLS is requested])
@@ -41,12 +46,12 @@ AC_DEFUN(AM_WITH_NLS,
 
           if test "$gt_cv_func_gettext_libc" != "yes"; then
             AC_CHECK_LIB(intl, bindtextdomain,
-              [LIBS="-lintl $LIBS"
-               AC_CACHE_CHECK([for gettext in libintl],
+              [AC_CACHE_CHECK([for gettext in libintl],
                 gt_cv_func_gettext_libintl,
-                [AC_TRY_LINK([], [return (int) gettext ("")],
-                gt_cv_func_gettext_libintl=yes,
-                gt_cv_func_gettext_libintl=no)])])
+                [AC_CHECK_LIB(intl, gettext,
+                 gt_cv_func_gettext_libintl=yes,
+                 gt_cv_func_gettext_libintl=no)],
+                gt_cv_func_gettext_libintl=no)])
           fi
 
           if test "$gt_cv_func_gettext_libc" = "yes" \
@@ -140,7 +145,7 @@ AC_DEFUN(AM_WITH_NLS,
          : ;
        else
          AC_MSG_RESULT(
-           [found xgettext programs is not GNU xgettext; ignore it])
+           [found xgettext program is not GNU xgettext; ignore it])
          XGETTEXT=":"
        fi
       fi
@@ -152,6 +157,12 @@ AC_DEFUN(AM_WITH_NLS,
       nls_cv_header_intl=intl/libintl.h
       nls_cv_header_libgt=intl/libgettext.h
     fi
+    AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
+    AC_OUTPUT_COMMANDS(
+     [case "$CONFIG_FILES" in *po/Makefile.in*)
+        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+      esac])
+
 
     # If this is used in GNU gettext we have to set USE_NLS to `yes'
     # because some of the sources are only built for this goal.
@@ -196,9 +207,9 @@ AC_DEFUN(AM_GNU_GETTEXT,
    AC_REQUIRE([AC_FUNC_MMAP])dnl
 
    AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h values.h sys/param.h])
+unistd.h sys/param.h])
    AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-__argz_count __argz_stringify __argz_next])
+strdup __argz_count __argz_stringify __argz_next])
 
    if test "${ac_cv_func_stpcpy+set}" != "set"; then
      AC_CHECK_FUNCS(stpcpy)
@@ -216,7 +227,12 @@ __argz_count __argz_stringify __argz_next])
      else
        AC_MSG_CHECKING(for catalogs to be installed)
        NEW_LINGUAS=
-       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+dnl ============== Fix is here! ======================
+dnl Some sh do not like substitution in bounds of for loops
+dnl    for lang in ${LINGUAS=$ALL_LINGUAS}; do
+    tmplinguas=${LINGUAS=$ALL_LINGUAS}
+    for lang in ${tmplinguas}; do
+dnl ==== end of fix
          case "$ALL_LINGUAS" in
           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
          esac
@@ -231,6 +247,17 @@ __argz_count __argz_stringify __argz_next])
      fi
    fi
 
+   dnl The reference to <locale.h> in the installed <libintl.h> file
+   dnl must be resolved because we cannot expect the users of this
+   dnl to define HAVE_LOCALE_H.
+   if test $ac_cv_header_locale_h = yes; then
+     INCLUDE_LOCALE_H="#include <locale.h>"
+   else
+     INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>.  Take care yourself.  */"
+   fi
+   AC_SUBST(INCLUDE_LOCALE_H)
+
    dnl Determine which catalog format we have (if any is needed)
    dnl For now we know about two different formats:
    dnl   Linux libc-5 and the normal X/Open format
index d94fc3317f5af185abc24d9ecf30d534b8390392..e31bb5334b0930bbc5bff832b404044215388184 100644 (file)
@@ -1,5 +1,10 @@
 # Check whether LC_MESSAGES is available in <locale.h>.
 # Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
 
 # serial 1
 
index de0026d8a78682c791d379084a899eb5ab18a4b3..a01334f9212c3a8e6a99db2b4d21f3380ccbfe80 100755 (executable)
@@ -1758,11 +1758,7 @@ reload_flag=
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
 # PORTME Some linkers may need a different reload flag.
-if [ x$with_gnu_ld = xyes ] ; then
-reload_flag='-Ur'
-else
 reload_flag='-r'
-fi
 echo "$ac_t$reload_flag" 1>&6
 test -n "$reload_flag" && reload_flag=" $reload_flag"
 
index 13a85fa08c509cf5782f637323875b23998809c3..2482d4a9bfde61980eab6bf9f81538b62693a7b7 100644 (file)
@@ -1,5 +1,10 @@
 # Search path for a program which passes the given test.
 # Ulrich Drepper <drepper@cygnus.com>, 1996.
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
 
 # serial 1
 
index 1caddd80b983fd46d6f7ce538fc22bb50402ba62..335a5d73131cf00217d05e91c6b119a1876c0529 100644 (file)
@@ -44,4 +44,5 @@ install-data-local: libinstalldirs
 dist-hook:
        cd ${distdir} ; rm -rf `find . -name \*CVS\*` ; \
        rm -rf doc/BUGS.lyx ; \
-       cvs -Q export -r HEAD -d doc lyxdoc
+       { cvs -Q export -r HEAD -d doc lyxdoc || \
+         echo "WARNING: Unable to get LyX Documentation from CVS!" ; true ; }
index 3b778981937a085bd9cde3cc9bb70f703f429077..cb33dc4999e2fbc2b0643072ee7ef12ff1e4ddf1 100644 (file)
@@ -1,19 +1,10 @@
 # Makefile for program source directory in GNU NLS utilities package.
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 #
-# 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 2, 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# This file file be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
@@ -48,7 +39,7 @@ DEFS = @DEFS@
 CFLAGS = @CFLAGS@
 CPPFLAGS = @CPPFLAGS@
 
-INCLUDES = -I../src -I$(top_srcdir)/intl
+INCLUDES = -I.. -I$(top_srcdir)/intl
 
 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 
@@ -91,18 +82,19 @@ INSTOBJEXT = @INSTOBJEXT@
 
 all: all-@USE_NLS@
 
-all-yes: $(srcdir)/cat-id-tbl.c $(CATALOGS)
+all-yes: cat-id-tbl.c $(CATALOGS)
 all-no:
 
 $(srcdir)/$(PACKAGE).pot: $(POTFILES)
        $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
          --add-comments --keyword=_ --keyword=N_ \
-         --files-from=$(srcdir)/POTFILES.in
-       rm -f $(srcdir)/$(PACKAGE).pot
-       mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
+         --files-from=$(srcdir)/POTFILES.in \
+       && test ! -f $(PACKAGE).po \
+          || ( rm -f $(srcdir)/$(PACKAGE).pot \
+               && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
 
-$(srcdir)/cat-id-tbl.c: $(srcdir)/stamp-cat-id; @:
-$(srcdir)/stamp-cat-id: $(srcdir)/$(PACKAGE).pot
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
        rm -f cat-id-tbl.tmp
        sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
                | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
@@ -121,10 +113,10 @@ install-exec:
 install-data: install-data-@USE_NLS@
 install-data-no: all
 install-data-yes: all
-       if test -r $(MKINSTALLDIRS); then \
+       if test -r "$(MKINSTALLDIRS)"; then \
          $(MKINSTALLDIRS) $(datadir); \
        else \
-         $(top_srcdir)/mkinstalldirs $(datadir); \
+         $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
        fi
        @catalogs='$(CATALOGS)'; \
        for cat in $$catalogs; do \
@@ -135,10 +127,10 @@ install-data-yes: all
          esac; \
          lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
          dir=$$destdir/$$lang/LC_MESSAGES; \
-         if test -r $(MKINSTALLDIRS); then \
+         if test -r "$(MKINSTALLDIRS)"; then \
            $(MKINSTALLDIRS) $$dir; \
          else \
-           $(top_srcdir)/mkinstalldirs $$dir; \
+           $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
          fi; \
          if test -r $$cat; then \
            $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
@@ -163,10 +155,10 @@ install-data-yes: all
          fi; \
        done
        if test "$(PACKAGE)" = "gettext"; then \
-         if test -r $(MKINSTALLDIRS); then \
+         if test -r "$(MKINSTALLDIRS)"; then \
            $(MKINSTALLDIRS) $(gettextsrcdir); \
          else \
-           $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+           $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
          fi; \
          $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
                          $(gettextsrcdir)/Makefile.in.in; \
index 9adc7b2f30060f3e8ec7247c1f00c42103893c60..7daf167b0fad512978e04b1a690f4c4e5aec8c2e 100644 (file)
@@ -54,8 +54,7 @@ extern void SetXtermCursor(Window win);
 extern bool input_prohibited;
 extern bool selection_possible;
 extern char ascii_type;
-extern int UnlockInset(UpdatableInset * inset);
-extern void ToggleFloat();
+//extern int UnlockInset(UpdatableInset * inset);
 extern void MenuPasteSelection(char at);
 extern InsetUpdateStruct * InsetUpdateList;
 extern void UpdateInsetUpdateList();
@@ -1047,7 +1046,7 @@ int BufferView::WorkAreaButtonPress(FL_OBJECT * ob, Window,
                                                         button);
                                return 0;
                        } else {
-                               UnlockInset(the_locking_inset);
+                               unlockInset(the_locking_inset);
                        }
                }
 
@@ -1290,7 +1289,7 @@ int BufferView::WorkAreaButtonRelease(FL_OBJECT * ob, Window ,
                        }
                }
                if (hit == true) {
-                       ToggleFloat();
+                       toggleFloat();
                        selection_possible = false;
                        return 0;
                }
@@ -1317,7 +1316,7 @@ int BufferView::WorkAreaButtonRelease(FL_OBJECT * ob, Window ,
                    && y + screen_first < text->cursor.y -
                    text->cursor.row->baseline
                    + font.maxAscent() * 1.2 + font.maxDescent() * 1.2) {
-                       ToggleFloat();
+                       toggleFloat();
                        selection_possible = false;
                        return 0;
                }
index 1f50cb981271a761f2982a760f032a4197e68a7b..1c7c180ee737f5177c57d80b237ac917f63974ac 100644 (file)
@@ -19,7 +19,7 @@
 #include FORMS_H_LOCATION
 #include "BackStack.h"
 #include "lyxtext.h"
-
+#include "LaTeX.h"
 
 class LyXView;
 class Buffer;
@@ -96,6 +96,83 @@ public:
        void insetSleep();
        ///
        void insetWakeup();
+       ///
+       void replaceWord(string const & replacestring);
+       ///
+       void endOfSpellCheck();
+       ///
+       void selectLastWord();
+       ///
+       char * nextWord(float & value);
+       ///
+       void insertCorrectQuote();
+       ///
+       void gotoNote();
+       ///
+       bool gotoLabel(string const & label);
+       ///
+       void paste();
+       ///
+       void cut();
+       ///
+       void copy();
+       ///
+       void pasteEnvironment();
+       ///
+       void copyEnvironment();
+       ///
+       void hfill();
+       ///
+       void protectedBlank();
+       ///
+       void newline();
+       ///
+       void menuSeparator();
+       ///
+       void endOfSentenceDot();
+       ///
+       void ldots();
+       ///
+       void hyphenationPoint();
+       ///
+       void menuUndo();
+       ///
+       void menuRedo();
+       ///
+       void toggleFloat();
+       ///
+       void openStuff();
+       ///
+       void insertNote();
+       ///
+       void allFloats(char flag, char figmar);
+       /// removes all autodeletable insets
+       bool removeAutoInsets();
+       ///
+       void insertErrors(TeXErrors & terr);
+       ///
+       void setCursorFromRow(int row);
+       /** Insert an inset into the buffer
+           Insert inset into buffer, placing it in a layout of lout,
+           if no_table make sure that it doesn't end up in a table. */
+       void insertInset(Inset * inset, string const & lout = string(),
+                        bool no_table = false);
+       /// open and lock an updatable inset
+       void open_new_inset(UpdatableInset * new_inset);
+       /// Inserts a lyx file at cursor position. Returns false if it fails.
+       bool insertLyXFile(string const & file);
+       ///
+       int lockInset(UpdatableInset * inset);
+       ///
+       void showLockedInsetCursor(long x, long y, int asc, int desc);
+       ///
+       void hideLockedInsetCursor(long x, long y, int asc, int desc);
+       ///
+       void fitLockedInsetCursor(long x, long y, int asc, int desc);
+       ///
+       int unlockInset(UpdatableInset * inset);
+       ///
+       void lockedInsetStoreUndo(Undo::undo_kind kind);
 private:
        /// Update pixmap of screen
        void updateScreen();
index 129aec0e009ac05626c7908c5713cfcadfe2a83d..148ff63ddabcd97d8c02116f1ba6309445894824 100644 (file)
@@ -15,6 +15,9 @@
 #pragma implementation
 #endif
 
+#include <sys/time.h>
+#include <unistd.h>
+
 #include "LyXView.h"
 #include "lyx_main.h"
 #include "lyxlookup.h"
@@ -334,14 +337,54 @@ int LyXView::KeyPressMask_raw_callback(FL_FORM * fl, void * xev)
        LyXView * view = static_cast<LyXView*>(fl->u_vdata);
        int retval = 0;  // 0 means XForms should have a look at this event
 
+#define USE_XSYNC 1
+#ifdef USE_XSYNC
+       XKeyEvent * xke = static_cast<XKeyEvent*>(xev);
+       static Time last_time_pressed = 0;
+       static Time last_time_released = 0;
+       static unsigned int last_key_pressed = 0;
+       static unsigned int last_key_released = 0;
+       static unsigned int last_state_pressed = 0;
+       static unsigned int last_state_released = 0;
+#endif
        // funny. Even though the raw_callback is registered with KeyPressMask,
        // also KeyRelease-events are passed through:-(
        // [It seems that XForms puts them in pairs... (JMarc)]
        if (static_cast<XEvent*>(xev)->type == KeyPress
            && view->bufferview->getWorkArea()->focus
-           && view->bufferview->getWorkArea()->active)
+           && view->bufferview->getWorkArea()->active) {
+#ifdef USE_XSYNC
+               last_time_pressed = xke->time;
+               last_key_pressed = xke->keycode;
+               last_state_pressed = xke->state;
+#endif
                retval = view->getLyXFunc()
                        ->processKeyEvent(static_cast<XEvent*>(xev));
+       }
+#ifdef USE_XSYNC
+       else if (static_cast<XEvent*>(xev)->type == KeyRelease
+                  && view->bufferview->getWorkArea()->focus
+                  && view->bufferview->getWorkArea()->active) {
+               last_time_released = xke->time;
+               last_key_released = xke->keycode;
+               last_state_released = xke->state;
+       }
+
+       if (last_key_released == last_key_pressed
+           && last_state_released == last_state_pressed
+           && last_time_released == last_time_pressed) {
+               // When the diff between last_time_released and
+               // last_time_pressed is 0, that sinifies an autoreapeat
+               // at least on my system. It like some feedback from
+               // others, especially from user running LyX remote.
+               //lyxerr << "Syncing - purging X events." << endl;
+               XSync(fl_get_display(), 1);
+               // This purge make f.ex. scrolling stop imidiatly when
+               // releaseing the PageDown button. The question is if this
+               // purging of XEvents can cause any harm...after some testing
+               // I can see no problems, but I'd like other reports too.
+       }
+#endif
        return retval;
 }
 
index 56b4c2fd730ac240cd0189a0391bf30a4cb32622..4ee1b284c075516ba672fdbc406b947af02f46a5 100644 (file)
 
 #ifdef HAVE_SSTREAM
 #include <sstream>
+using std::istringstream;
 #else
 #include <strstream>
 #endif
-using std::istringstream;
 
 #include "support/LOstream.h"
 
index ca873ba8907b00e0d58475cddd666af5d986125f..e0953cf145bdde710a6fad6f78f0acb7232a5fe5 100644 (file)
@@ -200,9 +200,8 @@ void Buffer::fileName(string const & newfile)
 }
 
 
-// candidate for move to BufferView
 // Inserts a file into current document
-bool Buffer::insertLyXFile(string const & filen)
+bool BufferView::insertLyXFile(string const & filen)
        //
        // (c) CHT Software Service GmbH
        // Uwe C. Schroeder
@@ -225,7 +224,7 @@ bool Buffer::insertLyXFile(string const & filen)
                return false;
        }
        
-       users->beforeChange();
+       beforeChange();
 
        ifstream ifs(fname.c_str());
        if (!ifs) {
@@ -243,10 +242,10 @@ bool Buffer::insertLyXFile(string const & filen)
 
        if (c == '#') {
                lyxerr.debug() << "Will insert file with header" << endl;
-               res = readFile(lex, users->text->cursor.par);
+               res = buffer()->readFile(lex, text->cursor.par);
        } else {
                lyxerr.debug() << "Will insert file without header" << endl;
-               res = readLyXformat2(lex, users->text->cursor.par);
+               res = buffer()->readLyXformat2(lex, text->cursor.par);
        }
 
        resize();
@@ -2108,14 +2107,6 @@ bool Buffer::isSGML() const
 void Buffer::sgmlOpenTag(ostream & os, int depth,
                         string const & latexname) const
 {
-#if 0
-       static char const * space[] = {
-               " ","  ", "   ", "    ", "     ", "      ",
-               "       ",
-               "        ", "         ", "          ",
-               "          "};
-       os << space[depth] << "<" << latexname << ">\n";
-#endif
        os << string(depth, ' ') << "<" << latexname << ">\n";
 }
 
@@ -2123,13 +2114,6 @@ void Buffer::sgmlOpenTag(ostream & os, int depth,
 void Buffer::sgmlCloseTag(ostream & os, int depth,
                          string const & latexname) const
 {
-#if 0
-       static char * space[] = {" ", "  ", "   ", "    ", "     ",
-                                "      ", "       ", "        ",
-                                "         ", "          ", "          "};
-
-       os << space[depth] << "</" << latexname << ">\n";
-#endif
        os << string(depth, ' ') << "</" << latexname << ">\n";
 }
 
@@ -2196,13 +2180,13 @@ void Buffer::makeLinuxDocFile(string const & fname, int column)
                        }
                }
 
-               /* environment tag closing */
+               // environment tag closing
                for( ; depth > par->depth; --depth) {
                        sgmlCloseTag(ofs, depth, environment_stack[depth]);
                        environment_stack[depth].clear();
                }
 
-               /* write opening SGML tags */
+               // write opening SGML tags
                switch(style.latextype) {
                case LATEX_PARAGRAPH:
                        if(depth == par->depth 
@@ -3122,12 +3106,11 @@ void Buffer::SimpleDocBookOnePar(string & file, string & extra,
 }
 
 
-// candidate for move to BufferView
-bool Buffer::removeAutoInsets()
+bool BufferView::removeAutoInsets()
 {
-       LyXParagraph * par = paragraph;
+       LyXParagraph * par = buffer()->paragraph;
 
-       LyXCursor cursor = users->text->cursor;
+       LyXCursor cursor = text->cursor;
        LyXCursor tmpcursor = cursor;
        cursor.par = tmpcursor.par->ParFromPos(tmpcursor.pos);
        cursor.pos = tmpcursor.par->PositionInParFromPos(tmpcursor.pos);
@@ -3137,19 +3120,20 @@ bool Buffer::removeAutoInsets()
                if (par->AutoDeleteInsets()){
                        a = true;
                        if (par->footnoteflag != LyXParagraph::CLOSED_FOOTNOTE){
-                               /* this is possible now, since SetCursor takes
-                                  care about footnotes */
-                               users->text->SetCursorIntern(par, 0);
-                               users->text->RedoParagraphs(users->text->cursor, users->text->cursor.par->Next());
-                               users->text->FullRebreak();
+                               // this is possible now, since SetCursor takes
+                               // care about footnotes
+                               text->SetCursorIntern(par, 0);
+                               text->RedoParagraphs(text->cursor,
+                                                    text->cursor.par->Next());
+                               text->FullRebreak();
                        }
                }
                par = par->next;
        }
-       /* avoid forbidden cursor positions caused by error removing */ 
+       // avoid forbidden cursor positions caused by error removing
        if (cursor.pos > cursor.par->Last())
                cursor.pos = cursor.par->Last();
-       users->text->SetCursorIntern(cursor.par, cursor.pos);
+       text->SetCursorIntern(cursor.par, cursor.pos);
 
        return a;
 }
@@ -3175,7 +3159,7 @@ int Buffer::runLaTeX()
        users->owner()->getMiniBuffer()->Set(_("Running LaTeX..."));   
 
        // Remove all error insets
-       bool a = removeAutoInsets();
+       bool a = users->removeAutoInsets();
 
        // Always generate the LaTeX file
        makeLaTeXFile(name, org_path, false);
@@ -3194,7 +3178,7 @@ int Buffer::runLaTeX()
        } else if ((res & LaTeX::ERRORS)) {
                users->owner()->getMiniBuffer()->Set(_("Done"));
                // Insert all errors as errors boxes
-               insertErrors(terr);
+               users->insertErrors(terr);
                
                // Dvi should also be kept dirty if the latex run
                // ends up with errors. However it should be possible
@@ -3241,7 +3225,7 @@ int Buffer::runLiterate()
        users->owner()->getMiniBuffer()->Set(_("Running Literate..."));   
 
        // Remove all error insets
-       bool a = removeAutoInsets();
+       bool a = users->removeAutoInsets();
 
        // generate the Literate file if necessary
        if (!isDviClean() || a) {
@@ -3263,7 +3247,7 @@ int Buffer::runLiterate()
        } else if ((res & Literate::ERRORS)) {
                users->owner()->getMiniBuffer()->Set(_("Done"));
                // Insert all errors as errors boxes
-               insertErrors(terr);
+               users->insertErrors(terr);
                
                // Dvi should also be kept dirty if the latex run
                // ends up with errors. However it should be possible
@@ -3310,7 +3294,7 @@ int Buffer::buildProgram()
         users->owner()->getMiniBuffer()->Set(_("Building Program..."));   
  
         // Remove all error insets
-        bool a = removeAutoInsets();
+        bool a = users->removeAutoInsets();
  
         // generate the LaTeX file if necessary
         if (!isNwClean() || a) {
@@ -3332,7 +3316,7 @@ int Buffer::buildProgram()
         } else if ((res & Literate::ERRORS)) {
                 users->owner()->getMiniBuffer()->Set(_("Done"));
                 // Insert all errors as errors boxes
-                insertErrors(terr);
+               users->insertErrors(terr);
                 
                 // Literate files should also be kept dirty if the literate 
                 // command run ends up with errors.
@@ -3377,7 +3361,7 @@ int Buffer::runChktex()
        users->owner()->getMiniBuffer()->Set(_("Running chktex..."));
 
        // Remove all error insets
-       bool a = removeAutoInsets();
+       bool a = users->removeAutoInsets();
 
        // Generate the LaTeX file if neccessary
        if (!isDviClean() || a) {
@@ -3394,7 +3378,7 @@ int Buffer::runChktex()
                           _("Could not run with file:"), name);
        } else if (res > 0) {
                // Insert all errors as errors boxes
-               insertErrors(terr);
+               users->insertErrors(terr);
        }
 
        // if we removed error insets before we ran chktex or if we inserted
@@ -3410,18 +3394,14 @@ int Buffer::runChktex()
 }
 
 
-extern void AllFloats(char, char);
-
-
-// candidate for move to BufferView
-void Buffer::insertErrors(TeXErrors & terr)
+void BufferView::insertErrors(TeXErrors & terr)
 {
        // Save the cursor position
-       LyXCursor cursor = users->text->cursor;
+       LyXCursor cursor = text->cursor;
 
        // This is drastic, but it's the only fix, I could find. (Asger)
-       AllFloats(1, 0);
-       AllFloats(1, 1);
+       allFloats(1, 0);
+       allFloats(1, 1);
 
        for (TeXErrors::Errors::const_iterator cit = terr.begin();
             cit != terr.end();
@@ -3435,47 +3415,46 @@ void Buffer::insertErrors(TeXErrors & terr)
                int tmpid = -1; 
                int tmppos = -1;
 
-               texrow.getIdFromRow(errorrow, tmpid, tmppos);
+               buffer()->texrow.getIdFromRow(errorrow, tmpid, tmppos);
 
                LyXParagraph * texrowpar = 0;
 
                if (tmpid == -1) {
-                       texrowpar = users->text->FirstParagraph();
+                       texrowpar = text->FirstParagraph();
                        tmppos = 0;
                } else {
-                       texrowpar = users->text->GetParFromID(tmpid);
+                       texrowpar = text->GetParFromID(tmpid);
                }
 
                if (texrowpar == 0)
                        continue;
 
                InsetError * new_inset = new InsetError(msgtxt);
-               users->text->SetCursorIntern(texrowpar, tmppos);
-               users->text->InsertInset(new_inset);
-               users->text->FullRebreak();
+               text->SetCursorIntern(texrowpar, tmppos);
+               text->InsertInset(new_inset);
+               text->FullRebreak();
        }
        // Restore the cursor position
-       users->text->SetCursorIntern(cursor.par, cursor.pos);
+       text->SetCursorIntern(cursor.par, cursor.pos);
 }
 
 
-// candidate for move to BufferView
-void Buffer::setCursorFromRow (int row)
+void BufferView::setCursorFromRow(int row)
 {
        int tmpid = -1; 
        int tmppos = -1;
 
-       texrow.getIdFromRow(row, tmpid, tmppos);
+       buffer()->texrow.getIdFromRow(row, tmpid, tmppos);
 
        LyXParagraph * texrowpar;
 
        if (tmpid == -1) {
-               texrowpar = users->text->FirstParagraph();
+               texrowpar = text->FirstParagraph();
                tmppos = 0;
        } else {
-               texrowpar = users->text->GetParFromID(tmpid);
+               texrowpar = text->GetParFromID(tmpid);
        }
-       users->text->SetCursor(texrowpar, tmppos);
+       text->SetCursor(texrowpar, tmppos);
 }
 
 
@@ -3738,74 +3717,72 @@ void Buffer::setOldPaperStuff()
 #endif
 
 
-// candidate for move to BufferView
-void Buffer::insertInset(Inset * inset, string const & lout,
+void BufferView::insertInset(Inset * inset, string const & lout,
                         bool no_table)
 {
        // check for table/list in tables
-       if (no_table && users->text->cursor.par->table){
+       if (no_table && text->cursor.par->table){
                WriteAlert(_("Impossible Operation!"),
                           _("Cannot insert table/list in table."),
                           _("Sorry."));
                return;
        }
        // not quite sure if we want this...
-       users->text->SetCursorParUndo();
-       users->text->FreezeUndo();
+       text->SetCursorParUndo();
+       text->FreezeUndo();
        
-       users->beforeChange();
+       beforeChange();
        if (!lout.empty()) {
-               users->update(-2);
-               users->text->BreakParagraph();
-               users->update(-1);
+               update(-2);
+               text->BreakParagraph();
+               update(-1);
                
-               if (users->text->cursor.par->Last()) {
-                       users->text->CursorLeft();
+               if (text->cursor.par->Last()) {
+                       text->CursorLeft();
                        
-                       users->text->BreakParagraph();
-                       users->update(-1);
+                       text->BreakParagraph();
+                       update(-1);
                }
 
-               int lay = textclasslist.NumberOfLayout(params.textclass,
+               int lay = textclasslist.NumberOfLayout(buffer()->params.textclass,
                                                       lout).second;
                if (lay == -1) // layout not found
                        // use default layout "Standard" (0)
                        lay = 0;
                
-               users->text->SetLayout(lay);
+               text->SetLayout(lay);
                
-               users->text->SetParagraph(0, 0,
+               text->SetParagraph(0, 0,
                                   0, 0,
                                   VSpace(VSpace::NONE), VSpace(VSpace::NONE),
                                   LYX_ALIGN_LAYOUT, 
                                   string(),
                                   0);
-               users->update(-1);
+               update(-1);
                
-               users->text->current_font.setLatex(LyXFont::OFF);
+               text->current_font.setLatex(LyXFont::OFF);
        }
        
-       users->text->InsertInset(inset);
-       users->update(-1);
+       text->InsertInset(inset);
+       update(-1);
 
-       users->text->UnFreezeUndo();    
+       text->UnFreezeUndo();   
 }
 
 
 // Open and lock an updatable inset
-// candidate for move to BufferView
-void Buffer::open_new_inset(UpdatableInset * new_inset)
+void BufferView::open_new_inset(UpdatableInset * new_inset)
 {
-       users->beforeChange();
-       users->text->FinishUndo();
+       beforeChange();
+       text->FinishUndo();
        insertInset(new_inset);
-       users->text->CursorLeft();
-       users->update(1);
+       text->CursorLeft();
+       update(1);
        new_inset->Edit(0, 0);
 }
 
 
-/* This function should be in Buffer because it's a buffer's property (ale) */
+// This function should be in Buffer because it's a buffer's property (ale)
 string Buffer::getIncludeonlyList(char delim)
 {
        string lst;
@@ -3834,7 +3811,7 @@ string Buffer::getIncludeonlyList(char delim)
 }
 
 
-/* This is also a buffer property (ale) */ 
+// This is also a buffer property (ale)
 string Buffer::getReferenceList(char delim)
 {
        /// if this is a child document and the parent is already loaded
@@ -3866,7 +3843,7 @@ string Buffer::getReferenceList(char delim)
 }
 
 
-/* This is also a buffer property (ale) */ 
+// This is also a buffer property (ale)
 string Buffer::getBibkeyList(char delim)
 {
        /// if this is a child document and the parent is already loaded
@@ -3920,16 +3897,15 @@ string Buffer::getBibkeyList(char delim)
 }
 
 
-// candidate for move to BufferView
 /* This is also a buffer property (ale) */
 // Not so sure about that. a goto Label function can not be buffer local, just
 // think how this will work in a multiwindo/buffer environment, all the
 // cursors in all the views showing this buffer will move. (Lgb)
 // OK, then no cursor action should be allowed in buffer. (ale)
-bool Buffer::gotoLabel(string const & label)
+bool BufferView::gotoLabel(string const & label)
 
 {
-        LyXParagraph * par = paragraph;
+        LyXParagraph * par = buffer()->paragraph;
         LyXParagraph::size_type pos;
         Inset * inset;
         while (par) {
@@ -3937,10 +3913,10 @@ bool Buffer::gotoLabel(string const & label)
                 while ((inset = par->ReturnNextInsetPointer(pos))){     
                         for (int i = 0; i < inset->GetNumberOfLabels(); i++) {
                                if (label == inset->getLabel(i)) {
-                                       users->beforeChange();
-                                       users->text->SetCursor(par, pos);
-                                       users->text->sel_cursor = users->text->cursor;
-                                       users->update(0);
+                                       beforeChange();
+                                       text->SetCursor(par, pos);
+                                       text->sel_cursor = text->cursor;
+                                       update(0);
                                        return true;
                                }
                        }
@@ -3984,7 +3960,8 @@ void Buffer::markDepClean(string const & name)
        }
 }
 
-void Buffer::Dispatch(const string & command)
+
+void Buffer::Dispatch(string const & command)
 {
        // Split command string into command and argument
        string cmd, line = frontStrip(command);
@@ -3993,7 +3970,8 @@ void Buffer::Dispatch(const string & command)
        Dispatch(lyxaction.LookupFunc(cmd.c_str()), arg.c_str());
 }
 
-void Buffer::Dispatch(int action, const string & argument)
+
+void Buffer::Dispatch(int action, string const & argument)
 {
        switch (action) {
                case LFUN_EXPORT: 
@@ -4005,5 +3983,4 @@ void Buffer::Dispatch(int action, const string & argument)
                break;
 
        } // end of switch
-
 }
index 54262cbc442c019fd7f5db39924e94a7d61abca5..95cfdb8d7d322599f90e76d7441d283c2072fe05 100644 (file)
@@ -120,7 +120,7 @@ public:
        }
 
         /// Open and lock an updatable inset
-        void open_new_inset(UpdatableInset *);
+        //void open_new_inset(UpdatableInset *);
 
        ///
        void loadAutoSaveFile();
@@ -136,7 +136,7 @@ public:
        bool readLyXformat2(LyXLex &, LyXParagraph * par = 0);
 
        /// Inserts a lyx file at cursor position. Returns false if it fails.
-       bool insertLyXFile(string const & filename);
+       //bool insertLyXFile(string const & filename);
 
        /// Write file. Returns false if unsuccesful.
        bool writeFile(string const &, bool);
@@ -296,11 +296,11 @@ public:
        /** Insert an inset into the buffer
            Insert inset into buffer, placing it in a layout of lout,
            if no_table make sure that it doesn't end up in a table. */
-       void insertInset(Inset *, string const & lout = string(), 
-                        bool no_table = false);
+       //void insertInset(Inset *, string const & lout = string(), 
+       //               bool no_table = false);
 
         ///
-        void setCursorFromRow (int);
+       //void setCursorFromRow (int);
 
        ///
        string getIncludeonlyList(char delim = ',');
@@ -309,10 +309,10 @@ public:
        ///
        string getBibkeyList(char delim = '|');
        ///
-       bool gotoLabel(string const &);
+       //bool gotoLabel(string const &);
 
        /// removes all autodeletable insets
-       bool removeAutoInsets();
+       //bool removeAutoInsets();
 
        /** This will clearly have to change later. Later we can have more
            than one user per buffer. */
@@ -346,9 +346,11 @@ public:
            doing a 'nice' LaTeX file */
        bool niceFile;
 
+       /// Used when typesetting to place errorboxes.
+       TexRow texrow;
 private:
        ///
-       void insertErrors(TeXErrors &);
+       //void insertErrors(TeXErrors &);
 
         ///
         void linuxDocHandleFootnote(ostream & os,
@@ -425,8 +427,6 @@ private:
        */
        BufferView * users;
 
-       /// Used when typesetting to place errorboxes.
-       TexRow texrow;
 };
 
 
index a8c9b1919bb02d875b25025f67384926afde528d..97e84b1113f71a6c8c75e7586eb51c6b12748fe7 100644 (file)
@@ -249,7 +249,7 @@ void BufferList::resize()
 
 bool BufferList::close(Buffer * buf)
 {
-        buf->getUser()->insetUnlock();
+        if (buf->getUser()) buf->getUser()->insetUnlock();
        
        if (buf->paragraph && !buf->isLyxClean() && !quitting) {
                ProhibitInput();
@@ -325,7 +325,8 @@ int BufferList::unlockInset(UpdatableInset * inset)
        if (!inset) return 1;
        for(BufferStorage::iterator it = bstore.begin();
            it != bstore.end(); ++it) {
-               if ((*it)->getUser()->the_locking_inset == inset) {
+               if ((*it)->getUser()
+                   && (*it)->getUser()->the_locking_inset == inset) {
                        (*it)->getUser()->insetUnlock();
                        return 0;
                }
index a117418efaf74b78d8571e90d9be38166cede616..10a742c1ce0895dc97f657609ef17f9d954833c9 100644 (file)
@@ -82,7 +82,7 @@ inline
 void InsetRef::gotoLabel()
 {
     if (master) {
-       master->gotoLabel(getContents());
+       master->getUser()->gotoLabel(getContents());
     }
 }
 #endif
index 596ce7d3f059efa768c9abfd6c1e59ca05c5eeb6..8ac601124e52bf6cecbcc3dff91e038a7b56b869 100644 (file)
@@ -114,9 +114,6 @@ bool selection_possible = false;
 // away. Definitely not the best solution, but I think it sorta works.
 bool toggleall = true;
 
-void InsertCorrectQuote();
-
-
 /* 
    This is the inset locking stuff needed for mathed --------------------
 
@@ -157,11 +154,11 @@ void UpdateInset(Inset * inset, bool mark_dirty = true);
 /* these functions return 1 if an error occured, 
    otherwise 0 */
 // Now they work only for updatable insets. [Alejandro 080596]
-int LockInset(UpdatableInset * inset);
+//int LockInset(UpdatableInset * inset);
 void ToggleLockedInsetCursor(long x, long y, int asc, int desc);
-void FitLockedInsetCursor(long x, long y, int asc, int desc);
-int UnlockInset(UpdatableInset * inset);
-void LockedInsetStoreUndo(Undo::undo_kind kind);
+//void FitLockedInsetCursor(long x, long y, int asc, int desc);
+//int UnlockInset(UpdatableInset * inset);
+//void LockedInsetStoreUndo(Undo::undo_kind kind);
 
 /* this is for asyncron updating. UpdateInsetUpdateList will be called
    automatically from LyX. Just insert the Inset into the Updatelist */
@@ -177,17 +174,6 @@ InsetUpdateStruct * InsetUpdateList = 0;
 
 /* some function prototypes */
 
-void GotoNote();
-void OpenStuff();
-void ToggleFloat();
-void MenuUndo();
-void MenuRedo();
-void HyphenationPoint();
-void MenuSeparator();
-void HFill();
-void Newline();
-void ProtectedBlank();
-void CopyCB();
 int RunLinuxDoc(int, string const &);
 int RunDocBook(int, string const &);
 void MenuWrite(Buffer * buf);
@@ -1229,7 +1215,7 @@ void MenuInsertLabel(char const * arg)
        if (!label.empty()) {
                InsetLabel * new_inset = new InsetLabel;
                new_inset->setContents(label);
-               current_view->buffer()->insertInset(new_inset);
+               current_view->insertInset(new_inset);
        }
        AllowInput();
 }
@@ -1431,13 +1417,11 @@ int RunDocBook(int flag, string const & filename)
 }
 
 
-// candidate for move to BufferView
-void AllFloats(char flag, char figmar)
+void BufferView::allFloats(char flag, char figmar)
 {
-       if (!current_view->available())
-               return;
+       if (!available()) return;
 
-       LyXCursor cursor = current_view->text->cursor;
+       LyXCursor cursor = text->cursor;
 
        if (!flag && cursor.par->footnoteflag != LyXParagraph::NO_FOOTNOTE
            && ((figmar 
@@ -1449,15 +1433,15 @@ void AllFloats(char flag, char figmar)
                    && cursor.par->footnotekind != LyXParagraph::WIDE_FIG 
                    && cursor.par->footnotekind != LyXParagraph::WIDE_TAB
                    && cursor.par->footnotekind != LyXParagraph::ALGORITHM)))
-               ToggleFloat();
+               toggleFloat();
        else
-               current_view->beforeChange();
+               beforeChange();
 
        LyXCursor tmpcursor = cursor;
        cursor.par = tmpcursor.par->ParFromPos(tmpcursor.pos);
        cursor.pos = tmpcursor.par->PositionInParFromPos(tmpcursor.pos);
 
-       LyXParagraph *par = current_view->buffer()->paragraph;
+       LyXParagraph *par = buffer()->paragraph;
        while (par) {
                if (flag) {
                        if (par->footnoteflag == LyXParagraph::CLOSED_FOOTNOTE
@@ -1476,11 +1460,9 @@ void AllFloats(char flag, char figmar)
                                if (par->previous
                                    && par->previous->footnoteflag != 
                                    LyXParagraph::CLOSED_FOOTNOTE){ /* should be */ 
-                                       current_view->text
-                                               ->SetCursorIntern(par
-                                                                 ->previous,
-                                                                 0);
-                                       current_view->text->OpenFootnote();
+                                       text->SetCursorIntern(par->previous,
+                                                             0);
+                                       text->OpenFootnote();
                                }
                        }
                }
@@ -1508,17 +1490,17 @@ void AllFloats(char flag, char figmar)
                                            )
                                    )
                                ) {
-                               current_view->text->SetCursorIntern(par, 0);
-                               current_view->text->CloseFootnote();
+                               text->SetCursorIntern(par, 0);
+                               text->CloseFootnote();
                        }
                }
                par = par->next;
        }
 
-       current_view->text->SetCursorIntern(cursor.par, cursor.pos);
-       current_view->redraw();
-       current_view->fitCursor();
-       current_view->updateScrollbar();
+       text->SetCursorIntern(cursor.par, cursor.pos);
+       redraw();
+       fitCursor();
+       updateScrollbar();
 }
 
 
@@ -2102,169 +2084,152 @@ void MenuLayoutSave()
 }
 
 
-// candidate for move to BufferView
-void NoteCB()
+void BufferView::insertNote()
 {
        InsetInfo * new_inset = new InsetInfo();
-       current_view->buffer()->insertInset(new_inset);
+       insertInset(new_inset);
        new_inset->Edit(0, 0);
 }
 
 
-// candidate for move to BufferView
-void OpenStuff()
+void BufferView::openStuff()
 {
-       if (current_view->available()) {
-               current_view->owner()->getMiniBuffer()->Set(_("Open/Close..."));
-               current_view->getScreen()->HideCursor();
-               current_view->beforeChange();
-               current_view->update(-2);
-               current_view->text->OpenStuff();
-               current_view->update(0);
+       if (available()) {
+               owner()->getMiniBuffer()->Set(_("Open/Close..."));
+               getScreen()->HideCursor();
+               beforeChange();
+               update(-2);
+               text->OpenStuff();
+               update(0);
        }
 }
 
 
-// candidate for move to BufferView
-void ToggleFloat()
+void BufferView::toggleFloat()
 {
-       if (current_view->available()) {
-               current_view->owner()->getMiniBuffer()->Set(_("Open/Close..."));
-               current_view->getScreen()->HideCursor();
-               current_view->beforeChange();
-               current_view->update(-2);
-               current_view->text->ToggleFootnote();
-               current_view->update(0);
+       if (available()) {
+               owner()->getMiniBuffer()->Set(_("Open/Close..."));
+               getScreen()->HideCursor();
+               beforeChange();
+               update(-2);
+               text->ToggleFootnote();
+               update(0);
        }
 }
 
 
-// candidate for move to BufferView
-void MenuUndo()
+void BufferView::menuUndo()
 {
-/*     if (current_view->buffer()->the_locking_inset) {
-       current_view->owner()->getMiniBuffer()->Set(_("Undo not yet supported in math mode"));
-       return;
-       }*/
-   
-       if (current_view->available()) {
-               current_view->owner()->getMiniBuffer()->Set(_("Undo"));
-               current_view->getScreen()->HideCursor();
-               current_view->beforeChange();
-               current_view->update(-2);
-               if (!current_view->text->TextUndo())
-                       current_view->owner()->getMiniBuffer()->Set(_("No further undo information"));
+       if (available()) {
+               owner()->getMiniBuffer()->Set(_("Undo"));
+               getScreen()->HideCursor();
+               beforeChange();
+               update(-2);
+               if (!text->TextUndo())
+                       owner()->getMiniBuffer()->Set(_("No further undo information"));
                else
-                       current_view->update(-1);
+                       update(-1);
        }
 }
 
 
-// candidate for move to BufferView
-void MenuRedo()
+void BufferView::menuRedo()
 {
-       if (current_view->the_locking_inset) {
-               current_view->owner()->getMiniBuffer()->Set(_("Redo not yet supported in math mode"));
+       if (the_locking_inset) {
+               owner()->getMiniBuffer()->Set(_("Redo not yet supported in math mode"));
                return;
        }    
    
-       if (current_view->available()) {
-               current_view->owner()->getMiniBuffer()->Set(_("Redo"));
-               current_view->getScreen()->HideCursor();
-               current_view->beforeChange();
-               current_view->update(-2);
-               if (!current_view->text->TextRedo())
-                       current_view->owner()->getMiniBuffer()->Set(_("No further redo information"));
+       if (available()) {
+               owner()->getMiniBuffer()->Set(_("Redo"));
+               getScreen()->HideCursor();
+               beforeChange();
+               update(-2);
+               if (!text->TextRedo())
+                       owner()->getMiniBuffer()->Set(_("No further redo information"));
                else
-                       current_view->update(-1);
+                       update(-1);
        }
 }
 
 
-// candidate for move to BufferView
-void HyphenationPoint()
+void BufferView::hyphenationPoint()
 {
-       if (current_view->available())  {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::HYPHENATION);
-               current_view->buffer()->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
 
-// candidate for move to BufferView
-void Ldots()
+void BufferView::ldots()
 {
-       if (current_view->available())  {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
+       if (available())  {
+               getScreen()->HideCursor();
+               update(-2);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::LDOTS);
-               current_view->buffer()->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
 
-// candidate for move to BufferView
-void EndOfSentenceDot()
+void BufferView::endOfSentenceDot()
 {
-       if (current_view->available()) {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::END_OF_SENTENCE);
-               current_view->buffer()->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
 
-// candidate for move to BufferView
-void MenuSeparator()
+void BufferView::menuSeparator()
 {
-       if (current_view->available()) {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
                InsetSpecialChar * new_inset = 
                        new InsetSpecialChar(InsetSpecialChar::MENU_SEPARATOR);
-               current_view->buffer()->insertInset(new_inset);
+               insertInset(new_inset);
        }
 }
 
 
-// candidate for move to BufferView
-void Newline()
+void BufferView::newline()
 {
-       if (current_view->available()) {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
-               current_view->text->InsertChar(LyXParagraph::META_NEWLINE);
-               current_view->update(-1);
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
+               text->InsertChar(LyXParagraph::META_NEWLINE);
+               update(-1);
        }
 }
 
 
-// candidate for move to BufferView
-void ProtectedBlank()
+void BufferView::protectedBlank()
 {
-       if (current_view->available()) {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
-               current_view->text->InsertChar(LyXParagraph::META_PROTECTED_SEPARATOR);
-               current_view->update(-1);
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
+               text->InsertChar(LyXParagraph::META_PROTECTED_SEPARATOR);
+               update(-1);
        }
 }
 
 
-// candidate for move to BufferView
-void HFill()
+void BufferView::hfill()
 {
-       if (current_view->available()) {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
-               current_view->text->InsertChar(LyXParagraph::META_HFILL);
-               current_view->update(-1);
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
+               text->InsertChar(LyXParagraph::META_HFILL);
+               update(-1);
        }
 }
 
@@ -2393,10 +2358,6 @@ void ToggleAndShow(LyXFont const & font)
                current_view->text->ToggleFree(font, toggleall);
                current_view->update(1);
        }
-       // removed since it overrides the ToggleFree Message about the style
-       // Since Styles are more "High Level" than raw fonts I think the user
-       // prefers it like this               Matthias
-       // FontStateShowCB( 0, 0 );
 }
 
 
@@ -2437,78 +2398,73 @@ extern "C" void TableCB(FL_OBJECT *, long)
 }
 
 
-// candidate for move to BufferView
-void CopyEnvironmentCB()
+void BufferView::copyEnvironment()
 {
-       if (current_view->available()) {
-               current_view->text->copyEnvironmentType();
-               /* clear the selection, even if mark_set */ 
-               current_view->getScreen()->ToggleSelection();
-               current_view->text->ClearSelection();
-               current_view->update(-2);
-               current_view->owner()->getMiniBuffer()->Set(_("Paragraph environment type copied"));
+       if (available()) {
+               text->copyEnvironmentType();
+               // clear the selection, even if mark_set
+               getScreen()->ToggleSelection();
+               text->ClearSelection();
+               update(-2);
+               owner()->getMiniBuffer()->Set(_("Paragraph environment type copied"));
        }
 }
 
 
-// candidate for move to BufferView
-void PasteEnvironmentCB()
+void BufferView::pasteEnvironment()
 {
-       if (current_view->available()) {
-               current_view->text->pasteEnvironmentType();
-               current_view->owner()->getMiniBuffer()->Set(_("Paragraph environment type set"));
-               current_view->update(1);
+       if (available()) {
+               text->pasteEnvironmentType();
+               owner()->getMiniBuffer()->Set(_("Paragraph environment type set"));
+               update(1);
        }
 }
 
 
-// candidate for move to BufferView
-void CopyCB()
+void BufferView::copy()
 {
-       if (current_view->available()) {
-               current_view->text->CopySelection();
-               /* clear the selection, even if mark_set */ 
-               current_view->getScreen()->ToggleSelection();
-               current_view->text->ClearSelection();
-               current_view->update(-2);
-               current_view->owner()->getMiniBuffer()->Set(_("Copy"));
+       if (available()) {
+               text->CopySelection();
+               // clear the selection, even if mark_set
+               getScreen()->ToggleSelection();
+               text->ClearSelection();
+               update(-2);
+               owner()->getMiniBuffer()->Set(_("Copy"));
        }
 }
 
 
-// candidate for move to BufferView
-void CutCB()
+void BufferView::cut()
 {
-       if (current_view->available()) {
-               current_view->getScreen()->HideCursor();
-               current_view->update(-2);
-               current_view->text->CutSelection();
-               current_view->update(1);
-               current_view->owner()->getMiniBuffer()->Set(_("Cut"));
+       if (available()) {
+               getScreen()->HideCursor();
+               update(-2);
+               text->CutSelection();
+               update(1);
+               owner()->getMiniBuffer()->Set(_("Cut"));
        }
 }
 
 
-// candidate for move to BufferView
-void PasteCB()
+void BufferView::paste()
 {
-       if (!current_view->available()) return;
+       if (!available()) return;
        
-       current_view->owner()->getMiniBuffer()->Set(_("Paste"));
-       current_view->getScreen()->HideCursor();
-       /* clear the selection */
-       current_view->getScreen()->ToggleSelection();
-       current_view->text->ClearSelection();
-       current_view->update(-2);
+       owner()->getMiniBuffer()->Set(_("Paste"));
+       getScreen()->HideCursor();
+       // clear the selection
+       getScreen()->ToggleSelection();
+       text->ClearSelection();
+       update(-2);
        
-       /* paste */ 
-       current_view->text->PasteSelection();
-       current_view->update(1);
+       // paste
+       text->PasteSelection();
+       update(1);
        
-       /* clear the selection */ 
-       current_view->getScreen()->ToggleSelection();
-       current_view->text->ClearSelection();
-       current_view->update(-2);
+       // clear the selection 
+       getScreen()->ToggleSelection();
+       text->ClearSelection();
+       update(-2);
 }
 
 
@@ -3104,54 +3060,46 @@ extern "C" void DocumentBulletsCB(FL_OBJECT *, long)
 }
 
 
-// candidate for move to BufferView
-void GotoNote()
+void BufferView::gotoNote()
 {
-       if (!current_view->getScreen())
-               return;
+       if (!getScreen()) return;
    
-       current_view->getScreen()->HideCursor();
-       current_view->beforeChange();
-       current_view->update(-2);
+       getScreen()->HideCursor();
+       beforeChange();
+       update(-2);
        LyXCursor tmp;
    
-       if (!current_view->text->GotoNextNote()) {
-               if (current_view->text->cursor.pos 
-                   || current_view->text->cursor.par != 
-                   current_view->text->FirstParagraph())
-                       {
-                               tmp = current_view->text->cursor;
-                               current_view->text->cursor.par = 
-                                       current_view->text->FirstParagraph();
-                               current_view->text->cursor.pos = 0;
-                               if (!current_view->text->GotoNextNote()) {
-                                       current_view->text->cursor = tmp;
-                                       current_view->owner()->getMiniBuffer()->Set(_("No more notes"));
+       if (!text->GotoNextNote()) {
+               if (text->cursor.pos 
+                   || text->cursor.par != text->FirstParagraph()) {
+                               tmp = text->cursor;
+                               text->cursor.par = text->FirstParagraph();
+                               text->cursor.pos = 0;
+                               if (!text->GotoNextNote()) {
+                                       text->cursor = tmp;
+                                       owner()->getMiniBuffer()->Set(_("No more notes"));
                                        LyXBell();
                                }
                        } else {
-                               current_view->owner()->getMiniBuffer()->Set(_("No more notes"));
+                               owner()->getMiniBuffer()->Set(_("No more notes"));
                                LyXBell();
                        }
        }
-       current_view->update(0);
-       current_view->text->sel_cursor = 
-               current_view->text->cursor;
+       update(0);
+       text->sel_cursor = text->cursor;
 }
 
 
-// candidate for move to BufferView
-void InsertCorrectQuote()
+void BufferView::insertCorrectQuote()
 {
-       Buffer * cbuffer = current_view->buffer();
        char c;
 
-       if  (current_view->text->cursor.pos )
-               c = current_view->text->cursor.par->GetChar(current_view->text->cursor.pos - 1);
+       if (text->cursor.pos)
+               c = text->cursor.par->GetChar(text->cursor.pos - 1);
        else 
                c = ' ';
 
-       cbuffer->insertInset(new InsetQuotes(c, cbuffer->params));
+       insertInset(new InsetQuotes(c, buffer()->params));
 }
 
 
@@ -3525,7 +3473,7 @@ extern "C" void FigureApplyCB(FL_OBJECT *, long)
        if (fl_get_button(fd_form_figure->radio_inline)
            || current_view->text->cursor.par->table) {
                InsetFig * new_inset = new InsetFig(100, 20, buffer);
-               buffer->insertInset(new_inset);
+               current_view->insertInset(new_inset);
                current_view->owner()->getMiniBuffer()->Set(_("Figure inserted"));
                new_inset->Edit(0, 0);
                return;
@@ -3574,7 +3522,7 @@ extern "C" void FigureApplyCB(FL_OBJECT *, long)
        current_view->update(-1);
       
        Inset * new_inset = new InsetFig(100, 100, buffer);
-       buffer->insertInset(new_inset);
+       current_view->insertInset(new_inset);
        new_inset->Edit(0, 0);
        current_view->update(0);
        current_view->owner()->getMiniBuffer()->Set(_("Figure inserted"));
@@ -3661,74 +3609,66 @@ void Reconfigure()
 }
 
 
-// candidate for move to BufferView
 /* these functions are for the spellchecker */ 
-char * NextWord(float & value)
+char * BufferView::nextWord(float & value)
 {
-       if (!current_view->available()){
+       if (!available()) {
                value = 1;
                return 0;
        }
 
-       char * string =  current_view->text->SelectNextWord(value);
+       char * string = text->SelectNextWord(value);
 
        return string;
 }
 
   
-// candidate for move to BufferView
-void SelectLastWord()
+void BufferView::selectLastWord()
 {
-       if (!current_view->available())
-               return;
+       if (!available()) return;
    
-       current_view->getScreen()->HideCursor();
-       current_view->beforeChange();
-       current_view->text->SelectSelectedWord();
-       current_view->getScreen()->ToggleSelection(false);
-       current_view->update(0);
+       getScreen()->HideCursor();
+       beforeChange();
+       text->SelectSelectedWord();
+       getScreen()->ToggleSelection(false);
+       update(0);
 }
 
 
-// candidate for move to BufferView
-void EndOfSpellCheck()
+void BufferView::endOfSpellCheck()
 {
-       if (!current_view->available())
-               return;
+       if (!available()) return;
    
-       current_view->getScreen()->HideCursor();
-       current_view->beforeChange();
-       current_view->text->SelectSelectedWord();
-       current_view->text->ClearSelection();
-       current_view->update(0);
+       getScreen()->HideCursor();
+       beforeChange();
+       text->SelectSelectedWord();
+       text->ClearSelection();
+       update(0);
 }
 
 
-// candidate for move to BufferView
-void ReplaceWord(string const & replacestring)
+void BufferView::replaceWord(string const & replacestring)
 {
-       if (!current_view->getScreen())
-               return;
+       if (!getScreen()) return;
 
-       current_view->getScreen()->HideCursor();
-       current_view->update(-2);
+       getScreen()->HideCursor();
+       update(-2);
    
        /* clear the selection (if there is any) */ 
-       current_view->getScreen()->ToggleSelection(false);
-       current_view->update(-2);
+       getScreen()->ToggleSelection(false);
+       update(-2);
    
        /* clear the selection (if there is any) */ 
-       current_view->getScreen()->ToggleSelection(false);
-       current_view->text->
-               ReplaceSelectionWithString(replacestring.c_str());
+       getScreen()->ToggleSelection(false);
+       text->ReplaceSelectionWithString(replacestring.c_str());
    
-       current_view->text->SetSelectionOverString(replacestring.c_str());
+       text->SetSelectionOverString(replacestring.c_str());
 
        // Go back so that replacement string is also spellchecked
        for (string::size_type i = 0; i < replacestring.length() + 1; ++i) {
-               current_view->text->CursorLeftIntern();
+               text->CursorLeftIntern();
        }
-       current_view->update(1);
+       update(1);
 }
 // End of spellchecker stuff
 
@@ -3932,7 +3872,7 @@ extern "C" void RefSelectCB(FL_OBJECT *, long data)
 
        Inset * new_inset = 
                new InsetRef(t, current_view->buffer());
-       current_view->buffer()->insertInset(new_inset);
+       current_view->insertInset(new_inset);
 }
 
 
@@ -4048,81 +3988,71 @@ void UpdateInset(Inset * inset, bool mark_dirty)
 }
 
 
-// candidate for move to BufferView
 /* these functions return 1 if an error occured, 
    otherwise 0 */
-int LockInset(UpdatableInset * inset)
+int BufferView::lockInset(UpdatableInset * inset)
 {
-       if (!current_view->the_locking_inset && inset){
-               current_view->the_locking_inset = inset;
+       if (!the_locking_inset && inset){
+               the_locking_inset = inset;
                return 0;
        }
        return 1;
 }
 
 
-// candidate for move to BufferView
-void ShowLockedInsetCursor(long x, long y, int asc, int desc)
+void BufferView::showLockedInsetCursor(long x, long y, int asc, int desc)
 {
-       if (current_view->the_locking_inset &&
-           current_view->getScreen()){
-               y += current_view->text->cursor.y;
-               current_view->getScreen()->ShowManualCursor(x, y,
-                                                           asc, desc);
+       if (the_locking_inset && getScreen()) {
+               y += text->cursor.y;
+               getScreen()->ShowManualCursor(x, y,
+                                             asc, desc);
        }
 }
 
 
-// candidate for move to BufferView
-void HideLockedInsetCursor(long x, long y, int asc, int desc)
+void BufferView::hideLockedInsetCursor(long x, long y, int asc, int desc)
 {
-       if (current_view->the_locking_inset &&
-           current_view->getScreen()){
-               y += current_view->text->cursor.y;
-               current_view->getScreen()->HideManualCursor(x, y,
-                                                           asc, desc);
+       if (the_locking_inset && getScreen()) {
+               y += text->cursor.y;
+               getScreen()->HideManualCursor(x, y,
+                                             asc, desc);
        }
 }
 
 
-// candidate for move to BufferView
-void FitLockedInsetCursor(long x, long y, int asc, int desc)
+void BufferView::fitLockedInsetCursor(long x, long y, int asc, int desc)
 {
-       if (current_view->the_locking_inset &&
-           current_view->getScreen()){
-               y += current_view->text->cursor.y;
-               if (current_view->getScreen()->FitManualCursor(x, y, asc, desc))
-                       current_view->updateScrollbar();
+       if (the_locking_inset && getScreen()){
+               y += text->cursor.y;
+               if (getScreen()->FitManualCursor(x, y, asc, desc))
+                       updateScrollbar();
        }
 }
 
 
-// candidate for move to BufferView
-int UnlockInset(UpdatableInset * inset)
+int BufferView::unlockInset(UpdatableInset * inset)
 {
-       if (inset &&
-           current_view->the_locking_inset == inset){
+       if (inset && the_locking_inset == inset) {
                inset->InsetUnlock();
-               current_view->the_locking_inset = 0;
-               current_view->text->FinishUndo();
+               the_locking_inset = 0;
+               text->FinishUndo();
                return 0;
        }
        return bufferlist.unlockInset(inset);
 }
 
 
-// candidate for move to BufferView
-void LockedInsetStoreUndo(Undo::undo_kind kind)
+void BufferView::lockedInsetStoreUndo(Undo::undo_kind kind)
 {
-       if (!current_view->the_locking_inset)
+       if (!the_locking_inset)
                return; // shouldn't happen
        if (kind == Undo::EDIT) // in this case insets would not be stored!
                kind = Undo::FINISH;
-       current_view->text->SetUndo(kind,
-                                   current_view->text->cursor.par->
-                                   ParFromPos(current_view->text->cursor.pos)->previous, 
-                                   current_view->text->cursor.par->
-                                   ParFromPos(current_view->text->cursor.pos)->next);
+       text->SetUndo(kind,
+                     text->cursor.par->
+                     ParFromPos(text->cursor.pos)->previous, 
+                     text->cursor.par->
+                     ParFromPos(text->cursor.pos)->next);
 }
 
 
index 503733ff2baa57574a4015f68174d6f59167ae1e..9619bdd979c3eadc9309ff29aaa462a600598ef8 100644 (file)
@@ -38,14 +38,6 @@ extern "C" void DepthCB(FL_OBJECT *, long);
 ///
 extern void FreeCB();
 ///
-extern void CutCB();
-///
-extern void PasteCB();
-///
-extern void CopyCB();
-///
-extern void NoteCB();
-///
 extern void HtmlUrlCB();
 ///
 extern void UrlCB();
@@ -71,9 +63,9 @@ extern void AllowInput();
 ///
 struct InsetUpdateStruct {
        ///
-       Inset* inset;
+       Inset * inset;
        ///
-       InsetUpdateStruct* next;
+       InsetUpdateStruct * next;
 };
 #endif
 
index a997bf8e248653363c5ad829d4c5c45b28685290..b44d7e6cc98cd80cdbd4efd1589636f6e7c172f6 100644 (file)
@@ -96,19 +96,6 @@ extern tex_accent_struct get_accent(kb_action action);
 
 extern void AutoSave();
 extern void MenuSearch();
-extern void CopyCB();
-extern void CopyEnvironmentCB();
-extern void PasteEnvironmentCB();
-extern void GotoNote();
-extern void NoteCB();
-extern void OpenStuff();
-extern void HyphenationPoint();
-extern void Ldots();
-extern void EndOfSentenceDot();
-extern void MenuSeparator();
-extern void HFill();
-extern void MenuUndo();
-extern void MenuRedo();
 extern void SetUpdateTimer(float timer = 0.3);
 extern void FreeUpdateTimer();
 extern bool MenuPreview(Buffer *);
@@ -132,7 +119,7 @@ extern void Reconfigure();
 extern int current_layout;
 extern int getISOCodeFromLaTeX(char *);
 
-extern int UnlockInset(UpdatableInset *);
+//extern int UnlockInset(UpdatableInset *);
 
 extern void ShowLatexLog();
 
@@ -209,7 +196,7 @@ int LyXFunc::processKeyEvent(XEvent * ev)
        if (owner->view()->available() &&
            owner->view()->the_locking_inset &&
            keysym_return == XK_Escape) {
-               UnlockInset(owner->view()->the_locking_inset);
+               owner->view()->unlockInset(owner->view()->the_locking_inset);
                owner->view()->text->CursorRight();
                return 0;
        }
@@ -534,8 +521,8 @@ string LyXFunc::Dispatch(int ac,
                                UpdatableInset * inset = 
                                        owner->view()->the_locking_inset;
                                inset->GetCursorPos(slx, sly);
-                               UnlockInset(inset);
-                               MenuUndo();
+                               owner->view()->unlockInset(inset);
+                               owner->view()->menuUndo();
                                inset = static_cast<UpdatableInset*>(owner->view()->text->cursor.par->GetInset(owner->view()->text->cursor.pos));
                                if (inset) 
                                        inset->Edit(slx, sly);
@@ -545,8 +532,8 @@ string LyXFunc::Dispatch(int ac,
                                        int slx, sly;
                                        UpdatableInset * inset = owner->view()->the_locking_inset;
                                        inset->GetCursorPos(slx, sly);
-                                       UnlockInset(inset);
-                                       MenuRedo();
+                                       owner->view()->unlockInset(inset);
+                                       owner->view()->menuRedo();
                                        inset = static_cast<UpdatableInset*>(owner->view()->text->cursor.par->GetInset(owner->view()->text->cursor.pos));
                                        if (inset)
                                                inset->Edit(slx, sly);
@@ -792,28 +779,28 @@ string LyXFunc::Dispatch(int ac,
        case LFUN_TOC_INSERT:
        {
                Inset * new_inset = new InsetTOC(owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
                break;
        }
        
        case LFUN_LOF_INSERT:
        {
                Inset * new_inset = new InsetLOF(owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
                break;
        }
        
        case LFUN_LOA_INSERT:
        {
                Inset * new_inset = new InsetLOA(owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
                break;
        }
 
        case LFUN_LOT_INSERT:
        {
                Inset * new_inset = new InsetLOT(owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
                break;
        }
                
@@ -830,11 +817,11 @@ string LyXFunc::Dispatch(int ac,
                break;
                
        case LFUN_UNDO:
-               MenuUndo();
+               owner->view()->menuUndo();
                break;
                
        case LFUN_REDO:
-               MenuRedo();
+               owner->view()->menuRedo();
                break;
                
        case LFUN_MENUSEARCH:
@@ -842,7 +829,7 @@ string LyXFunc::Dispatch(int ac,
                break;
                
        case LFUN_PASTE:
-               PasteCB();
+               owner->view()->paste();
                break;
                
        case LFUN_PASTESELECTION:
@@ -854,19 +841,19 @@ string LyXFunc::Dispatch(int ac,
        }
 
        case LFUN_CUT:
-               CutCB();
+               owner->view()->cut();
                break;
                
        case LFUN_COPY:
-               CopyCB();
+               owner->view()->copy();
                break;
                
        case LFUN_LAYOUT_COPY:
-               CopyEnvironmentCB();
+               owner->view()->copyEnvironment();
                break;
                
        case LFUN_LAYOUT_PASTE:
-               PasteEnvironmentCB();
+               owner->view()->pasteEnvironment();
                break;
                
        case LFUN_GOTOERROR:
@@ -874,7 +861,7 @@ string LyXFunc::Dispatch(int ac,
                break;
                
        case LFUN_REMOVEERRORS:
-               if (owner->buffer()->removeAutoInsets()) {
+               if (owner->view()->removeAutoInsets()) {
                        owner->view()->redraw();
                        owner->view()->fitCursor();
                        owner->view()->updateScrollbar();
@@ -882,31 +869,31 @@ string LyXFunc::Dispatch(int ac,
                break;
                
        case LFUN_GOTONOTE:
-               GotoNote();
+               owner->view()->gotoNote();
                break;
                
        case LFUN_OPENSTUFF:
-               OpenStuff();
+               owner->view()->openStuff();
                break;
                
        case LFUN_HYPHENATION:
-               HyphenationPoint();
+               owner->view()->hyphenationPoint();
                break;
                
        case LFUN_LDOTS:
-               Ldots();
+               owner->view()->ldots();
                break;
                
        case LFUN_END_OF_SENTENCE:
-               EndOfSentenceDot();
+               owner->view()->endOfSentenceDot();
                break;
 
        case LFUN_MENU_SEPARATOR:
-               MenuSeparator();
+               owner->view()->menuSeparator();
                break;
                
        case LFUN_HFILL:
-               HFill();
+               owner->view()->hfill();
                break;
                
        case LFUN_DEPTH:
@@ -1255,7 +1242,7 @@ string LyXFunc::Dispatch(int ac,
                
                if (!label.empty()) {
                        owner->view()->savePosition();
-                       owner->buffer()->gotoLabel(label.c_str());
+                       owner->view()->gotoLabel(label.c_str());
                }
        }
        break;
@@ -1605,7 +1592,7 @@ string LyXFunc::Dispatch(int ac,
                        // just comment out the lone below...
                        owner->view()->getScreen()->ShowCursor();
                } else {
-                       CutCB();
+                       owner->view()->cut();
                }
                SetUpdateTimer();
                break;
@@ -1649,7 +1636,7 @@ string LyXFunc::Dispatch(int ac,
                                owner->view()->smallUpdate(1);
                        }
                } else {
-                       CutCB();
+                       owner->view()->cut();
                }
                SetUpdateTimer();
        }
@@ -1718,7 +1705,7 @@ string LyXFunc::Dispatch(int ac,
                                owner->view()->getScreen()->ShowCursor();
                        }
                } else {
-                       CutCB();
+                       owner->view()->cut();
                }
                SetUpdateTimer();
        }
@@ -1751,7 +1738,7 @@ string LyXFunc::Dispatch(int ac,
                                owner->view()->smallUpdate (1);
                        }
                } else
-                       CutCB();
+                       owner->view()->cut();
                SetUpdateTimer();
        }
        break;
@@ -1825,7 +1812,7 @@ string LyXFunc::Dispatch(int ac,
                        new_inset = new InsetUrl("htmlurl", "", "");
                else
                        new_inset = new InsetUrl("url", "", "");
-               owner->buffer()->insertInset(new_inset);
+               owner->view()->insertInset(new_inset);
                new_inset->Edit(0, 0);
        }
        break;
@@ -1919,7 +1906,7 @@ string LyXFunc::Dispatch(int ac,
                        owner->view()->buffer(bufferlist.loadLyXFile(s));
 
                // Set the cursor  
-               owner->buffer()->setCursorFromRow(row);
+               owner->view()->setCursorFromRow(row);
 
                // Recenter screen
                owner->view()->beforeChange();
@@ -2066,7 +2053,7 @@ string LyXFunc::Dispatch(int ac,
        case LFUN_INSERT_MATRIX:
        {          
                if (owner->view()->available()) { 
-                       owner->buffer()->
+                       owner->view()->
                                open_new_inset(new InsetFormula(false));
                        owner->view()->
                                the_locking_inset->LocalDispatch(action, argument.c_str());
@@ -2083,7 +2070,7 @@ string LyXFunc::Dispatch(int ac,
        case LFUN_MATH_DISPLAY:
        {
                if (owner->view()->available())
-                       owner->buffer()->open_new_inset(new InsetFormula(true));
+                       owner->view()->open_new_inset(new InsetFormula(true));
                break;
        }
                    
@@ -2096,7 +2083,7 @@ string LyXFunc::Dispatch(int ac,
                        else {
                                string s1 = token(s, ' ', 1);
                                int na = s1.empty() ? 0: atoi(s1.c_str());
-                               owner->buffer()->
+                               owner->view()->
                                        open_new_inset(new InsetFormulaMacro(token(s, ' ', 0), na));
                        }
                }
@@ -2107,7 +2094,7 @@ string LyXFunc::Dispatch(int ac,
        {
                
                if (owner->view()->available())
-                       owner->buffer()->open_new_inset(new InsetFormula);
+                       owner->view()->open_new_inset(new InsetFormula);
                setMessage(N_("Math editor mode"));
        }
        break;
@@ -2132,9 +2119,9 @@ string LyXFunc::Dispatch(int ac,
                                new_inset->setOptions(token(lsarg, '|', 1));
                        } else
                                new_inset->setContents(lsarg);
-                       owner->buffer()->insertInset(new_inset);
+                       owner->view()->insertInset(new_inset);
                } else {
-                       owner->buffer()->insertInset(new_inset);
+                       owner->view()->insertInset(new_inset);
                        new_inset->Edit(0, 0);
                }
        }
@@ -2154,7 +2141,7 @@ string LyXFunc::Dispatch(int ac,
                                          bibstyle,
                                          owner->buffer());
                
-               owner->buffer()->insertInset(new_inset);
+               owner->view()->insertInset(new_inset);
                if (lsarg.empty()) {
                        new_inset->Edit(0, 0);
                }
@@ -2203,7 +2190,7 @@ string LyXFunc::Dispatch(int ac,
                if (!argument.empty()) {
                        string lsarg(argument);
                        new_inset->setContents(lsarg);
-                       owner->buffer()->insertInset(new_inset);
+                       owner->view()->insertInset(new_inset);
                } else {
                        //reh 98/09/21
                        //get the current word for an argument
@@ -2235,7 +2222,7 @@ string LyXFunc::Dispatch(int ac,
                        //put the new inset into the buffer.
                        // there should be some way of knowing the user
                        //cancelled & avoiding this, but i don't know how
-                       owner->buffer()->insertInset(new_inset);
+                       owner->view()->insertInset(new_inset);
                }
        }
        break;
@@ -2243,7 +2230,7 @@ string LyXFunc::Dispatch(int ac,
        case LFUN_INDEX_PRINT:
        {
                Inset * new_inset = new InsetPrintIndex(owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
        }
        break;
 
@@ -2251,7 +2238,7 @@ string LyXFunc::Dispatch(int ac,
        {
                lyxerr << "arg " << argument << endl;
                Inset * new_inset = new InsetParent(argument, owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
        }
        break;
 
@@ -2259,7 +2246,7 @@ string LyXFunc::Dispatch(int ac,
        {
                Inset * new_inset = new InsetInclude(argument,
                                                     owner->buffer());
-               owner->buffer()->insertInset(new_inset, "Standard", true);
+               owner->view()->insertInset(new_inset, "Standard", true);
                new_inset->Edit(0, 0);
        }
        break;
@@ -2280,7 +2267,7 @@ string LyXFunc::Dispatch(int ac,
        break;
 
        case LFUN_INSERT_NOTE:
-               NoteCB();
+               owner->view()->insertNote();
                break;
                
        case LFUN_INSERTFOOTNOTE: 
@@ -2803,7 +2790,7 @@ void LyXFunc::MenuInsertLyXFile(string const & filen)
        // Inserts document
        owner->getMiniBuffer()->Set(_("Inserting document"),
                                    MakeDisplayPath(filename), "...");
-       bool res = owner->buffer()->insertLyXFile(filename);
+       bool res = owner->view()->insertLyXFile(filename);
        if (res) {
                owner->getMiniBuffer()->Set(_("Document"),
                                            MakeDisplayPath(filename),
index 82565a529881c2888ace6290353eabca2366d090..6444ce8ec1646d7c9b243b5c8f7e2788712b5a05 100644 (file)
 #include "LyXView.h"
 
 extern void UpdateInset(Inset * inset, bool mark_dirty = true);
-extern void LockedInsetStoreUndo(Undo::undo_kind);
-extern void ShowLockedInsetCursor(long, long, int, int);
-extern void HideLockedInsetCursor(long, long, int, int);
-extern void FitLockedInsetCursor(long, long, int, int);
-extern int LockInset(UpdatableInset *);
-extern int UnlockInset(UpdatableInset *);
+//extern void LockedInsetStoreUndo(Undo::undo_kind);
+//extern void ShowLockedInsetCursor(long, long, int, int);
+//extern void HideLockedInsetCursor(long, long, int, int);
+//extern void FitLockedInsetCursor(long, long, int, int);
+//extern int LockInset(UpdatableInset *);
+//extern int UnlockInset(UpdatableInset *);
 
 
 extern GC canvasGC, mathGC, mathLineGC, latexGC, cursorGC, mathFrameGC;
@@ -483,7 +483,7 @@ void InsetFormula::Draw(LyXFont f, LyXScreen & scr, int baseline, float & x)
 void InsetFormula::Edit(int x, int y)
 {
    mathcursor = new MathedCursor(par);
-   LockInset(this);
+   current_view->lockInset(this);
    par->Metrics();
    UpdateInset(this, false);
    x += par->xo; 
@@ -538,9 +538,9 @@ void InsetFormula::ToggleInsetCursor()
   desc = font.maxDescent();
   
   if (cursor_visible)
-    HideLockedInsetCursor(x, y, asc, desc);
+    current_view->hideLockedInsetCursor(x, y, asc, desc);
   else
-    ShowLockedInsetCursor(x, y, asc, desc);
+    current_view->showLockedInsetCursor(x, y, asc, desc);
   cursor_visible = !cursor_visible;
 }
 
@@ -556,7 +556,7 @@ void InsetFormula::ShowInsetCursor()
        LyXFont font = WhichFont(LM_TC_TEXTRM, LM_ST_TEXT);
        asc = font.maxAscent();
        desc = font.maxDescent();
-      FitLockedInsetCursor(x, y, asc, desc);
+      current_view->fitLockedInsetCursor(x, y, asc, desc);
     }
     ToggleInsetCursor();
   }
@@ -786,24 +786,24 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
       mathcursor->End();
       break;
     case LFUN_DELETE_LINE_FORWARD:
-           //LockedInsetStoreUndo(Undo::INSERT);
-           LockedInsetStoreUndo(Undo::DELETE);
+           //current_view->lockedInsetStoreUndo(Undo::INSERT);
+           current_view->lockedInsetStoreUndo(Undo::DELETE);
       mathcursor->DelLine();
       UpdateLocal();
       break;
     case LFUN_BREAKLINE:
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
       mathcursor->Insert(' ', LM_TC_CR);
       par = mathcursor->GetPar();
       UpdateLocal();     
       break;
     case LFUN_TAB:
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
       mathcursor->Insert(0, LM_TC_TAB);
       //UpdateInset(this);
       break;     
     case LFUN_TABINSERT:
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
       mathcursor->Insert('T', LM_TC_TAB);
       UpdateLocal();
       break;     
@@ -817,8 +817,8 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
        }
       
     case LFUN_DELETE:
-           //LockedInsetStoreUndo(Undo::INSERT);
-           LockedInsetStoreUndo(Undo::DELETE);
+           //current_view->lockedInsetStoreUndo(Undo::INSERT);
+           current_view->lockedInsetStoreUndo(Undo::DELETE);
       mathcursor->Delete();       
       UpdateInset(this);
       break;    
@@ -840,10 +840,10 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
     case LFUN_PASTE:
             if (was_macro)
                mathcursor->MacroModeClose();
-           LockedInsetStoreUndo(Undo::INSERT);
+           current_view->lockedInsetStoreUndo(Undo::INSERT);
            mathcursor->SelPaste(); UpdateLocal(); break;
     case LFUN_CUT:
-           LockedInsetStoreUndo(Undo::DELETE);
+           current_view->lockedInsetStoreUndo(Undo::DELETE);
            mathcursor->SelCut(); UpdateLocal(); break;
     case LFUN_COPY: mathcursor->SelCopy(); break;      
     case LFUN_HOMESEL:
@@ -904,7 +904,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
 
     case LFUN_MATH_NUMBER:
     {
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
        if (disp_flag) {
          short type = par->GetType();
          bool oldf = (type == LM_OT_PARN || type == LM_OT_MPARN);
@@ -939,7 +939,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
        
     case LFUN_MATH_LIMITS:
     {
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
        if (mathcursor->Limits())
         UpdateLocal();
     }
@@ -955,14 +955,14 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
        
     case LFUN_INSERT_MATH:
     {
-       LockedInsetStoreUndo(Undo::INSERT);
+       current_view->lockedInsetStoreUndo(Undo::INSERT);
        InsertSymbol(arg);
        break;
     }
     
     case LFUN_INSERT_MATRIX:
     { 
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
        int k, m, n;
        char s[80], arg2[80];
        // This is just so that too long args won't ooze out of s.
@@ -988,7 +988,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
       
     case LFUN_MATH_DELIM:
     {  
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
        char lf[40], rg[40], arg2[40];
        int ilf = '(', irg = '.';
        latexkeys * l;
@@ -1032,7 +1032,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
 
     case LFUN_PROTECTEDSPACE:
     {
-      LockedInsetStoreUndo(Undo::INSERT);
+      current_view->lockedInsetStoreUndo(Undo::INSERT);
        sp = new MathSpaceInset(1); 
        mathcursor->Insert(sp);
        space_on = true;
@@ -1042,7 +1042,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
       
     case LFUN_INSERT_LABEL:
     {
-       LockedInsetStoreUndo(Undo::INSERT);
+       current_view->lockedInsetStoreUndo(Undo::INSERT);
        if (par->GetType() < LM_OT_PAR) break;
        string lb = arg;
        if (lb.empty()) {
@@ -1069,8 +1069,8 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
     }
     
     case LFUN_MATH_DISPLAY:
-           //LockedInsetStoreUndo(Undo::INSERT);
-           LockedInsetStoreUndo(Undo::EDIT);
+           //current_view->lockedInsetStoreUndo(Undo::INSERT);
+           current_view->lockedInsetStoreUndo(Undo::EDIT);
       display(!disp_flag);
       UpdateLocal();
       break;
@@ -1099,7 +1099,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
     default:
       if ((action == -1  || action == LFUN_SELFINSERT) && arg)  {
         unsigned char c = arg[0];
-        LockedInsetStoreUndo(Undo::INSERT);
+        current_view->lockedInsetStoreUndo(Undo::INSERT);
         
         if (c == ' ' && mathcursor->getAccent() == LM_hat) {
             c = '^';
@@ -1214,7 +1214,7 @@ bool InsetFormula::LocalDispatch(int action, char const * arg)
    if (result)
       ShowInsetCursor();
    else
-      UnlockInset(this);
+      current_view->unlockInset(this);
     
    return result;
 }
index ef25770805e177418a85358464077855621a3782..3766bc2e53b859c30dcb446cb658e08ad671e4ca 100644 (file)
@@ -39,8 +39,8 @@ using std::max;
 #include "math_panel.h"                 
 #include "math_parser.h"
 
-extern void Update(signed char);
-extern int UnlockInset(UpdatableInset *);
+//extern void Update(signed char);
+//extern int UnlockInset(UpdatableInset *);
 extern short greek_kb_flag;
 
 extern BufferView * current_view;
@@ -355,20 +355,21 @@ Bool math_insert_greek(char const c)
       math_insert_symbol(s);
       if (greek_kb_flag<2) {
         greek_kb_flag = 0;
-        UnlockInset(current_view->the_locking_inset);
+        current_view->unlockInset(current_view->the_locking_inset);
       }
       return True;
    } else
      return False; 
 }
 
-void math_insert_symbol(char const* s)
+
+void math_insert_symbol(char const * s)
 {
    if (current_view->available())   {
       if (!current_view->the_locking_inset) {
         InsetFormula * new_inset = new InsetFormula();
         current_view->beforeChange();
-        current_view->buffer()->insertInset(new_inset);
+        current_view->insertInset(new_inset);
 //      Update(1);//BUG
         new_inset->Edit(0, 0);
         new_inset->InsertSymbol(s);
@@ -381,6 +382,7 @@ void math_insert_symbol(char const* s)
    }
 }
 
+
 BitmapMenu * sym_menu= 0;
 
 void  create_symbol_menues(FD_panel * symb_form)
index b0138cb07948b4903d1c6ad5b3cba9cf7aa18991..686dc9c82770e977b61c7c296b4d543f47fed04b 100644 (file)
@@ -59,9 +59,6 @@ extern void ShowCopyright();
 extern void show_symbols_form(LyXFunc *);
 extern void ProhibitInput();
 extern void AllowInput();
-extern void OpenStuff();
-extern void ToggleFloat();
-extern void AllFloats(char flag, char figmar);
 extern void LaTeXOptions();
 
 // A bunch of wrappers
@@ -1067,12 +1064,12 @@ void Menus::ShowEditMenu(FL_OBJECT * ob, long)
        case 17: tmpfunc->Dispatch(LFUN_PASTESELECTION, "paragraph"); break;
 
                // floats & insets sub-menu
-       case 21: ToggleFloat(); break;
+       case 21: men->currentView()->toggleFloat(); break;
        case 22: tmpfunc->Dispatch(LFUN_MELT); break;
-       case 23: AllFloats(1, 0); break;
-       case 24: AllFloats(0, 0); break;
-       case 25: AllFloats(1, 1); break;
-       case 26: AllFloats(0, 1); break;
+       case 23: men->currentView()->allFloats(1, 0); break;
+       case 24: men->currentView()->allFloats(0, 0); break;
+       case 25: men->currentView()->allFloats(1, 1); break;
+       case 26: men->currentView()->allFloats(0, 1); break;
        case 27: tmpfunc->Dispatch(LFUN_REMOVEERRORS); break;
 
        case 31: tmpfunc->Dispatch(LFUN_TABLE); break;
index 2d1f385cc87984e500ecf0075768f510c7c3ab27..4c0104775470f146fdaa228d39a435be936146b4 100644 (file)
@@ -626,7 +626,7 @@ void ShowSpellChecker()
                if (obj == fd_form_spell_check->done) break;
        }
        fl_hide_form(fd_form_spell_check->form_spell_check);
-       EndOfSpellCheck();
+       current_view->endOfSpellCheck();
        return;
 }
 
@@ -666,7 +666,7 @@ bool RunSpellChecker(string const & lang)
        ispell_terse_mode();
 
        while (true) {
-               word = NextWord(newval);
+               word = current_view->nextWord(newval);
                if (word == 0) break;
                word_count++;
                
@@ -700,7 +700,7 @@ bool RunSpellChecker(string const & lang)
                switch (result->flag) {
                case ISP_UNKNOWN:
                case ISP_MISSED:
-                       SelectLastWord();
+                       current_view->selectLastWord();
                        fl_set_object_label(fd_form_spell_check->text, word);
                        fl_set_input(fd_form_spell_check->input, word);
                        fl_clear_browser(fd_form_spell_check->browser);
@@ -725,7 +725,7 @@ bool RunSpellChecker(string const & lang)
                                if (obj == fd_form_spell_check->replace || 
                                    obj == fd_form_spell_check->input) {
                                        ispell_store_replacement(word, fl_get_input(fd_form_spell_check->input));
-                                       ReplaceWord(fl_get_input(fd_form_spell_check->input));
+                                       current_view->replaceWord(fl_get_input(fd_form_spell_check->input));
                                        break;
                                }
                                if (obj == fd_form_spell_check->browser) {
@@ -734,7 +734,7 @@ bool RunSpellChecker(string const & lang)
                                        if (clickline == 
                                            fl_get_browser(fd_form_spell_check->browser)) {
                                                ispell_store_replacement(word, fl_get_input(fd_form_spell_check->input));
-                                               ReplaceWord(fl_get_input(fd_form_spell_check->input));
+                                               current_view->replaceWord(fl_get_input(fd_form_spell_check->input));
                                                break;
                                        }
                                        clickline = fl_get_browser(fd_form_spell_check->browser);
index 1487e025a05188b15d6caf7709dfb0e138615d1a..65e0a8f973cfb1cd9619d181e29aac688a9a40d7 100644 (file)
@@ -4,21 +4,14 @@
 
 /* These functions are defined in lyx_cb.C */
 
-/** The returned word has to be deleted manually
- */
-char * NextWord(float & value);
-
 
 /** MarkLastWord should only be used immidiately after NextWord().
  If you give control back to the user, you _have_ to call EndOfSpellCheck()
  or SelectLastWord(), otherwise segfaults should appear.
  */
-void EndOfSpellCheck();
+//void EndOfSpellCheck();
 ///
-void SelectLastWord();
-///
-void ReplaceWord(string const & replacestringstring);
-
+//void SelectLastWord();
 
 /** This function has to be implemented by the spell checker.
     It will show the spellcheker form*/ 
index 49279b18793fccf3cb936706b65806dba823541e..7c44eedd9c5719e451be87d69b7c4a814c2e1407 100644 (file)
@@ -10,13 +10,22 @@ class block {
 public:
        typedef T value_type;
        typedef size_t size_type;
-       typedef value_type * pointer;
-       typedef value_type const * const_pointer;
-       typedef value_type & reference;
-       typedef value_type const & const_reference;
-       typedef value_type * iterator;
-       typedef value_type const * const_iterator;
+       typedef T * pointer;
+       typedef T const * const_pointer;
+       typedef T & reference;
+       typedef T const & const_reference;
+       typedef T * iterator;
+       typedef T const * const_iterator;
        size_type size() const { return s; }
+       operator T* () { return arr; }
+       reference at(int i) {
+               Assert(i >= 0 && i < s);
+               return arr[i];
+       }
+       const_reference at(int i) const {
+               Assert(i >= 0 && i < s);
+               return arr[i];
+       }
        reference operator[](int i) { return arr[i]; }
        const_reference operator[](int i) const { return arr[i]; }
        void operator=(block const & b) {
@@ -37,7 +46,7 @@ public:
        const_iterator begin() const { return arr[0]; }
        const_iterator end() const { return arr[s]; }
 private:
-       value_type arr[s + 1];
+       T arr[s];
 };
 
 #endif // BLOCK_H_
index 34d1aac5a6ce983d5a6d3a908881ec6792ec188e..5f3e939d2045c38d9c371d5ba3a8dcaad0a59151 100644 (file)
@@ -324,9 +324,21 @@ bool PutEnv(string const & envstr)
         //   Is doing a getenv() and a free() of the older value 
         //   a good idea? (JMarc)
        // Actually we don't have to leak...calling putenv like this
-       // should be enough:
+       // should be enough: ... and this is obviously not enough if putenv
+       // does not make a copy of the string. It is also not very wise to
+       // put a string on the free store. If we have to leak we should do it
+       // like this:
+       /*
+       char * leaker = new char[envstr.length() + 1];
+       envstr.copy(leaker, envstr.length());
+       leaker[envstr.length()] = '\0';
+       int retval = putenv(const_cast<PUTENV_TYPE_ARG>(leaker));
+       */
+
+       // If putenv does not make a copy of the char const * this
+       // is very dangerous. OTOH if it does take a copy this is the
+       // best solution.
        int retval = putenv(const_cast<PUTENV_TYPE_ARG>(envstr.c_str()));
-       //int retval = putenv(const_cast<PUTENV_TYPE_ARG>((new string(envstr))->c_str()));
 #else
 #ifdef HAVE_SETENV 
         string varname;
index 09cdb6a28b145042ac1d3d9feddb9c8b52ca403f..47ee77cdb1b32fc513f982c96bfc8b055ebae5ac 100644 (file)
@@ -146,11 +146,12 @@ string tostr(long i)
        char str[30];
        ostrstream oss(str, 30);
        oss << i << '\0';
+       return oss.str();
 #else
        ostringstream oss;
        oss << i;
+       return oss.str().c_str();
 #endif
-       return oss.str();
 }
 
 
@@ -160,11 +161,12 @@ string tostr(unsigned long i)
        char str[30];
        ostrstream oss(str, 30);
        oss << i << '\0';
+       return oss.str();
 #else
        ostringstream oss;
        oss << i;
+       return oss.str().c_str();
 #endif
-       return oss.str();
 }
 
 
@@ -204,11 +206,12 @@ string tostr(double d)
        char tmp[40];
        ostrstream oss(tmp, 40);
        oss << d << '\0';
+       return oss.str();
 #else
        ostringstream oss;
        oss << d;
+       return oss.str().c_str();
 #endif
-       return oss.str();
 }
 
 
index dfd8dd2a4a216c7ef9964c462ee0cc9ac42c9bc0..ae73c68b5b21707a00cfabf6d048986fafdbb10d 100644 (file)
@@ -36,7 +36,7 @@ extern int mono_video;
 extern int reverse_video;
 extern int fast_selection;
 extern BufferView * current_view;
-extern int UnlockInset(UpdatableInset * inset);
+//extern int UnlockInset(UpdatableInset * inset);
 
 // ale070405
 extern int bibitemMaxWidth(LyXFont const &);
@@ -1648,7 +1648,7 @@ void LyXText::TableFeatures(int feature)
       }
       case LyXTable::DELETE_ROW:
           if (current_view->the_locking_inset)
-              UnlockInset(current_view->the_locking_inset);
+              current_view->unlockInset(current_view->the_locking_inset);
           RemoveTableRow(&cursor);
           RedoParagraph();
           return;
@@ -1658,7 +1658,7 @@ void LyXText::TableFeatures(int feature)
           int cell_org = actCell;
           int cell = 0;
           if (current_view->the_locking_inset)
-              UnlockInset(current_view->the_locking_inset);
+              current_view->unlockInset(current_view->the_locking_inset);
           do {
               if (!pos || (cursor.par->IsNewline(pos-1))){
                   if (cursor.par->table->DeleteCellIfColumnIsDeleted(cell, cell_org)){
index c012715c5f2d0cf99cced906966f13df39969b32..7cd63f721d45de5d95caabe0553053afb843da9a 100644 (file)
@@ -1059,7 +1059,6 @@ void LyXText::ToggleFree(LyXFont font, bool toggleall)
 
        // Set font
        SetFont(font, toggleall);
-       //current_view->owner()->getMiniBuffer()->Set(_("Font style changed"));
 
        /* Implicit selections are cleared afterwards and cursor is set to the
           original position. */
index 26beac92ef2753463adbfbac375118410785afdc..286058d2cdba25917a90239b536f70c083ff0671 100644 (file)
@@ -18,7 +18,6 @@
 
 extern LyXRC * lyxrc;
 extern string DoAccent(string const &, tex_accent);
-extern void InsertCorrectQuote();
 extern string DoAccent(char, tex_accent);
 extern BufferView * current_view;
 
@@ -290,7 +289,7 @@ void TransManager::insertVerbatim(string const & str, LyXText * text)
                if (str[i] == '\"' 
                    && text->GetFont(text->cursor.par,
                                     text->cursor.pos).latex() == LyXFont::OFF)
-                       InsertCorrectQuote();
+                       current_view->insertCorrectQuote();
                else
                        text->InsertChar(str[i]);
        }