Commits

Anonymous committed 70ad990

Import from CVS: tag r21-0b47

Comments (0)

Files changed (120)

 							-*- indented-text -*-
+to 21.0 pre4 "Uzbek Black"
+-- Miscellaneous documentation cleanup from Altrasoft
+-- Updates for using emacsbug.el as primary bug report interface from
+   Hrvoje Niksic
+-- Russian TUTORIAL courtesy of Vladimir Bormotov
+-- Build and dump fixes for MS Windows from Jonathan Harris
+-- Modeline/Toolbar background color fix from Andy Piper
+-- Hook fix redux from Kyle Jones
+-- Patch for EFS for MS Windows NT native from Jonathan Harris
+-- various patches and manual changes from Adrian Aichner
+-- Miscellaneous hook patches from Kyle Jones
+-- Calendar manual updates from Jeff Miller
+-- various fixes from Martin Buchholz, Olivier Galibert, Michael Sperber
+-- Documentation cleanup by Michael Sperber
+-- Fix for customize breakage in MS Windows from Andy Piper
+-- Line-number mode tuning from Hrvoje Niksic
+-- Romanian Tutorial translation courtesy of Tudor Hulubei
+-- Romanian Tutorial integration from Altrasoft
+
 to 21.0 pre3 "Toggenburg"
 -- Configure changes to handle Berkeley DB 2 from Kazuyuki IENAGA and Martin
    Buchholz
 -- Cygwin font lossage fix from Andy Piper
 
 to 21.0 pre2 "Thuringian"
+-- MS Windows font fixes from Jonathan Harris
 -- MS Windows native build fixes from Fabrice POPINEAU
 -- Miscellaneous bug fixes
 -- Documentation updates
+1998-07-09  SL Baur  <steve@altair.xemacs.org>
+
+	* XEmacs 21.0-pre4 is released.
+
+	* configure.in: Fix test for InfoDock sources.
+
+	* etc/BETA (writing): Update patch creation instructions.
+
+	* etc/FTP: Update FTP mirror list.
+
+	* etc/DISTRIB: Remove duplicated FTP mirror list.
+	* etc/xemacs.1 (ftp): Ditto.
+
+1998-07-09  Oliver Graf <ograf@fga.de>
+
+	* configure.usage: added warning to --with-offix
+
+1998-06-29  SL Baur  <steve@altair.xemacs.org>
+
+	* etc/gnuserv.1 (this): Email address for Ben Wing is ben@xemacs.org.
+	* etc/gnuserv.README (README): Ditto.
+	* etc/xemacs-ja.1: Ditto.
+
+1998-06-28  SL Baur  <steve@altair.xemacs.org>
+
+	* configure.in: Berkeley DB autodetection fixes
+	From Martin Buchholz <martin@xemacs.org>
+
+	* etc/BABYL: Moved to rmail package
+
+	* etc/enriched.doc: Moved to xemacs-base package
+
+	* etc/MSDOS:
+	* etc/GNUS-NEWS: deleted
+
+1998-06-21  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* etc/NEWS: Added references to documentation about packages and
+	path setup.
+
+	* etc/README: Synched.
+
 1998-06-19  SL Baur  <steve@altair.xemacs.org>
 
 	* XEmacs 21.0-pre3 is released.
 
 
 if test "$with_infodock" = "yes"; then
-  if test ! -f ../InfoDock.rules; then
+  if test ! -f ../ID-INSTALL; then
     echo "Cannot build InfoDock without InfoDock sources"
     with_infodock=no
   fi
 fi
 
 if test "$with_database_berkdb" != "no"; then
-  echo $ac_n "checking for dbopen""... $ac_c" 1>&6
-echo "configure:10781: checking for dbopen" >&5
-
-cat > conftest.$ac_ext <<EOF
+  echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
+echo "configure:10781: checking for Berkeley db.h" >&5
+  for path in "db/db.h" "db.h"; do
+    cat > conftest.$ac_ext <<EOF
 #line 10784 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dbopen(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dbopen();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dbopen) || defined (__stub___dbopen)
