X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Femacs.c;h=4011db7715f48aede992a906254e3f6ef889ac70;hb=4f9f80ecf7b7c7a9dd3ee4c988813f28291825d3;hp=ee1c8a238f5341798b659ce5d5b330e8a06593cd;hpb=499b5ad5e2308fd04e3654aaa462d099f1769fd1;p=chise%2Fxemacs-chise.git.1 diff --git a/src/emacs.c b/src/emacs.c index ee1c8a2..4011db7 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -3,6 +3,7 @@ Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. Copyright (C) 2000, 2002 Ben Wing. + Copyright (C) 2000,2002,2005,2006,2010 MORIOKA Tomohiko. This file is part of XEmacs. @@ -180,6 +181,10 @@ version 18.59 released October 31, 1992. #include "sysfile.h" #include "systime.h" +#ifdef CYGWIN +#include "syswindows.h" +#endif + #ifdef PDUMP #include "dumper.h" #endif @@ -288,6 +293,7 @@ Lisp_Object Vexec_path; Lisp_Object Vexec_directory, Vconfigure_exec_directory; Lisp_Object Vlisp_directory, Vconfigure_lisp_directory; Lisp_Object Vmule_lisp_directory, Vconfigure_mule_lisp_directory; +Lisp_Object Vutf_2000_lisp_directory, Vconfigure_utf_2000_lisp_directory; Lisp_Object Vmodule_directory, Vconfigure_module_directory; Lisp_Object Vsite_module_directory, Vconfigure_site_module_directory; Lisp_Object Vconfigure_package_path; @@ -340,7 +346,7 @@ uintptr_t bss_end = 0; #endif /* Number of bytes of writable memory we can expect to be able to get */ -unsigned int lim_data; +unsigned long lim_data; /* WARNING! @@ -556,7 +562,7 @@ DEFUN ("force-debugging-signal", Fforce_debugging_signal, 0, 1, 0, /* Cause XEmacs to enter the debugger. On some systems, there may be no way to do this gracefully; if so, nothing happens unless ABORT is non-nil, in which case XEmacs will -abort() -- a sure-fire way to immediately get back to the debugger, +ABORT() -- a sure-fire way to immediately get back to the debugger, but also a sure-fire way to kill XEmacs (and dump core on Unix systems)! */ @@ -564,7 +570,7 @@ systems)! { debugging_breakpoint (); if (!NILP (abort_)) - abort (); + ABORT (); return Qnil; } @@ -1583,6 +1589,10 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_postgresql (); #endif +#ifdef HAVE_CONCORD + syms_of_concord (); +#endif + /* Now create the subtypes for the types that have them. We do this before the vars_*() because more symbols may get initialized here. */ @@ -1709,6 +1719,9 @@ main_1 (int argc, char **argv, char **envp, int restart) structure_type_create_faces (); structure_type_create_rangetab (); structure_type_create_hash_table (); +#ifdef HAVE_CONCORD + structure_type_create_concord (); +#endif /* Now initialize the image instantiator formats and associated symbols. Other than the first function below, the functions may @@ -2038,6 +2051,10 @@ main_1 (int argc, char **argv, char **envp, int restart) vars_of_postgresql(); #endif +#ifdef HAVE_CONCORD + vars_of_concord (); +#endif + #ifdef HAVE_GPM vars_of_gpmevent (); #endif @@ -2170,6 +2187,11 @@ main_1 (int argc, char **argv, char **envp, int restart) /* Calls make_lisp_hash_table() and creates a keymap */ complex_vars_of_event_stream (); + /* This initializes data-sources of built-in genres */ +#ifdef HAVE_CONCORD + complex_vars_of_concord (); +#endif + #ifdef ERROR_CHECK_GC { extern int always_gc; @@ -2212,6 +2234,9 @@ main_1 (int argc, char **argv, char **envp, int restart) structure_type_create_faces (); structure_type_create_rangetab (); structure_type_create_hash_table (); +#ifdef HAVE_CONCORD + structure_type_create_concord (); +#endif lstream_type_create (); #ifdef FILE_CODING @@ -2652,7 +2677,7 @@ sort_args (int argc, char **argv) } if (best < 0) - abort (); + ABORT (); /* Copy the highest priority remaining option, with its args, to NEW_ARGV. */ new_argv[to++] = argv[best]; @@ -2817,7 +2842,7 @@ main (int argc, char **argv, char **envp) { #ifdef DOUG_LEA_MALLOC if (mallopt (M_MMAP_MAX, 0) != 1) - abort(); + ABORT(); #endif run_temacs_argc = 0; if (! SETJMP (run_temacs_catch)) @@ -2864,7 +2889,7 @@ main (int argc, char **argv, char **envp) if (rc != 0) { stderr_out ("malloc_set_state failed, rc = %d\n", rc); - abort (); + ABORT (); } #if 0 free (malloc_state_ptr); @@ -2875,7 +2900,7 @@ main (int argc, char **argv, char **envp) (defined(__GLIBC__) && __GLIBC_MINOR__ < 1 && !defined(MULE)) || \ defined(DEBUG_DOUG_LEA_MALLOC) if(mallopt (M_MMAP_MAX, 0) != 1) - abort(); + ABORT(); #endif #ifdef REL_ALLOC r_alloc_reinit (); @@ -2909,7 +2934,8 @@ voodoo_free_hook (void *mem) /* Disable all calls to free() when XEmacs is exiting and it doesn't */ /* matter. */ __free_hook = -#ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */ +#if defined __GNUC__ || defined __INTEL_COMPILER +/* prototype of __free_hook varies with glibc version */ (__typeof__ (__free_hook)) #endif voodoo_free_hook; @@ -2983,7 +3009,8 @@ all of which are called before XEmacs is actually killed. #if defined(GNU_MALLOC) __free_hook = -#ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */ +#if defined __GNUC__ || defined __INTEL_COMPILER +/* prototype of __free_hook varies with glibc version */ (__typeof__ (__free_hook)) #endif voodoo_free_hook; @@ -3064,7 +3091,7 @@ shut_down_emacs (int sig, Lisp_Object stuff, int no_auto_save) #else "Please report this bug by invoking M-x report-emacs-bug,\n" "or by selecting `Send Bug Report' from the Help menu. If necessary, send\n" - "ordinary email to `crashes@xemacs.org'. *MAKE SURE* to include the XEmacs\n" + "ordinary email to `xemacs-beta@xemacs.org'. *MAKE SURE* to include the XEmacs\n" "configuration from M-x describe-installation, or equivalently the file\n" "Installation in the top of the build tree.\n" #endif @@ -3350,7 +3377,6 @@ Non-nil return value means XEmacs is running without interactive terminal. in one session without having to recompile. */ /* #define ASSERTIONS_DONT_ABORT */ -#ifdef USE_ASSERTIONS /* This highly dubious kludge ... shut up Jamie, I'm tired of your slagging. */ static int in_assert_failed; @@ -3362,8 +3388,6 @@ static const char *assert_failed_expr; #undef fprintf #endif -#undef abort /* avoid infinite #define loop... */ - #if defined (WIN32_NATIVE) && defined (DEBUG_XEMACS) #define enter_debugger() DebugBreak () #else @@ -3420,12 +3444,11 @@ assert_failed (const char *file, int line, const char *expr) enter_debugger (); #if !defined (ASSERTIONS_DONT_ABORT) - abort (); + abort (); /* The real abort(), this time */ #endif inhibit_non_essential_printing_operations = 0; in_assert_failed = 0; } -#endif /* USE_ASSERTIONS */ #ifdef QUANTIFY DEFUN ("quantify-start-recording-data", Fquantify_start_recording_data, @@ -3611,7 +3634,34 @@ Codename of this version of Emacs (a string). #ifndef XEMACS_CODENAME #define XEMACS_CODENAME "Noname" #endif +#ifdef MULE + { + char dest[129]; + char src[64] = XEMACS_CODENAME; + unsigned char* sp = (unsigned char*)src; + int i = 0, chr; + + while ( (chr = *sp++) && (i < 128) ) + { + if (chr <= 0x7F) + dest[i++] = chr; + else + { +#ifdef UTF2000 + dest[i++] = (chr >> 6) | 0xC0; + dest[i++] = (chr & 0x3F) | 0x80; +#else + dest[i++] = LEADING_BYTE_LATIN_ISO8859_1; + dest[i++] = chr; +#endif + } + } + dest[i] = 0; + Vxemacs_codename = build_string (dest); + } +#else Vxemacs_codename = build_string (XEMACS_CODENAME); +#endif /* Lisp variables which contain command line flags. @@ -3820,6 +3870,23 @@ configure's idea of what `mule-lisp-directory' will be. Vconfigure_mule_lisp_directory = Qnil; #endif + DEFVAR_LISP ("utf-2000-lisp-directory", &Vutf_2000_lisp_directory /* +*Directory of UTF-2000 Lisp files that come with XEmacs. +*/ ); + Vutf_2000_lisp_directory = Qnil; + + DEFVAR_LISP ("configure-utf-2000-lisp-directory", + &Vconfigure_utf_2000_lisp_directory /* +For internal use by the build procedure only. +configure's idea of what `utf-2000-lisp-directory' will be. +*/ ); +#ifdef PATH_UTF2000LOADSEARCH + Vconfigure_utf_2000_lisp_directory = Ffile_name_as_directory + (build_string ((char *) PATH_UTF2000LOADSEARCH)); +#else + Vconfigure_utf_2000_lisp_directory = Qnil; +#endif + DEFVAR_LISP ("module-directory", &Vmodule_directory /* *Directory of core dynamic modules that come with XEmacs. */ );