-choke me
-#else
-dbopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:10807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_func_dbopen=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dbopen=no"
-fi
-rm -f conftest*
-
-if eval "test \"`echo '$ac_cv_func_'dbopen`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  with_database_berkdb=yes need_libdb=no
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for db_open""... $ac_c" 1>&6
-echo "configure:10824: checking for db_open" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10827 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char db_open(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char db_open();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_db_open) || defined (__stub___db_open)
-choke me
-#else
-db_open();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:10850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_func_db_open=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_db_open=no"
-fi
-rm -f conftest*
-
-if eval "test \"`echo '$ac_cv_func_'db_open`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  with_database_berkdb=yes need_libdb=no
-else
-  echo "$ac_t""no" 1>&6
-
-echo $ac_n "checking for dbopen in -ldb""... $ac_c" 1>&6
-echo "configure:10868: checking for dbopen in -ldb" >&5
-ac_lib_var=`echo db'_'dbopen | sed 'y%./+-%__p_%'`
-
-xe_check_libs=" -ldb "
-cat > conftest.$ac_ext <<EOF
-#line 10873 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dbopen();
-
-int main() {
-dbopen()
-; return 0; }
-EOF
-if { (eval echo configure:10884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-  with_database_berkdb=yes need_libdb=yes
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for db_open in -ldb""... $ac_c" 1>&6
-echo "configure:10902: checking for db_open in -ldb" >&5
-ac_lib_var=`echo db'_'db_open | sed 'y%./+-%__p_%'`
-
-xe_check_libs=" -ldb "
-cat > conftest.$ac_ext <<EOF
-#line 10907 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char db_open();
-
-int main() {
-db_open()
-; return 0; }
-EOF
-if { (eval echo configure:10918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-  with_database_berkdb=yes need_libdb=yes
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-
-fi
-
-fi
-
-
-  if test "$with_database_berkdb" = "yes"; then
-    for path in "db/db.h" "db.h"; do
-cat > conftest.$ac_ext <<EOF
-#line 10949 "configure"
-#include "confdefs.h"
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 
 ; return 0; }
 EOF
-if { (eval echo configure:10967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_path="$path"; break
 else
   cat conftest.$ac_ext >&5
 fi
 rm -f conftest*
-    done
-    test -z "$db_h_path" && with_database_berkdb=no
-  fi
+  done
+  if test -z "$db_h_path" 
+  then echo "$ac_t""no" 1>&6; with_database_berkdb=no
+  else echo "$ac_t""$db_h_path" 1>&6
+  fi
+
+  if test "$with_database_berkdb" != "no"; then
+    echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
+echo "configure:10818: checking for Berkeley DB version" >&5
+    cat > conftest.$ac_ext <<EOF
+#line 10820 "configure"
+#include "confdefs.h"
+#include <$db_h_path>
+#if DB_VERSION_MAJOR > 1
+yes
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  echo "$ac_t""2" 1>&6; dbfunc=db_open
+else
+  rm -rf conftest*
+  echo "$ac_t""1" 1>&6; dbfunc=dbopen
+fi
+rm -f conftest*
+
+    echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
+echo "configure:10839: checking for $dbfunc" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10842 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $dbfunc(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $dbfunc();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$dbfunc) || defined (__stub___$dbfunc)
+choke me
+#else
+$dbfunc();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$dbfunc=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$dbfunc=no"
+fi
+rm -f conftest*
+
+if eval "test \"`echo '$ac_cv_func_'$dbfunc`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  with_database_berkdb=yes need_libdb=no
+else
+  echo "$ac_t""no" 1>&6
+
+    
+echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
+echo "configure:10884: checking for $dbfunc in -ldb" >&5
+ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
+
+xe_check_libs=" -ldb "
+cat > conftest.$ac_ext <<EOF
+#line 10889 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $dbfunc();
+
+int main() {
+$dbfunc()
+; return 0; }
+EOF
+if { (eval echo configure:10900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  with_database_berkdb=yes need_libdb=yes
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+  fi
+
   if test "$with_database_berkdb" = "yes"; then
     { test "$extra_verbose" = "yes" && cat << EOF
     Defining DB_H_PATH = "$db_h_path"
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:11018: checking for SOCKSinit in -lsocks" >&5
+echo "configure:10964: checking for SOCKSinit in -lsocks" >&5
 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocks "
 cat > conftest.$ac_ext <<EOF
-#line 11023 "configure"
+#line 10969 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:11034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11091: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11094 "configure"
+echo "configure:11037: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11040 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:11130: checking for dlopen in -ldl" >&5
+echo "configure:11076: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldl "
 cat > conftest.$ac_ext <<EOF
-#line 11135 "configure"
+#line 11081 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11175: checking for _dlopen in -lc" >&5
+echo "configure:11121: checking for _dlopen in -lc" >&5
 ac_lib_var=`echo c'_'_dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 11180 "configure"
+#line 11126 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 _dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11220: checking for dlopen in -lc" >&5
+echo "configure:11166: checking for dlopen in -lc" >&5
 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 11225 "configure"
+#line 11171 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:11265: checking for shl_load in -ldld" >&5
+echo "configure:11211: checking for shl_load in -ldld" >&5
 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 11270 "configure"
+#line 11216 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:11281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:11310: checking for dld_init in -ldld" >&5
+echo "configure:11256: checking for dld_init in -ldld" >&5
 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 11315 "configure"
+#line 11261 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:11326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 dll_oflags="-o "
 
 echo $ac_n "checking how to build a shared library""... $ac_c" 1>&6
-echo "configure:11376: checking how to build a shared library" >&5
+echo "configure:11322: checking how to build a shared library" >&5
 case `uname -rs` in
 	UNIX_SV*|UNIX_System_V*)
 		dll_lflags="-G"
   for ac_func in dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11467: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11470 "configure"
+echo "configure:11413: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11416 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 
 ; return 0; }
 EOF
-if { (eval echo configure:11493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 11529 "configure"
+#line 11475 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:11533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:11479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   :
 else
 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
 
 if test "$with_infodock" = "yes"; then
-  if test ! -f ../InfoDock.rules; then
+  if test ! -f ../ID-INSTALL; then
     echo "Cannot build InfoDock without InfoDock sources"
     with_infodock=no
   fi
 fi
 
 if test "$with_database_berkdb" != "no"; then
-  AC_CHECK_FUNC(dbopen,     with_database_berkdb=yes need_libdb=no,
-  AC_CHECK_FUNC(db_open,    with_database_berkdb=yes need_libdb=no,
-  AC_CHECK_LIB(db, dbopen,  with_database_berkdb=yes need_libdb=yes,
-  AC_CHECK_LIB(db, db_open, with_database_berkdb=yes need_libdb=yes))))
-
-  if test "$with_database_berkdb" = "yes"; then
-    for path in "db/db.h" "db.h"; do
-AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
+  AC_MSG_CHECKING(for Berkeley db.h)
+  for path in "db/db.h" "db.h"; do
+    AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 typedef uint8_t  u_int8_t;
 #endif
 #include <$path>
 ],[], db_h_path="$path"; break)
-    done
-    test -z "$db_h_path" && with_database_berkdb=no
+  done
+  if test -z "$db_h_path" 
+  then AC_MSG_RESULT(no); with_database_berkdb=no
+  else AC_MSG_RESULT($db_h_path)
   fi
+
+  if test "$with_database_berkdb" != "no"; then
+    AC_MSG_CHECKING(for Berkeley DB version)
+    AC_EGREP_CPP(yes,
+[#include <$db_h_path>
+#if DB_VERSION_MAJOR > 1
+yes
+#endif
+], [AC_MSG_RESULT(2); dbfunc=db_open], [AC_MSG_RESULT(1); dbfunc=dbopen])
+    AC_CHECK_FUNC($dbfunc,     with_database_berkdb=yes need_libdb=no, [
+    AC_CHECK_LIB(db, $dbfunc,  with_database_berkdb=yes need_libdb=yes)])
+  fi
+
   if test "$with_database_berkdb" = "yes"; then
     AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path")
     AC_DEFINE(HAVE_BERKELEY_DB)
 				   and is considered experimental.
 --with-cde (*)		Compile in support for CDE drag and drop.
 --with-offix (*)	Compile in support for OffiX drag and drop.
+			*WARNING*  If you compile in OffiX, you may not be
+				   able to use multiple X displays success-
+				   fully.  If the two servers are from
+				   different vendors, the results may be
+				   unpredictable.
 --without-xmu (*)	For those unfortunates whose vendors don't ship Xmu.
 --external-widget	Compile with external widget support.
 --with-xpm (*)		Compile with support for XPM files.

etc/BABYL

-Format of Version 5 Babyl Files:
-
-Warning:
-
-    This was written Tuesday, 12 April 1983 (by Eugene Ciccarelli),
-based on looking at a particular Babyl file and recalling various
-issues.  Therefore it is not guaranteed to be complete, but it is a
-start, and I will try to point the reader to various Babyl functions
-that will serve to clarify certain format questions.
-
-    Also note that this file will not contain control-characters,
-but instead have two-character sequences starting with Uparrow.
-Unless otherwise stated, an Uparrow <character> is to be read as
-Control-<character>, e.g. ^L is a Control-L.
-
-Versions:
-
-    First, note that each Babyl file contains in its BABYL OPTIONS
-section the version for the Babyl file format.  In principle, the
-format can be changed in any way as long as we increment the format
-version number; then programs can support both old and new formats.
-
-    In practice, version 5 is the only format version used, and the
-previous versions have been obsolete for so long that Emacs does not
-support them.
-
-
-Overall Babyl File Structure:
-
-    A Babyl file consists of a BABYL OPTIONS section followed by
-0 or more message sections.  The BABYL OPTIONS section starts
-with the line "BABYL OPTIONS:".  Message sections start with
-Control-Underscore Control-L Newline.  Each section ends
-with a Control-Underscore.  (That is also the first character
-of the starter for the next section, if any.)  Thus, a three
-message Babyl file looks like:
-
-BABYL OPTIONS:
-...the stuff within the Babyl Options section...
-^_^L
-...the stuff within the 1st message section...
-^_^L
-...the stuff within the 2nd message section...
-^_^L
-...the stuff within the last message section...
-^_
-
-    Babyl is tolerant about some whitespace at the end of the
-file -- the file may end with the final ^_ or it may have some
-whitespace, e.g. a newline, after it.
-
-
-The BABYL OPTIONS Section:
-
-    Each Babyl option is specified on one line (thus restricting
-string values these options can currently have).  Values are
-either numbers or strings.  The format is name, colon, and the
-value, with whitespace after the colon ignored, e.g.:
-
-Mail: ~/special-inbox
-
-    Unrecognized options are ignored.
-
-    Here are those options and the kind of values currently expected:
-
-    MAIL		Filename, the input mail file for this
-			Babyl file.  You may also use several file names
-			separated by commas.
-    Version		Number.  This should always be 5.
-    Labels		String, list of labels, separated by commas.
-
-
-Message Sections:
-
-    A message section contains one message and information
-associated with it.  The first line is the "status line", which
-contains a bit (0 or 1 character) saying whether the message has
-been reformed yet, and a list of the labels attached to this
-message.  Certain labels, called basic labels, are built into
-Babyl in a fundamental way, and are separated in the status line
-for convenience of operation.  For example, consider the status
-line:
-
-1, answered,, zval, bug,
-
-    The 1 means this message has been reformed.  This message is
-labeled "answered", "zval", and "bug".  The first, "answered", is
-a basic label, and the other two are user labels.  The basic
-labels come before the double-comma in the line.  Each label is
-preceded by ", " and followed by ",".  (The last basic label is
-in fact followed by ",,".)  If this message had no labels at all,
-it would look like:
-
-1,,
-
-    Or, if it had two basic labels, "answered" and "deleted", it
-would look like:
-
-1, answered, deleted,, zval, bug,
-
-    The & Label Babyl Message knows which are the basic labels.
-Currently they are:  deleted, unseen, recent, and answered.
-
-    After the status line comes the original header if any.
-Following that is the EOOH line, which contains exactly the
-characters "*** EOOH ***" (which stands for "end of original
-header").  Note that the original header, if a network format
-header, includes the trailing newline.  And finally, following the
-EOOH line is the visible message, header and text.  For example,
-here is a complete message section, starting with the message
-starter, and ending with the terminator:
-
-^_^L
-1,, wordab, eccmacs,
-Date: 11 May 1982 21:40-EDT
-From: Eugene C. Ciccarelli <ECC at MIT-AI>
-Subject: notes
-To: ECC at MIT-AI
-
-*** EOOH ***
-Date: Tuesday, 11 May 1982  21:40-EDT
-From: Eugene C. Ciccarelli <ECC>
-To:   ECC
-Re:   notes
-
-Remember to pickup check at cashier's office, and deposit it
-soon.  Pay rent.
-^_
-
-;;; Babyl File BNF:
-
-;;; Overall Babyl file structure:
-
-
-Babyl-File	::= Babyl-Options-Section  (Message-Section)*
-
-
-;;; Babyl Options section:
-
-
-Babyl-Options-Section
-		::= "BABYL OPTIONS:" newline (Babyl-Option)* Terminator
-
-Babyl-Option	::= Option-Name ":" Horiz-Whitespace BOptValue newline
-
-BOptValue	::= Number | 1-Line-String
-
-
-
-;;; Message section:
-
-
-Message-Section	::= Message-Starter  Status-Line  Orig-Header
-		    EOOH-Line  Message  Terminator
-
-Message-Starter	::= "^L" newline
-
-Status-Line	::= Bit-Char  ","  (Basic-Label)* "," (User-Label)* newline
-
-Basic-Label	::= Space  BLabel-Name  ","
-
-User-Label	::= Space  ULabel-Name  ","
-
-EOOH-Line	::= "*** EOOH ***" newline
-
-Message		::= Visible-Header  Message-Text
-
-
-;;; Utilities:
-
-Terminator	::= "^_"
-
-Horiz-Whitespace
-		::= (Space | Tab)*
-
-Bit-Char	::= "0" | "1"
 Each patch will be reviewed by the patches review board, and will be
 acked and added to the distribution, or rejected with an explanation.
 
+Emailed patches should preferably be sent in MIME format and quoted
+printable encoding (if necessary).
+
 When making patches, please use the `-u' option, or if your diff
 doesn't support it, `-c'.  Using ordinary (context-free) diffs are
 notoriously prone to error, since line numbers tend to change when
 M-x cd to the appropriate directory, and issue the command `C-u M-!' from
 within XEmacs.
 
+Guidelines for writing ChangeLog entries is governed by the GNU coding 
+standards.  Please see
+	http://www.gnu.org/prep/standards_toc.html   [Change Logs section]
+for details.
+
+Patches should be as single-minded as possible.  Mammoth patches can
+be very difficult to place into the right slot.  They are much easier
+to deal with when broken down into functional or conceptual chunks.
+The patches submitted by Kyle Jones and Hrvoje Niksic are stellar
+examples of how to Do The Right Thing.
+
 ** Packages directory on the FTP Site
 =====================================
 
 in the directory /pub/xemacs/.
 
 ftp.xemacs.org is the primary distribution point, but you may find
-copies of it at other sites as well.  Some sites to try include:
-
-	ftp://ftp2.xemacs.org/pub/xemacs/
-	ftp://ftp.uu.net/systems/gnu/xemacs/
-	ftp://ftp.sunet.se/pub/gnu/xemacs/
-	ftp://ftp.cenatls.cena.dgac.fr/pub/Emacs/xemacs/
-	ftp://ftp.th-darmstadt.de/pub/editors/xemacs/
-	ftp://sunsite.doc.ic.ac.uk/gnu/xemacs/
-	ftp://ftp.ibp.fr/pub/emacs/xemacs/
-	ftp://uiarchive.cso.uiuc.edu/pub/packages/xemacs/
-	ftp://ftp.technion.ac.il/pub/unsupported/gnu/xemacs/
-	ftp://thphys.irb.hr/pub/xemacs/
-	ftp://sunsite.cnlab-switch.ch/mirror/xemacs/
-	ftp://ftp.unicamp.br/pub/xemacs/
-	ftp://ftp.usyd.edu.au/pub/Xemacs/
-	ftp://ftp.lab.kdd.co.jp/xemacs/
-	ftp://SunSITE.sut.ac.jp/pub/archives/packages/xemacs/
-	ftp://sunsite.icm.edu.pl/pub/unix/xemacs
+copies of it at other sites as well.  Please see the file FTP for mirrors.
 
 The most up-to-date list of distribution sites can always be found on
 the XEmacs WWW page, http://www.xemacs.org/.  Try to pick a site
 								-*- text -*-
 
-	   XEmacs availability information.  Last Modified: 19-Jun-1998.
+	   XEmacs availability information.  Last Modified: 9-Jul-1998.
 
 XEmacs is available via anonymous FTP from ftp.xemacs.org (207.96.122.8)
 in the directory /pub/xemacs/.
 copies of it at other sites as well.  Some sites to try include:
 
 	ftp://ftp.jaist.ac.jp/pub/GNU/xemacs/
+	ftp://ring.aist.go.jp/pub/text/xemacs/
+	ftp://ring.asahi-net.or.jp/pub/text/xemacs/
 	ftp://ftp.uu.net/systems/gnu/xemacs/
 	ftp://ftp.sunet.se/pub/gnu/xemacs/
 	ftp://ftp.cenatls.cena.dgac.fr/pub/Emacs/xemacs/

etc/GNUS-NEWS

-** Gnus changes.
-
-*** nntp.el has been totally rewritten in an asynchronous fashion.
-
-*** Article prefetching functionality has been moved up into 
-Gnus.  
-
-*** Scoring can now be performed with logical operators like 
-`and', `or', `not', and parent redirection.
-
-*** Article washing status can be displayed in the
-article mode line.
-
-*** gnus.el has been split into many smaller files.
-
-*** Suppression of duplicate articles based on Message-ID.
-
-(setq gnus-suppress-duplicates t)
-
-*** New variables for specifying what score and adapt files
-are to be considered home score and adapt files.  See
-`gnus-home-score-file' and `gnus-home-adapt-files'.
-
-*** Groups can inherit group parameters from parent topics.
-
-*** Article editing has been revamped and is now usable.
-
-*** Signatures can be recognized in more intelligent fashions.
-See `gnus-signature-separator' and `gnus-signature-limit'.
-
-*** Summary pick mode has been made to look more nn-like.
-Line numbers are displayed and the `.' command can be
-used to pick articles.
-
-*** Commands for moving the .newsrc.eld from one server to
-another have been added.
-
-    `M-x gnus-change-server'
-
-*** A way to specify that "uninteresting" fields be suppressed when
-generating lines in buffers.
-
-*** Several commands in the group buffer can be undone with
-`M-C-_'.
-
-*** Scoring can be done on words using the new score type `w'.
-
-*** Adaptive scoring can be done on a Subject word-by-word basis:
-
-    (setq gnus-use-adaptive-scoring '(word))
-
-*** Scores can be decayed.
- 
-    (setq gnus-decay-scores t)
-
-*** Scoring can be performed using a regexp on the Date header.  The
-Date is normalized to compact ISO 8601 format first.
-
-*** A new command has been added to remove all data on articles from
-the native server.
-
-   `M-x gnus-group-clear-data-on-native-groups'
-
-*** A new command for reading collections of documents
-(nndoc with nnvirtual on top) has been added -- `M-C-d'.
-
-*** Process mark sets can be pushed and popped.
-
-*** A new mail-to-news backend makes it possible to post
-even when the NNTP server doesn't allow posting.
-
-*** A new backend for reading searches from Web search engines
-(DejaNews, Alta Vista, InReference) has been added.
-
-    Use the `G w' command in the group buffer to create such
-    a group.
-
-*** Groups inside topics can now be sorted using the standard
-sorting functions, and each topic can be sorted independently.
-
-    See the commands under the `T S' submap.
-
-*** Subsets of the groups can be sorted independently.
-
-    See the commands under the `G P' submap.
-
-*** Cached articles can be pulled into the groups.
-  
-    Use the `Y c' command.
-
-*** Score files are now applied in a more reliable order.
-
-*** Reports on where mail messages end up can be generated.
-
-    `M-x nnmail-split-history'
-
-*** More hooks and functions have been added to remove junk
-from incoming mail before saving the mail.
- 
-    See `nnmail-prepare-incoming-header-hook'.
-
-*** The nnml mail backend now understands compressed article files.
-

etc/MSDOS

-XEmacs does not work under MSDOS.  If you would be interested in porting
-XEmacs to MSDOS, please contact Steve Baur <steve@altair.xemacs.org>.
-
-As of 20.1 the old Emacs files have been removed from the XEmacs
-distribution.  Interested parties should probably grab updated versions
-from a current Emacs distribution.
 ========================
 
 ** XEmacs has been unbundled into constituent installable packages.
-See the file `etc/PACKAGES' in the distribution for a full
-description.
+See the Info documentation under "Packages" for more information.
+See the file `etc/PACKAGES' in the distribution for a partial list of
+packages available at the time of the 21.0 release.
 
 ** XEmacs is now supported under Microsoft Windows 95/98 and Windows
 NT operating systems.  For starters, look at the XEmacs on Windows FAQ
 ** The `imenu' package has been ported to XEmacs and is available as a
 package.
 
-** Horizontally split windows are now draggable.
-
 ** `echo-keystrokes' can now be a floating-point number, so that you
 can set it to intervals shorter than one second.
 
 ** The `C-h c' command, when given a prefix argument, will now insert
 the message into the current buffer.
 
-** Horizontally split windows may now be dragged using the mouse.  The
-draggable vertical dividers may be turned off using the
-`vertical-divider-draggable-p' specifier.
+** Horizontally split windows may now be dragged using the mouse.
+Because of this, the dividers between vertical windows are always
+visible.  To turn it off, set `vertical-divider-always-visible-p' to
+nil.
 
 ** XEmacs/Mule (internationalization) changes.
 
 If you want spaces at the beginning of a line to start a paragraph,
 use the new mode, Paragraph Indent Text mode.
 
+** Changes to Gnus, the XEmacs newsreader.
+
+*** New functionality for using Gnus as an offline newsreader has been
+added.  A plethora of new commands and modes have been added.  See the
+Gnus manual for the full story.
+
+*** The nndraft backend has returned, but works differently than
+before.  All Message buffers are now also articles in the nndraft
+group, which is created automatically.
+
+*** `gnus-alter-header-function' can now be used to alter header
+values.
+
+*** `gnus-summary-goto-article' now accept Message-ID's.
+
+*** A new Message command for deleting text in the body of a message
+outside the region: `C-c C-v'.
+
+*** You can now post to component group in nnvirtual groups with
+`C-u C-c C-c'.
+
+*** `nntp-rlogin-program' -- new variable to ease customization.
+
+*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit
+re-highlighting of the article buffer.
+
+*** New element in `gnus-boring-article-headers' -- `long-to'.
+
+*** `M-i' symbolic prefix command.  See the section "Symbolic
+Prefixes" in the Gnus manual for details.
+
+*** `L' and `I' in the summary buffer now take the symbolic prefix
+`a' to add the score rule to the "all.SCORE" file.
+
+*** `gnus-simplify-subject-functions' variable to allow greater
+control over simplification.
+
+*** `A T' -- new command for fetching the current thread.
+
+*** `/ T' -- new command for including the current thread in the
+limit.
+
+*** `M-RET' is a new Message command for breaking cited text.
+
+*** \\1-expressions are now valid in `nnmail-split-methods'.
+
+*** The `custom-face-lookup' function has been removed.  
+If you used this function in your initialization files, you must
+rewrite them to use `face-spec-set' instead.
+
+*** Cancelling now uses the current select method.  Symbolic prefix
+`a' forces normal posting method.
+
+*** New command to translate M******** sm*rtq**t*s into proper text
+-- `W d'.
+
+*** For easier debugging of nntp, you can set `nntp-record-commands'
+to a non-nil value.
+
+*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling
+where and how to send AUTHINFO to NNTP servers.
+
+*** A command for editing group parameters from the summary buffer
+has been added.
+
+*** A history of where mails have been split is available.
+
+*** A new article date command has been added -- `article-date-iso8601'.
+
+*** Subjects can be simplified when threading by setting
+`gnus-score-thread-simplify'.
+
+*** A new function for citing in Message has been added --
+`message-cite-original-without-signature'.
+
+*** `article-strip-all-blank-lines' -- new article command.
+
+*** A new Message command to kill to the end of the article has
+been added.
+
+*** A minimum adaptive score can be specified by using the
+`gnus-adaptive-word-minimum' variable.
+
+*** The "lapsed date" article header can be kept continually
+updated by the `gnus-start-date-timer' command.
+
+*** Web listserv archives can be read with the nnlistserv backend.
+
+*** Old dejanews archives can now be read by nnweb.
+
+*** Byte-compilation of user-specs now works under XEmacs.
+
 ** The `dir' files are no longer essential for functioning of the Info
 subsystem.  If the `dir' file does not exist in an Info directory, the
 relevant information will be generated on-the-fly.
 use of X resources.
 
 *** The new draggable vertical dividers between windows may be turned
-off using the `vertical-divider-draggable-p' specifier.  When this is
-set to nil, the vertical dividers between windows are shown only when
-needed, and they are not draggable.
+off using the `vertical-divider-always-visible-p' specifier.  When
+this is set to nil, the vertical dividers between windows are shown
+only when needed, and they are not draggable.
 
 Other properties of the vertical dividers may be controlled using
 `vertical-divider-shadow-thickness', `vertical-divider-line-width' and 
 
 ** The code XEmacs uses to assemble its various paths into the
 directory hierarchy has been rewritten to support the package system.
+Look under "Startup Paths" in the Info documentation for more
+information.
 
 *** site-lisp is now longer part of the load-path by default.
 Its use is deprecated, but you can specify --with-site-lisp=yes at the
 of interest to XEmacs users, some programs used by or with XEmacs, and
 the file of on-line documentation for XEmacs.
 
-BABYL			A description of BABYL file format
+BETA			Information about Beta versions
+CHARSETS		Character set descriptions
 CODING-STANDARDS	XEmacs C & Lisp coding standards
+CODINGS			Character set codings
 COOKIES			Urban Legend, or True Story? :-)
 COPYING			GNU Public License
 COPYING.LIB		Library GNU Public License
 Emacs.ad		Sample Resource file
 FTP			XEmacs FTP Mirrors
 GNU			GNU Manifesto
-GNUS-NEWS		New features in Gnus-5.4
+GOATS			Complete XEmacs internals documentation
+InstallGuide		Fast track to installation
 LPF			Information about the League for Programming Freedom
 MACHINES		List of known machines configurations (OLD)
 MAILINGLISTS		List of available Mailing lists
-MH-E-NEWS		List of changes to MH-E to version 5.0.
 MORE.STUFF		List of useful unbundled packages
-MSDOS			Status of MSDOS port
-NEWS			XEmacs 20.3 release information
+NEWS			XEmacs 21.0 release information
 ORDERS
 ORDERS.EUROPE
-ORDERS.JAPAN
-OTHER.EMACSES		Order forms for GNU software
+ORDERS.JAPAN		Order forms for GNU software
+PACKAGES		List of packages available for 21.0 release
 README			This file
+README.HYPERBOLE
+README.OO-BROWSER	How to obtain Hyperbole and the OO-Browser
 SERVICE			How to obtain paid support for free software
 TERMS			Information about termcap entries
-TUTORIAL		Tutorial for first time users
+TUTORIAL		Tutorial for first time users (English version)
+TUTORIAL.*		Tutorials in non-English languages
 XKeysymDB		X Keysym Database with Motif bindings
-app-defaults/		Localization resource files (Japanese only)
-auctex/			AUC TeX style files
-*.Z			Various pictures of XEmacs developers
-categories		XEmacs GNATS bug report categories
+aliases.sh		Useful shell aliases
+cbx.png			"Created by XEmacs" logo
+check_cygwin_setup.sh	Script to check for presence of Cygwin
 ctags.1			Ctags man page
 custom/			Images used in Custom mode
-e/			Emacs terminal types
-edt-user.doc		Information about EDT mode
+editclient.sh		Either start up XEmacs or connect to a running one
 emacskeys.sco		
 emacsstrs.sco		Special files for running on an SCO console
-enriched.doc		Information about Enriched mode
 eos/			Images for EOS support (GUD)
 etags.1			Etags man page
-frame-icon/		Images for frame-icon.el
-gnats/			XEmacs GNATS bug report support files
 gnu.xbm			
 gnu.xpm			Image of a Gnu.
 gnuattach.1		Gnuattach man page
 gnuclient.1		Gnuclient man page
 gnudoit.1		Gnudoit man page
-gnus/			Images for the Gnus News & Mail reader
-gnus-refcard.tex	Gnus reference card (refcard.tex in Gnus distribution)
-gnus-tut.txt		Gnus tutorial
 gnuserv.1		Gnuserv man page
 gnuserv.README		Original README file from gnuserv
 gnusref.tex		Gnus reference card
 gray1.xbm		Gray bitmap
-hypb-mouse.txt		Hyperbole mouse reference
-ida-logo.xpm		InfoDock Associates logo
-ledit.l			Ledit lisp file?
-message/		Images for Message mode
-mine/			Images for Xmine game
 ms-kermit
 ms-kermit-7bit		Files for running XEmacs through kermit
-mule/			MULE documentation (OLD)
+photos/*.Z		Various pictures of XEmacs developers
 recycle.xpm
 recycle2.xpm		Two versions of oversized Recycle cursor
-refcard.ps		Postscript version of XEmacs reference card
+refcard.ps.gz		Postscript version of XEmacs reference card
 refcard.tex		XEmacs reference card
 sample.Xdefaults	Example ~/.Xdefaults file
 sample.emacs		Example ~/.emacs file
-sgml/			SGML catalog, DTDs, etc.
 sink.xbm		A Gnu icon
-smilies/		Smiley images for smiley.el
-sounds/			Sound files for sound support
 sparcworks/		Support files for Sparcworks
-spook.lines		Keywords that might trip TLA wiretaps
 tests/			Testcases for external widget
 time/			Image files for display-time
 toolbar/		Image files for the toolbar
 trash.xpm		Garbage can icon
-viperCard.tex		Viper reference card
-vm/			Image files for VM mail reader
-w3/			Image files for W3 browser
+xemacs-beta.xpm		XEmacs Beta logo
+xemacs-fe.sh		XEmacs frontend driver
 xemacs-icon.xpm
 xemacs-icon2.xbm
 xemacs-icon2.xpm
 xemacs-icon3.xpm	Various versions of an XEmacs WM icon
+xemacs-ja.1		Japanese XEmacs man page
 xemacs.1		XEmacs man page
 xemacs.xbm
 xemacs.xpm		XEmacs logo used on the splash screen
-yow.lines		Database used by yow.el
+Copyright (c) 1998 Tudor Hulubei <tudor@gnu.org>
+Mul�umiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi �i sugestii.
+
+A se citi sf�r�itul pentru condi�ii.
+
+Aceast� versiune a fost produs� plec�nd de la versiunea �n limba
+englez�, care este
+Copyright (c) 1985, 1996 Free Software Foundation, Inc.
+
+Citi�i acum versiunea rom�neasc� a tutorialului de Emacs.
+
+Comenzile Emacs folosesc �n general tasta CONTROL (uneori denumit�
+CTRL sau CTL) sau tasta META.  Pe unele tastaturi, tasta META este
+etichetat� ALT, EDIT sau �n alt fel (de exemplu, pe tastaturile Sun,
+tasta META este etichetat� cu un diamant �i se g�se�te la st�nga
+tastei spa�iu).  Dac� nu ave�i o tast� META, pute�i folosi ESC �n loc.
+�n loc s� scriem META sau CONTROL de fiecare dat� c�nd vrem s�
+prefix�m un caracter, vom folosi urm�toarele prescurt�ri:
+
+ C-<chr> �nseamn� c� �ine�i ap�sat� tasta CONTROL �n timp ce tasta�i
+	 caracterul <chr>.  Astfel, C-f �nseamn�: �ine�i ap�sat� tasta
+	 CONTROL �i tasta�i f.
+
+ M-<chr> �nseamn� c� �ine�i ap�sat� tasta META �n timp ce tasta�i
+	 <chr>.  Dac� nu exist� tasta META, tasta�i <ESC>, ridica�i �i
+	 apoi tasta�i caracterul <chr>.
+
+Observa�ie important�: pentru a termina sesiunea Emacs, tasta�i C-x
+C-c.  (Dou� caractere.)  Caracterele ">>" la marginea din st�nga
+reprezint� instruc�iuni pentru a �ncerca o comand�.  De exemplu:
+<<Mijlocul paginii e gol din ra�iuni didactice.  Textul continu� dedesubt.>>
+>> Acum tasta�i C-v (citirea urm�torului ecran) pentru a v� muta la
+   urm�torul ecran.  (Executa�i aceast� comand� acum, tin�nd ap�sat�
+   tasta CONTROL �n timp ce tasta�i v).  De acum �nainte face�i acest
+   lucru din nou, de fiecare dat� c�nd termina�i de citit ecranul.
+
+De remarcat c� exist� o zon� de suprapunere de dou� linii c�nd v�
+muta�i de la un ecran la altul; ave�i astfel o oarecare continuitate
+�n citirea textului.
+
+Primul lucru pe care trebuie s�-l sti�i este cum s� v� deplasa�i din
+loc �n loc �n text.  �ti�i deja cum s� v� muta�i la urm�torul ecran cu
+C-v.  Pentru a v� deplasa �napoi un ecran, tasta�i M-v (�ine�i ap�sat�
+tasta META �i tasta�i v, sau <ESC>v dac� nu ave�i o tast� META, EDIT,
+sau ALT).
+
+>> �ncerca�i s� tasta�i M-v �i apoi C-v de c�teva ori.
+
+
+* SUMAR
+-------
+
+Urm�toarele comenzi sunt utile pentru a vedea ecrane:
+
+	C-v	avanseaz� un ecran
+	M-v	�napoi un ecran
+	C-l	�terge ecranul �i reafi�eaz� totul pozi�ion�nd textul
+		de l�ng� cursor �n centrul ecranului.  (Este C-L, nu
+		C-1.)
+
+>> G�si�i cursorul �i �ine�i minte ce text este �n jurul lui.
+   Apoi tasta�i C-l.  G�si�i cursorul din nou �i observa�i c� textul
+   de l�ng� cursor este acela�i.
+
+
+* COMENZI DE BAZ� PENTRU CONTROLUL CURSORULUI
+---------------------------------------------
+
+Mutatul ecran cu ecran este util, dar cum v� muta�i la o anumit�
+pozi�ie �n textul de pe ecran?
+
+Sunt mai multe modalita�i �n care pute�i face acest lucru.  Cel mai
+simplu este s� folosi�i comenzile C-p, C-b, C-f �i C-n.  Fiecare din
+aceste comenzi mut� cursorul o linie sau coloan� �ntr-o anumit�
+direc�ie pe ecran.  Diagrama urm�toare prezint� aceste patru comenzi
+�i arat� direc�iile �n care ele mut� cursorul.
+
+			 Linia precedent�, C-p
+				  :
+				  :
+    �napoi, C-b .... Pozi�ia curent� a cursorului .... �nainte, C-f
+				  :
+				  :
+			 Linia urm�toare, C-n
+
+>> Muta�i cursorul la linia din mijlocul diagramei folosind C-n sau
+   C-p.  Tasta�i apoi C-l pentru a vedea �ntreaga diagram� centrat� pe
+   ecran.
+
+Vi se va p�rea probabil mai simplu s� v� aminti�i aceste comenzi
+g�ndindu-v� la semnifica�ia lor �n limba englez�: P pentru previous, N
+pentru next, B pentru backward �i F pentru forward.  Acestea sunt
+comenzile de baz� pentru pozi�ionarea cursorului �i le ve�i folosi tot
+timpul, deci ar fi foarte util s� le �nv��a�i acum.
+
+>> Tasta�i c�teva C-n-uri pentru a aduce cursorul la aceast� linie.
+
+>> Muta�i-v� �n interiorul liniei cu C-f-uri �i apoi �n sus cu
+   C-p-uri.  Urm�ri�i ce face C-p atunci c�nd cursorul este �n
+   mijlocul liniei.
+
+Fiecare linie se termin� cu un caracter NEWLINE care o separ� de linia
+urm�toare.  Ultima linie �n fi�ierele dumneavoastr� ar trebui s� aib�
+un asemenea caracter la sf�r�it (de�i Emacs-ul nu-l necesit�).
+
+>> �ncerca�i s� tasta�i C-b la �nceputul unei linii.  Cursorul ar
+   trebui s� se mute la sf�r�itul liniei precedente, din cauza
+   trecerii peste caracterul NEWLINE.
+
+C-f poate s� treac� peste un caracter NEWLINE, la fel ca �i C-b.
+
+>> Tasta�i c�teva C-b-uri, pentru a v� familiariza cu pozi�ia
+   cursorului.  Tasta�i apoi c�teva C-f-uri pentru a v� �ntoarce la
+   sf�r�itul liniei.  �nc� un C-f �i v� ve�i muta la linia urm�toare.
+
+C�nd ajunge�i s� trece�i peste �nceputul sau sf�r�itul ecranului,
+textul aflat dincolo de margine intr� �n ecran, permi��ndu-i
+Emacs-ului s� mute cursorul la pozi�ia specificat�, f�r� a ie�i din
+zona vizibil� (ecran).  Aceast� opera�iune se numeste �n limba englez�
+"scrolling".
+
+>> �ncerca�i s� muta�i cursorul �n afara p�r�ii de jos a ecranului cu
+   C-n �i observa�i ce se �ntampl�.
+
+Dac� mutatul caracter cu caracter este lent, pute�i muta cursorul
+cuv�nt cu cuv�nt.  M-f (META-f) avanseaz� cursorul cu un cuv�nt, iar
+M-b mut� cursorul un cuv�nt �napoi.
+
+>> Tasta�i c�teva M-f-uri �i apoi c�teva M-b-uri.
+
+C�nd cursorul este �n mijlocul unui cuv�nt, M-f �l mut� la sf�r�itul
+cuv�ntului.  C�nd cursorul este �n spa�iul dintre cuvinte, M-f �l mut�
+la sf�r�itul cuv�ntului urm�tor.  M-b ac�ioneaz� similar, dar �n
+direc�ia opus�.
+
+>> Tasta�i M-f �i M-b de c�teva ori, intercalate cu C-f-uri �i
+   C-b-uri, pentru a observa efectul comenzilor M-f �i M-b din diverse
+   pozi�ii �n interiorul cuvintelor �i �ntre ele.
+
+Observa�i paralela �ntre C-f �i C-b pe de o parte, �i M-f �i M-b pe de
+cealalt� parte.  De multe ori, caracterele META sunt folosite pentru
+opera�ii referitoare la unit��ile definite de limbaj (cuvinte, fraze,
+paragrafe), �n timp ce caracterele CONTROL opereaz� pe unit��i de
+baz�, care sunt independente de tipul textului editat (caractere,
+linii, etc).
+
+Aceast� paralel� se aplic� �i �ntre linii �i fraze: C-a �i C-e mut�
+cursorul la �nceputul �i, respectiv sf�r�itul unei linii, �n timp ce
+M-a �i M-e �l mut� la �nceputul �i, respectiv sf�r�itul unei fraze.
+
+>> �ncerca�i c�teva C-a-uri, apoi c�teva C-e-uri.
+   �ncerca�i c�teva M-a-uri, apoi c�teva M-e-uri.
+
+Remarca�i cum repetarea tast�rii lui C-a nu schimb� nimic, �n timp ce
+repetarea tast�rii lui M-a mut� cursorul la fraza urm�toare.  De�i
+aceste opera�ii nu sunt tocmai analoage, fiecare pare natural�.
+
+Pozi�ia cursorului �n text mai este numit� �i "punct" ("point" �n
+limba englez�).  Cursorul arat� pe ecran pozi�ia punctului �n text.
+
+Opera�iile ce mut� cursorul (inclusiv comenzile ce mut� cursorul
+cuv�nt cu cuv�nt sau fraz� cu fraz�) sunt prezentate �n sumarul
+urm�tor:
+
+	C-f	avanseaz� un caracter
+	C-b	�napoi un caracter
+
+	M-f	avanseaz� un cuv�nt
+	M-b	�napoi un cuv�nt
+
+	C-n	avanseaz� o linie
+	C-p	�napoi o linie
+
+	C-a	�napoi la �nceputul liniei
+	C-e	avanseaz� la sf�r�itul liniei
+
+	M-a	�napoi la �nceputul frazei
+	M-e	avanseaz� la sf�r�itul frazei
+
+>> Exersa�i toate aceste comenzi acum, sunt comenzile cele mai des
+   folosite.
+
+Dou� alte comenzi importante legate de mutatul cursorului sunt M-<
+(META Mai-mic), care mut� cursorul la �nceputul textului, �i M-> (META
+Mai-mare), care mut� cursorul la sf�r�itul textului.
+
+Pe majoritatea terminalelor "<" este deasupra virgulei �i deci este
+necesar s� ap�sa�i tasta SHIFT �n acela�i timp.  Pe aceste terminale
+este nevoie s� ap�sa�i SHIFT �i c�nd tasta�i M-<; f�r� tasta SHIFT,
+a�i ap�sa M-virgul�.
+
+>> �ncerca�i M-< acum, pentru a v� muta la �nceputul tutorialului.
+   Folosi�i apoi C-v �n mod repetat pentru a ajunge �napoi aici.
+
+>> �ncerca�i M-> acum, pentru a v� muta la sf�r�itul tutorialului.
+   Folosi�i apoi M-v repetat pentru a ajunge �napoi aici.
+
+Pute�i de asemenea s� muta�i cursorul cu tastele s�ge�i, dac�
+terminalul are asemenea taste.  Se recomand� �ns� acomodarea cu C-b,
+C-f, C-n �i C-p din trei motive.  �n primul r�nd, aceste taste
+func�ioneaz� pe toate tipurile de terminale.  �n al doilea r�nd, odat�
+ce v� obi�nui�i cu Emacs-ul, ve�i remarca faptul c� tastarea lor este
+mai rapid� dec�t cea a tastelor s�ge�i (pentru c� nu trebuie s� v�
+schimba�i pozi�ia m�inilor pe tastatur�).  �n al treilea r�nd, odat�
+format obiceiul de a folosi aceste comenzi bazate pe CONTROL,
+comenzile avansate de mutat cursorul se �nva�� foarte u�or.
+
+Majoritatea comenzilor Emacs accept� un argument numeric; pentru
+majoritatea comenzilor, acest argument reprezint� un contor de
+repeti�ie.  Contorul de repeti�ie se introduce tast�nd C-u, cifrele ce
+alc�tuiesc contorul �i apoi comanda.  Dac� ave�i tasta META (EDIT sau
+ALT), exist� �i o alt� alternativ� pentru a introduce un argument
+numeric: tasta�i cifrele �n timp ce �ine�i tasta META ap�sat�.  Se
+recomand� �ns� folosirea metodei cu C-u, deoarece func�ioneaz� pe
+orice terminal.
+
+De exemplu, C-u 8 C-f avanseaz� cursorul cu opt caractere.
+
+>> �ncerca�i s� folosi�i C-n sau C-p cu un argument numeric pentru a
+   muta cursorul dintr-o singur� comand� pe o linie apropiat� de
+   aceasta.
+
+Majoritatea comenzilor utilizeaz� argumentul numeric ca un contor de
+repetitie.  Anumite comenzi speciale �l folosesc �nsa �n mod diferit.
+C-v si M-v sunt printre aceste excep�ii.  C�nd li se d� un argument
+numeric, ele mut� ecranul mai sus sau mai jos cu numarul specificat de
+linii, nu de ecrane.  De exemplu, C-u 4 C-v mut� ecranul cu 4 linii.
+
+>> �ncerca�i s� tasta�i C-u 8 C-v acum.
+
+Aceast� comand� trebuie s� mute ecranul �n sus cu 8 linii.  Dac�
+doriti s� �l muta�i �napoi, pute�i s�-i da�i lui M-v un argument
+numeric.
+
+Dac� folosi�i sistemul X Window, exist� probabil o zon� rectangular�
+numita "scroll bar" la dreapta ferestrei Emacs-ului.  Pute�i deplasa
+textul manipul�nd "scroll bar"-ul cu mouse-ul.
+
+>> �ncerca�i s� ap�sa�i butonul din mijloc al mouse-ului la mijlocul
+   butonului din scroll bar.  Aceasta ar trebui s� mute textul la o
+   pozi�ie determinat� de c�t de sus sau de jos a�i ap�sat pe scroll
+   bar.
+
+>> Muta�i mouse-ul �ntr-un punct �n scroll bar la aproximativ trei
+   linii de �nceput �i ap�sa�i butonul din st�nga de c�teva ori.
+
+
+* CONTROLUL CURSORULUI �NTR-UN TERMINAL X
+-----------------------------------------
+
+Dac� ave�i un terminal X, vi se va p�rea probabil mai u�or s� folosi�i
+tastele de pe keypad pentru a controla cursorul.  S�ge�ile st�nga,
+dreapta, sus �i jos mut� cursorul �n direc�ia specificat�;
+func�ioneaza exact ca �i C-b, C-f, C-p �i C-n, dar sunt mai u�or de
+tastat �i re�inut.  Pute�i folosi de asemenea C-st�nga �i C-dreapta
+pentru a v� deplasa cuv�nt cu cuv�nt, �i C-sus �i C-jos, pentru a v�
+deplasa bloc cu bloc (de ex. paragraf cu paragraf, dac� edita�i text).
+Dac� tastatura are taste etichetate HOME (sau BEGIN) �i END, acestea
+v� vor muta la �nceputul, respectiv sf�r�itul liniei, iar C-home �i
+C-end v� vor muta la �nceputul, respectiv sf�r�itul fi�ierului.  Dac�
+tastatura are taste etichetate PgUp �i PgDn, acestea v� vor muta ecran
+cu ecran, exact ca M-v �i C-v.
+
+Toate aceste comenzi accept� argument numeric, a�a cum am explicat mai
+sus.  Pute�i folosi o modalitate mai simpl� de a-l introduce: �ine�i
+ap�sat� tasta CONTROL sau tasta META �i tasta�i num�rul.  De exemplu,
+pentru a v� muta 12 cuvinte la dreapta, tasta�i C-1 C-2 C-dreapta.  De
+remarcat faptul c� este foarte u�or s� tasta�i, pentru c� nu trebuie
+s� ridica�i tasta CONTROL.
+
+
+* C�ND EMACS-ul ESTE BLOCAT
+---------------------------
+
+Dac� Emacs-ul �nceteaz� s� v� raspund� la comenzi, �l pute�i opri,
+f�r� s� pierde�i modific�rile f�cute p�n� atunci, tast�nd C-g.  Pute�i
+folosi C-g pentru a opri o comand� care dureaz� prea mult.
+
+Pute�i de asemenea folosi C-g pentru a opri introducerea unui argument
+numeric sau �nceputul unei comenzi pe care nu dori�i s� o continua�i.
+
+>> Tasta�i C-u 100 pentru a introduce 100 ca un argument numeric, apoi
+   tasta�i C-g.  Tasta�i apoi C-f.  Cursorul ar trebui s� se mute un
+   singur caracter, pentru c� a�i oprit introducerea argumentului
+   numeric cu C-g.
+
+Dac� a�i tastat un <ESC> din gre�eal�, pute�i s�-l anula�i cu un C-g.
+
+
+* COMENZI DEZAFECTATE
+---------------------
+
+Anumite comenzi sunt dezafectate �n Emacs, �n a�a fel �nc�t
+utilizatorii s� nu le poat� folosi din neaten�ie.
+
+Dac� tasta�i una din comenzile dezafectate, Emacs-ul va afi�a un mesaj
+spun�nd ce comand� a�i tastat �i �ntreb�ndu-v� dac� dori�i s�
+continua�i.
+
+Dac� �ntr-adev�r dori�i s� �ncerca�i comanda respectiv�, tasta�i
+SPA�IU.  �n mod normal, dac� nu dori�i s� executa�i comanda
+dezafectat�, r�spunde�i cu "n".
+
+>> Tasta�i `C-x n p' (care este o comand� dezafectat�), apoi tasta�i n
+   ca r�spuns la �ntrebarea pus� de Emacs.
+
+
+* FERESTRE
+----------
+
+Emacs-ul poate avea mai multe ferestre, fiecare afi��nd propriul s�u
+text.  De remarcat c� "fereastr�" �n sensul folosit de Emacs nu se
+refer� la ferestrele ce se pot suprapune �ntr-un sistem bazat pe
+ferestre (cum ar fi X Window System), ci la sec�iuni separate �ntr-o
+singur� fereastr� X.  (Emacs-ul poate avea multiple ferestre X -
+"frame"-uri �n terminologia Emacs.  Acestea vor fi descrise mai
+t�rziu.)
+
+�n acest moment este mai bine s� nu detaliem tehnicile de folosire a
+ferestrelor multiple, dar trebuie s� �ti�i cum s� �nchide�i ferestrele
+care ar putea apare ca rezultat al afi��rii unor documenta�ii sau
+rezultate specifice anumitor comenzi.  Este simplu:
+
+	C-x 1   o singur� fereastr� (adic� �nchide toate celelalte
+		ferestre).
+
+Asta �nseamn� CONTROL-x urmat de cifra 1.  C-x 1 m�re�te fereastra
+care con�ine cursorul p�n� c�nd ocup� �ntregul ecran.  Toate celelalte
+ferestre sunt distruse.
+
+>> Muta�i cursorul la aceast� linie �i tasta�i C-u 0 C-l.
+
+(Dup� cum v� aminti�i, C-l redeseneaz� ecranul.  Un argument numeric
+�nseamn� "redeseneaz� ecranul �i pune linia curent� la o distan�� (�n
+num�r de linii) de partea de sus a ecranului egal� cu argumentul
+numeric".  �n concluzie, C-u 0 C-l �nseamn� "redeseneaz� ecranul,
+pozi�ion�nd linia curent� la �nceput.")
+
+>> Tasta�i C-x 2.  Observa�i cum aceast� fereastr� se mic�oreaz�, �n
+   timp ce o nou� fereastr� apare, afi��nd acela�i text.
+
+>> Tasta�i C-x 1 �i observa�i cum noua fereastr� dispare.
+
+
+* INTRODUCEREA �I �TERGEREA
+---------------------------
+
+Dac� vre�i s� introduce�i text, pur �i simplu tasta�i textul dorit.
+Caracterele pe care le pute�i vedea, cum ar fi A, 7, *, etc. sunt
+interpretate de Emacs ca text �i introduse imediat.  Tasta�i <Return>
+(tasta mai este etichetat� <Enter> uneori) pentru a introduce un
+caracter NEWLINE.
+
+Pute�i �terge ultimul caracter pe care l-a�i introdus tast�nd
+<Delete>.  <Delete> este o tast� pe tastatur� etichetat� "Del" sau
+"Delete".  �n unele cazuri tasta "Backspace" poate ac�iona ca
+<Delete>, dar nu �ntotdeauna!
+
+Mai general, <Delete> �terge caracterul dinaintea pozi�iei curente a
+cursorului.
+
+>> Executa�i urm�toarele opera�ii acum - tasta�i c�teva caractere,
+   apoi �terge�i-le tast�nd <Delete> de c�teva ori.  Nu v� teme�i c�
+   ve�i schimba acest fi�ier; nu ve�i altera versiunea principal� a
+   tutorialului.  Aceasta este copia dumneavoastr� personal�.
+
+C�nd o linie de text devine prea mare pentru a putea fi reprezentat�
+pe o linie de ecran, linia de text este continuat� pe urm�toarea linie
+de pe ecran.  Un caracter backslash ("\") la marginea din dreapta
+indic� o linie care a fost continuat�.
+
+>> Introduce�i text p�n� c�nd dep�i�i cu c�teva caractere marginea
+   din dreapta a ecranului.  Ve�i observa apari�ia liniei de
+   continuare.
+
+>> Folosi�i <Delete>-uri pentru a �terge textul p�n� c�nd linia �ncape
+   din nou pe o linie de ecran.  Linia de continuare va disp�rea.
+
+Pute�i �terge un caracter NEWLINE ca pe orice alt caracter.  �tergerea
+unui NEWLINE dintre dou� linii concateneaza cele dou� linii.  Dac�
+linia rezultat� este prea lung� pentru a fi afi�at� pe ecran, va fi
+afi�at� cu o linie de continuare.
+
+>> Muta�i cursorul la �nceputul unei linii �i tasta�i <Delete>.
+   Aceasta concateneaz� linia curent� cu cea precedent�.
+
+>> Tasta�i <Return> pentru a reintroduce caracterul NEWLINE �ters.
+
+A�a cum v� reaminti�i, majoritatea comenzilor Emacs pot primi un
+argument numeric ce ac�ioneaz� ca un contor de repeti�ie; introducerea
+caracterelor ascult� acelea�i reguli.  Un argument numeric dat unui
+caracter duce la introducerea caracterului respectiv de num�rul
+specificat de ori.
+
+>>  �ncerca�i asta acum - tasta�i C-u 8 * pentru a introduce ********.
+
+A�i �nv��at acum metodele elementare de tastat �i corectat erori �n
+Emacs.  Pute�i de asemenea �terge cuvinte sau linii.  Acesta este un
+sumar al opera�iilor de �tergere.
+
+	<Delete>     �terge caracterul de dinaintea cursorului
+	C-d   	     �terge caracterul de dup� cursor
+
+	M-<Delete>   �terge cuv�ntul de dinaintea cursorului
+	M-d	     �terge cuv�ntul de dup� cursor
+
+	C-k	     �terge de la pozi�ia curent� p�n� la sf�r�itul
+		     liniei
+	M-k	     �terge de la pozi�ia curent� p�n� la sf�r�itul
+		     frazei
+
+De remarcat c� <Delete> �i C-d versus M-<Delete> �i M-d extind
+paralela �nceput� de C-f �i M-f (<Delete> nu este cu adev�rat un
+caracter bazat pe CONTROL, dar nu o s� ne ocup�m de asta acum).  C-k
+�i M-k sunt ca C-e �i M-e, �ntr-un fel, dac� facem o paralel� �ntre
+linii �i fraze.
+
+C�nd �terge�i mai mult de un caracter la un moment dat, Emacs-ul
+p�streaz� intern textul distrus �n a�a fel �nc�t �l pute�i restaura.
+Termenul folosit de Emacs pentru opera�iunea de restaurare a textului
+distrus este "yanking".  Pute�i restaura textul distrus fie �n acela�i
+loc, fie �n alt loc �n fi�ier.  Pute�i de asemenea restaura textul de
+mai multe ori pentru a face mai multe copii.  Comanda de restaurare
+este C-y.
+
+Diferen�a dintre "distrugerea" �i "�tergerea" unei por�iuni din text
+este aceea ca por�iunile de text "distruse" pot fi restaurate, �n timp
+ce por�iunile de text "�terse", nu.  �n general, comenzile care
+distrug por�iuni semnificative din text, p�streaz� intern textul
+respectiv, �n timp ce comenzile care �terg doar un caracter, linii
+goale sau spa�ii, nu fac acest lucru.
+
+>> Muta�i cursorul la �nceputul unei linii care nu este goal�.
+   Tasta�i apoi C-k pentru a distruge textul de pe linia respectiv�.
+>> Tasta�i C-k o a doua oar�.  Ve�i observa distrugerea caracterului
+   NEWLINE de la sf�r�itul liniei.
+
+Dup� cum vede�i, un singur C-k distruge con�inutul liniei, iar un al
+doilea C-k distruge linia �ns�i, fac�nd toate celelalte linii s� se
+mute �n sus.  C-k trateaz� un argument numeric �n mod special:
+distruge num�rul specificat de linii �i con�inutul lor.  Aceast�
+comportare nu este doar o simpl� repeti�ie.  C-u 2 C-k distruge dou�
+linii �i NEWLINE-urile de dup� ele; tast�nd C-k de dou� ori nu
+ob�ine�i acela�i rezultat.
+
+Pentru a extrage ultimul text distrus �i a-l plasa la pozi�ia curent�
+a cursorului, tasta�i C-y.
+
+>> Tasta�i C-y pentru a restaura textul distrus anterior.
+
+G�nditi-v� la C-y ca �i cum a�i recupera ceva ce v-a fost luat.
+Observa�i c� dac� executa�i mai multe C-k-uri la r�nd, tot textul
+distrus este stocat �ntr-o singur� bucat�, �n a�a fel �nc�t un singur
+C-y va restaura toate liniile.
+
+>> Tasta�i acum C-k de c�teva ori.
+
+Acum �ncerca�i s� restaura�i textul distrus:
+
+>> Tasta�i C-y.  Muta�i apoi cursorul c�teva linii mai jos �i tasta�i
+   C-y din nou.  Ve�i vedea cum se copiaz� por�iuni de text.
+
+Ce face�i dac� ave�i por�iuni de text pe care vre�i s� le restaura�i,
+dar �ntre timp distruge�i o alt� por�iune de text?  C-y va restaura
+por�iunea de text care a fost distrus� cel mai recent.  Cu toate
+acestea, textul distrus anterior nu este pierdut.  Pute�i s�-l
+restaura�i folosind comanda M-y.  Dup� ce a�i executat C-y pentru a
+ob�ine textul cel mai recent distrus, tast�nd M-y ve�i �nlocui textul
+ce tocmai a fost restaurat cu textul distrus �naintea lui.  Tast�nd
+M-y de mai multe ori pute�i ob�ine por�iuni de text distrus din ce �n
+ce mai vechi.  Odat� ajun�i la textul care v� intereseaz�, pute�i s�
+continua�i editarea f�r� s� mai face�i nimic special, las�nd textul
+restaurat �n pozi�ia �n care se g�se�te.
+
+Dac� tasta�i M-y de suficient de multe ori, ve�i ajunge �n cele din
+urm� la punctul de plecare (textul distrus cel mai de cur�nd).
+
+>> Distruge�i o linie, muta�i-v� pu�in �n jurul ei, distruge�i o alt�
+   linie.  Executa�i apoi C-y pentru a ob�ine �napoi cea de-a doua
+   linie distrus�.  Executa�i apoi M-y �i ve�i constata c� este
+   �nlocuit� de prima linie distrus�.  Executa�i mai multe M-y-uri �i
+   observa�i ce ob�ine�i.  Continua�i s� le executa�i p�n� c�nd a doua
+   linie apare din nou, etc.  Dac� dori�i, pute�i �ncerca s�-i da�i
+   comenzii M-y argumente numerice pozitive �i negative.
+
+
+* ANULARE
+---------
+
+Dac� face�i o schimbare �n text, �i apoi constata�i c� a�i gre�it,
+pute�i anula schimbarea cu comanda de anulare, C-x u.
+
+�n mod normal, C-x u anuleaz� schimb�rile f�cute de o comand�; dac�
+repeta�i C-x u de c�teva ori la r�nd, fiecare nou� repeti�ie anuleaz�
+�nc� o comand�.
+
+Exist� �ns� dou� excep�ii: comenzile care nu schimb� textul nu sunt
+luate �n considerare (acestea includ comenzile de mutat cursorul �i
+cele de "scrolling"), iar caracterele introduse individual sunt
+tratate �n grupuri de maxim 20.  (Motiva�ia din spatele acestei
+abord�ri este aceea de a reduce num�rul de C-x u-uri pe care trebuie
+s� le tasta�i pentru anularea inser�rilor de text).
+
+>> Distruge�i linia aceasta cu C-k, apoi tasta�i C-x u; linia ar
+   trebui s� reapar�.
+
+C-_ este o alt� comand� de anulare; func�ioneaz� exact ca �i C-x u,
+dar este mai u�or de tastat de mai multe ori la r�nd.  Dezavantajul
+lui C-_ este c� pe anumite tastaturi nu este clar cum trebuie tastat.
+Din acest motiv exist� C-x u.  Pe unele terminale se poate s� tasta�i
+C-_ tast�nd "/" �n timp ce �ine�i ap�sat� tasta CONTROL.
+
+Un argument numeric la C-_ sau C-x u ac�ioneaz� ca un contor de
+repeti�ie.
+
+
+* FI�IERE
+---------
+
+Pentru a face permanente modific�rile din textul pe care �l edita�i,
+trebuie s�-l stoca�i (salva�i) �ntr-un fi�ier.  Altminteri,
+modific�rile se vor pierde �n momentul p�r�sirii Emacs-ului.  Pune�i
+textul �ntr-un fi�ier "deschiz�nd" (sau "vizit�nd") fi�ierul.
+
+Deschiderea unui fi�ier �nseamn� c� pute�i vedea con�inutul fi�ierului
+�n Emacs.  Este ca �i cum a�i edita chiar fi�ierul, singura diferen��
+fiind aceea c� schimb�rile nu devin permanente p�n� c�nd nu �l
+"salva�i" ("save" �n limba englez�).  Se evit� astfel existen�a �n
+sistem a unor fi�iere incomplet modificate atunci c�nd nu dori�i acest
+lucru.  Chiar �i c�nd salva�i fi�ierul, Emacs-ul p�streaz� fi�ierul
+ini�ial (cu un nume schimbat) �n a�a fel �nc�t s�-l pute�i recupera �n
+cazul �n care decide�i c� modific�rile efectuate au fost gre�ite.
+
+Aproape de marginea de jos a ecranului ve�i observa o linie care
+�ncepe �i se termin� cu minusuri, �i con�ine �irul "Emacs:
+TUTORIAL.ro".  Aceast� parte a ecranului arat� �ntotdeauna numele
+fi�ierului pe care �l vizita�i.  Acum vizita�i fi�ierul "TUTORIAL.ro"
+care este copia dumneavoastr� de �ncerc�ri a tutorialului �n limba
+rom�n�.  Orice fi�ier a�i edita, numele acelui fi�ier va ap�rea �n
+pozi�ia respectiv�.
+
+Comenzile pentru g�sirea �i salvarea fi�ierelor sunt diferite de
+celelalte comenzi pe care le-a�i �nv��at, �n sensul c� sunt compuse
+din dou� caractere.  Am�ndou� �ncep cu caracterul C-x.  Exist� o
+�ntreag� serie de comenzi care �ncep cu C-x; multe dintre ele sunt
+legate de fi�iere, buffere �i alte lucruri �nrudite.  Aceste comenzi
+sunt compuse din dou�, trei sau patru caractere.
+
+Comenzii de deschidere a unui fi�ier trebuie s� �i spune�i numele
+fi�ierului dorit.  Spunem despre comand� ca "cite�te un argument de la
+terminal" (�n acest caz, argumentul este numele fi�ierului).  Dup� ce
+tasta�i comanda
+
+	C-x C-f (deschide un fi�ier)
+
+Emacs-ul v� va cere s� introduce�i numele fi�ierului.  Numele pe care
+�l tasta�i apare pe ultima linie a ecranului.  Aceast� linie se
+numeste "minibuffer" c�nd este folosit� pentru acest tip de
+introducere.  Comenzile normale de editare �n Emacs pot fi folosite �i
+pentru editarea numelui fi�ierului.
+
+�n timp ce introduce�i numele fi�ierului (sau orice alt tip de
+introducere de date �n minibuffer), pute�i anula comanda cu C-g.
+
+>> Tasta�i C-x C-f, apoi tasta�i C-g.  Aceasta anuleaz� minibuffer-ul,
+   �i, de asemenea, anuleaz� comanda C-x C-f care �l folosea.  �n
+   concluzie, nu ve�i mai deschide nici un fi�ier.
+
+C�nd a�i terminat de introdus numele fi�ierului, tasta�i <Return>
+pentru a-l �ncheia.  Dup� aceasta, comanda C-x C-f �ncepe s� lucreze
+�i deschide fi�ierul pe care l-a�i ales.  Minibuffer-ul dispare c�nd
+comanda C-x C-f se termin�.
+
+Dup� c�teva momente, con�inutul fi�ierului apare pe ecran �i �l pute�i
+edita.  C�nd doriti s� face�i schimb�rile permanente, tasta�i comanda
+
+	C-x C-s	(salveaz� fi�ierul)
+
+Aceasta copiaz� textul din Emacs �ntr-un fi�ier.  Prima oar� c�nd
+face�i acest lucru, Emacs-ul redenume�te fi�ierul ini�ial �n a�a fel
+�nc�t s� nu se piard�.  Noul nume este creat prin ad�ugarea
+caracterului "~" la numele ini�ial.
+
+C�nd opera�iunea de salvare este terminat�, Emacs-ul afi�eaz� numele
+fi�ierului salvat.  Se recomand� salvarea la intervale relativ mici,
+pentru a nu pierde prea mult� munc� �n cazul unei eventuale bloc�ri a
+sistemului.
+
+>> Tasta�i C-x C-s, pentru a salva copia tutorialului.
+   Aceasta ar trebui s� afi�eze "Wrote ...TUTORIAL.ro" la marginea de
+   jos a ecranului.
+
+OBSERVA�IE: �n unele sisteme, tastarea comenzii C-x C-s va bloca
+ecranul �i nu ve�i mai primi nici un de r�spuns din partea Emacs-ului.
+Aceasta indic� faptul c� o facilitate a sistemului de operare numit�
+"controlul fluxului" ("flow control" �n limba englez�) intercepteaz�
+C-s, nelas�ndu-l s� ajung� la Emacs.  Pentru deblocarea ecranului,
+tasta�i C-q.  Pute�i g�si detalii referitoare la aceast� a�a-numit�
+"facilitate" �n sec�iunea "Spontaneous Entry to Incremental Search"
+din manualul Emacs-ului.
+
+Pute�i deschide un fi�ier existent, pentru a-l vedea sau edita.
+Pute�i de asemenea deschide un fi�ier care nu exist�.  Aceasta este
+modalitatea �n care crea�i noi fi�iere cu Emacs-ul: deschide�i
+fi�ierul (care va fi gol ini�ial), apoi �ncepe�i s� introduce�i text
+�n el.  C�nd �i ve�i cere s� "salveze" fi�ierul, Emacs-ul va crea
+fi�ierul cu textul pe care l-a�i introdus.  De acum �nainte pute�i
+considera c� edita�i un fi�ier existent.
+
+
+* BUFFERE
+---------
+
+Dac� deschide�i un al doilea fi�ier cu C-x C-f, primul va continua s�
+existe �n Emacs.  Pute�i s� v� muta�i �napoi la el deschiz�ndu-l din
+nou cu C-x C-f.  �n acest fel pute�i avea un num�r destul de mare de
+fi�iere deschise �n Emacs.
+
+>> Crea�i un fi�ier numit "foo" tast�nd C-x C-f foo <Return>.
+   Introduce�i un text oarecare, edita�i-l, apoi salva�i "foo" tast�nd
+   C-x C-s.  �n cele din urm�, tasta�i C-x C-f TUTORIAL.ro <Return>
+   pentru a v� �ntoarce la tutorial.
+
+Emacs-ul stocheaz� textul fiec�rui fi�ier �ntr-un obiect numit
+"buffer".  Deschiderea unui fi�ier creeaz� un nou buffer �n Emacs.
+Pentru a vedea o list� a bufferelor existente �n Emacs, tasta�i
+
+	C-x C-b	  (lista de buffere)
+
+>> �ncerca�i C-x C-b acum.
+
+Observa�i cum fiecare buffer are un nume �i, uneori, un nume de fi�ier
+corespunz�tor fi�ierului al c�rui con�inut este men�inut �n buffer-ul
+respectiv.  Unele buffere nu corespund nici unui fi�ier.  De exemplu,
+buffer-ul numit "*Buffer List*" nu are nici un fi�ier asociat.  Este
+buffer-ul care con�ine lista de buffere �i a fost creat de comanda C-x
+C-b.  Orice text pe care �l vede�i �ntr-o fereastr� a Emacs-ului este
+�ntotdeauna parte dintr-un buffer.
+
+>> Tasta�i C-x 1 pentru a sc�pa de lista de buffere.
+
+Dac� face�i schimb�ri �n textul unui fi�ier, apoi deschide�i un alt
+fi�ier, primul fi�ier nu este salvat.  Schimb�rile efectuate r�m�n �n
+Emacs, �n buffer-ul asociat acelui fi�ier.  Crearea sau editarea
+buffer-ului celui de-al doilea fi�ier nu are nici un efect asupra
+buffer-ului primului fi�ier.  Acest lucru este foarte util, dar
+�nseamn� c� ave�i nevoie de o modalitate convenabil� de a salva
+buffer-ul primului fi�ier.  Ar fi obositor s� fie necesar s� v� muta�i
+�napoi la el cu C-x C-f pentru a-l putea salva cu C-x C-s.  Din acest
+motiv exist� comanda:
+
+	C-x s	salveaz� ni�te buffere
+
+C-x s v� �ntreab� despre fiecare buffer care con�ine modific�ri (�i
+care nu a fost salvat) dac� dori�i s�-l salva�i.
+
+>> Introduce�i o linie de text, apoi tasta�i C-x s.
+   Ar trebui s� v� �ntrebe dac� s� salveze buffer-ul TUTORIAL.ro.
+   Raspunde�i "da" la �ntrebare tast�nd "y".
+
+
+* FOLOSIREA MENIULUI
+--------------------
+
+Dac� sunte�i la consola unui terminal X, ve�i observa o bar� de
+meniuri ("menubar" �n limba englez�) la marginea de sus a ferestrei
+Emacs-ului.  Pute�i folosi acest menubar pentru a accesa toate
+comenzile uzuale ale Emacs-ului, cum ar fi "deschide fi�ier".
+Probabil c� vi se va p�rea mai u�or la �nceput, pentru c� nu este
+nevoie s� v� aminti�i tastele necesare acces�rii comenzilor.  Odat�
+acomoda�i cu Emacs-ul, va fi u�or s� �ncepe�i s� folosi�i tastatura,
+deoarece fiecare element din meniu, care are o comand� asociat�,
+afi�eaz� �i tastele cu care acea comand� poate fi accesat�.
+
+Exist� multe elemente �n meniu care nu au nici un echivalent �ntr-o
+secven�� de taste.  De exemplu, meniul Buffers listeaz� toate
+buffer-ele existente �n ordinea celei mai recente folosiri.  Pute�i s�
+v� muta�i la orice buffer g�sindu-i �i select�ndu-i numele �n meniul
+Buffers.
+
+
+* FOLOSIREA MOUSE-ului
+----------------------
+
+C�nd ruleaz� sub X, Emacs-ul ofer� suport integrat pentru mouse.
+Pute�i pozi�iona cursorul �n text ap�s�nd butonul st�ng deasupra
+pozi�iei dorite; pute�i selecta text tr�g�nd mouse-ul peste por�iunea
+dorit�, �n timp ce butonul st�ng este ap�sat.  O metod� alternativ�
+este s� ap�sa�i butonul st�ng al mouse-ului deasupra uneia dintre
+extremit��ile por�iunii de text dorite, apoi s� v� muta�i la cealalt�
+extremitate �i s� ap�sa�i butonul st�ng, �in�nd tasta SHIFT ap�sat�
+pentru a selecta textul.
+
+Ca s� distruge�i textul selectat, pute�i folosi C-w sau "Cut" �n meniu
+de editare ("Edit").  Exist� �ns� o diferen�� �ntre cele dou�
+modalit��i.  C-w nu face dec�t s� distrug� textul (p�str�nd o copie
+intern�), �n timp ce "Cut" face acela�i lucru, dar pune textul �i �n
+clipboard-ul X-ului, de unde poate fi accesat de c�tre alte aplica�ii.
+
+Dac� vre�i s� extrage�i textul din clipboard-ul X-ului, folosi�i
+"Paste" in meniul "Edit".
+
+Butonul din mijloc al mouse-ului este folosit pentru a alege elemente
+care sunt vizibile pe ecran.  De exemplu, dac� intra�i �n Info
+(documenta�ia Emacs-ului) folosind C-h i sau meniul "Help", pute�i
+selecta o legatur� pus� �n eviden�� ap�s�nd butonul din mijloc al
+mouse-ului deasupra ei.  �n mod analog, dac� introduce�i un nume de
+fi�ier (de exemplu c�nd deschide�i un fi�ier cu "Find File") �i
+tasta�i TAB pentru a ob�ine complet�rile posibile, pute�i ap�sa
+butonul din mijloc al mouse-ului pe una din complet�ri, pentru a o
+selecta.
+
+Butonul din dreapta al mouse-ului invoc� un meniu popup.  Con�inutul
+acestui meniu variaz� �n func�ie de modul de editare curent �i, �n mod
+normal, con�ine c�teva comenzi uzuale, pentru a le face mai u�or
+accesibile.
+
+>> Ap�sa�i butonul din dreapta al mouse-ului acum.
+
+Va trebui s� �ine�i butonul ap�sat pentru a men�ine meniul vizibil.
+
+
+* EXTINDEREA SETULUI DE COMENZI
+-------------------------------
+
+Exist� mult mai multe comenzi Emacs dec�t combina�ii de taste bazate
+pe CONTROL �i META.  Solu�ia �n Emacs este folosirea comenzilor
+eXtinse.  Acestea sunt de dou� feluri:
+
+	C-x	eXtinde un caracter; urmat� de un caracter
+	M-x	eXtinde un nume; urmat� de un nume lung
+
+Acestea sunt comenzi care sunt utile �n general, dar folosite mai rar
+dec�t comenzile despre care a�i �nv��at p�n� acum.  A�i v�zut deja
+dou� dintre ele: comanda de deschis fi�iere (C-x C-f) �i comanda de
+salvat fi�iere (C-x C-s).  Un alt exemplu este comanda de p�r�sit
+Emacs-ul: C-x C-c.  (Nu v� teme�i c� ve�i pierde schimb�ri f�cute �n
+fi�iere; �nainte de a termina sesiunea curent� Emacs, C-x C-c v� va
+�ntreba dac� dori�i s� salva�i fi�ierele modificate.)
+
+C-z este comanda cu care pute�i ie�i din Emacs *temporar* - astfel
+�nc�t s� pute�i s� v� �ntoarce�i la aceea�i sesiune Emacs mai t�rziu.
+
+Pe sistemele unde este posibil, C-z "suspend�"