diff src/ChangeLog @ 4834:b3ea9c582280

Use new cygwin_conv_path API with Cygwin 1.7 for converting names between Win32 and POSIX, UTF-8-aware, with attendant changes elsewhere
author Ben Wing <ben@xemacs.org>
date Tue, 12 Jan 2010 01:38:04 -0600
parents e6dec75ded0e
children 1e90dc478938
line wrap: on
line diff
--- a/src/ChangeLog	Sun Jan 10 01:06:15 2010 -0600
+++ b/src/ChangeLog	Tue Jan 12 01:38:04 2010 -0600
@@ -1,3 +1,251 @@
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* database.c:
+	* intl-encap-win32.c (qxeUpdateICMRegKey):
+	Cosmetic fixes.
+	
+	* device-x.c (signal_if_x_error):
+	* editfns.c (Fformat_time_string):
+	* editfns.c (Fencode_time):
+	* editfns.c (Fcurrent_time_zone):
+	* editfns.c (Fset_time_zone_rule):
+	* event-gtk.c (gtk_reset_key_mapping):
+	* fileio.c (Fsysnetunam):
+	* font-mgr.c:
+	* font-mgr.c (Ffc_config_app_font_add_dir):
+	* font-mgr.c (Ffc_config_filename):
+	* glyphs-eimage.c (my_jpeg_output_message):
+	* glyphs-eimage.c (jpeg_instantiate):
+	* glyphs-shared.c (read_bitmap_data_from_file):
+	* glyphs-x.c (x_redisplay_widget):
+	* glyphs-x.c (x_widget_instantiate):
+	* glyphs-x.c (x_widget_property):
+	* glyphs-x.c (x_tab_control_redisplay):
+	* hpplay.c (player_error_internal):
+	* hpplay.c (play_sound_file):
+	* hpplay.c (play_sound_data):
+	* process-unix.c:
+	* process-unix.c (unix_canonicalize_host_name):
+	* process.c (init_xemacs_process):
+	* sound.h (sound_perror):
+	* sysdep.c:
+	* sysdep.c (qxe_execve):
+	* sysdep.c (copy_in_passwd):
+	* sysdep.c (qxe_getpwnam):
+	* sysdep.c (qxe_ctime):
+	* sysdll.c (dll_error):
+	* sysdll.c (dll_open):
+	* tooltalk.c (check_status):
+	* tooltalk.c (Fadd_tooltalk_message_arg):
+	* tooltalk.c (Fadd_tooltalk_pattern_attribute):
+	* tooltalk.c (Fadd_tooltalk_pattern_arg):
+	Change all occurrences of Qnative to some more specific encoding.
+	Create Qtime_function_encoding, Qtime_zone_encoding,
+	Quser_name_encoding, Qerror_message_encoding,
+	Qjpeg_error_message_encoding, Qtooltalk_encoding, Qgtk_encoding,
+	Qx_error_message_encoding.
+
+	* intl-win32.c (init_intl_win32):
+	Provide cygwin-use-utf-8 if this is the case.
+
+	* fileio.c (Ffile_truename):
+	* realpath.c:
+	* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
+	* syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT):
+	* syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN):
+	* syswindows.h (INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT):
+	* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
+	* win32.c (urlify_filename):
+	* win32.c (tstr_to_local_file_format):
+	* win32.c (Fmswindows_cygwin_to_win32_path):
+	Rename LOCAL_FILE_FORMAT_TO_INTERNAL_WIN32 and
+	INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT to
+	LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN and
+	INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT, since "win32" is a misnomer.
+
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* config.h.in:
+	Add def for HAVE_CYGWIN_CONV_PATH.
+	
+	* dialog-msw.c (handle_directory_dialog_box):
+	* dialog-msw.c (handle_file_dialog_box):
+	* fileio.c:
+	* fileio.c (Ffile_truename):
+	* syswindows.h:
+	* syswindows.h (CCP_POSIX_TO_WIN_T):
+	* syswindows.h (LISP_LOCAL_FILE_FORMAT_TO_TSTR):
+	* syswindows.h (INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT):
+	* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
+	* win32.c (urlify_filename):
+	* win32.c (tstr_to_local_file_format):
+	* win32.c (Fmswindows_shell_execute):
+	* win32.c (Fmswindows_cygwin_to_win32_path):
+	Rename LOCAL_FILE_FORMAT_TO_TSTR to LISP_LOCAL_FILE_FORMAT_TO_TSTR.
+	Rename LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR to
+	LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR.  Both of these renames
+	reflect the fact that their 'in' argument is a Lisp object.
+
+	Create new LOCAL_FILE_FORMAT_TO_TSTR that accepts an Ibyte *.
+
+	Rename LOCAL_TO_WIN32_FILE_FORMAT to
+	LOCAL_FILE_FORMAT_TO_INTERNAL_WIN32; rename WIN32_TO_LOCAL_FILE_FORMAT
+	to INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT similarly.
+	This clarifies the fact that the result is a file in MS-Windows format
+	rather than POSIX format, but still in internal-format instead of
+	UTF-16.
+
+	Fix up the *LOCAL_FILE_FORMAT* functions to use cygwin_conv_path()
+	if available.  This converts between a UTF-8 POSIX path and a
+	UTF-16 Windows path (or ANSI Windows path, in the increasingly
+	unlikely situation that we're using Windows 9x).  Previously, we
+	used an old API and operated on internal-format data, because the
+	external format was unpredictable.  This doesn't work any more,
+	even with the old API (it tries to convert to UTF-8).  So instead,
+	when the new API is available we use the new API and operate on
+	external-format data.  This necessitates that if we want to convert
+	to/from internal-format Windows-style paths, we need to first convert
+	to external format, do the conversion, and convert back to
+	internal format.  To avoid this, we change some callers of the
+	macros to use the right version (internal or external format
+	destination) and avoid doing the internal/external conversions
+	themselves.
+
+	* realpath.c:
+	* fileio.c (check_writable):
+	Cosmetic fixes to check_writable.
+
+	Avoid directly calling cygwin_conv_to_full_win32_path
+	(fileio.c:check_writable did this) or cygwin_posix_to_win32_path_list
+	(realpath.c:readlink_or_correct_case did this); use the
+	*LOCAL_FILE_FORMAT* macros instead.
+
+	* fileio.c (Ffile_exists_p):
+	* glyphs-msw.c (mswindows_resource_instantiate):
+	* sysdll.c (dll_open):
+	* sysfile.h:
+	* sysfile.h (PATHNAME_CONVERT_OUT_TSTR):
+	Add PATHNAME_CONVERT_OUT_TSTR and PATHNAME_CONVERT_OUT_UTF_8 for
+	conversion involving specified coding systems rather than `file-name'.
+	Use them in *LOCAL_FILE_FORMAT* macros.
+
+	* emacs.c (main_1):
+	* symsinit.h:
+	* unicode.c:
+	New function complex_vars_of_unicode().  In it, create the utf-8
+	coding system.  Call it appropriately in emacs.c.  Sort the
+	prototypes of complex_vars_of_*() in symsinit.h, for cosmetic
+	reasons.
+	
+
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* regex.c (re_compile_fastmap):
+	The code to compute the fastmap in charset_mule_not was totally
+	messed up.  I'm surprised it hasn't led to more visible bugs.
+
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* rangetab.c:
+	* rangetab.c (external_to_internal_adjust_ends):
+	* rangetab.c (put_range_table):
+	* rangetab.c (Fmap_range_table):
+	* rangetab.c (struct unified_range_table):
+	* rangetab.c (unified_range_table_copy_data):
+	* rangetab.c (unified_range_table_get_range):
+	Add an entry to unified range tables to keep track of their type.
+	Factor out code to adjust the endpoints of ranges between the
+	external format (either end can be open or closed) and internal
+	format (always closed/open).  Use code also when returning
+	ranges out of unified range tables.  Fixes an off-by-one error
+	in regex.c where it was getting ranges with an end one greater
+	than expected, since it creates closed-closed range tables and
+	was getting passed the internal-format ranges.
+
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* file-coding.c (default_query_method):
+	OOOOOPS!  Had = instead of ==.
+
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* config.h.in:
+	* config.h.in (ERROR_CHECK_GLYPHS):
+	Trying to avoid link errors referring to the ERROR_CHECK_TYPES
+	functions, either in eldap.o (if we don't include references to
+	ERROR_CHECK_TYPES in xemacs.def.in.in) or xemacs-export.o (if
+	we do include such references):
+	
+	Add line for USE_GPLUSPLUS, set by configure.
+	Define INLINE_HEADERS_ARE_STATIC when we add static to inline headers.
+	(Possibly used when setting NEED_ERROR_CHECK_TYPES_INLINES.)
+	Currently, set NEED_ERROR_CHECK_TYPES_INLINES when ERROR_CHECK_TYPES
+	and USE_GPLUSPLUS.
+	
+	* xemacs.def.in.in:
+	Use NEED_ERROR_CHECK_TYPES_INLINES here to bracket things like
+	`error_check_cons' instead of just ERROR_CHECK_TYPES.
+
+	* faces.c (complex_vars_of_faces):
+	Bracket various font variables with defined(USE_XFT or MULE) to
+	avoid warnings.
+	
+	* fileio.c:
+	Make sure the `expand-file-name' handler returns a string, to
+	avoid a potential crash.
+	
+	* floatfns.c (round_one_bigfloat_1):
+	#if-0 out an assert that can never be triggered and which
+	generates warnings "dereferencing type-punned pointer will break
+	strict-aliasing rules".
+	
+	* redisplay-x.c (separate_textual_runs_nomule):
+	Remove unused variable in non-Mule case.
+	
+	* specifier.c (charset_matches_specifier_tag_set_p):
+	Variable CHARSET is unused when not Mule.
+	
+	* specifier.c (specifier_instance_from_inst_list):
+	Add a comment questioning why font-specific stuff is littering
+	specifier.c.
+	
+	* syswindows.h:
+	Expand on the comments on a #if 0 I added in a previous patch.
+	
+	* vdb-win32.c:
+	* vdb-win32.c (win32_fault_handler):
+	* vdb-win32.c (vdb_install_signal_handler):
+	Change return type to LONG instead of DWORD to avoid warning or
+	error.
+	
+2010-01-11  Ben Wing  <ben@xemacs.org>
+
+	* database.c: Cygwin prototypes in ndbm.h are incomplete and
+	cause C++ compile errors; fix them.
+	
+	* fileio.c (check_writable):
+	Fix compile errors.  Also move the call to C_STRING_TO_TSTR
+	earlier, which is probably wrong, but fixed in a later patch.
+	
+	* intl-encap-win32.c (qxeGetICMProfile):
+	Ifdef out a fix to work around a previous bogosity in Cygwin
+	header files which has now been fixed.  Keeping in the fix
+	led to compile errors. #### Proper way to do it is to figure
+	out when it got fixed, perhaps put in a configure test, but it
+	seems not worth it.
+	
+	* intl-encap-win32.c (qxeUpdateICMRegKey):
+	Cosmetic change, undone in a later patch.
+	* mule-charset.c (Fset_charset_ccl_program):
+	Remove unused variable.
+	* nas.c:
+	#if-0 out some unused static code to avoid a warning.
+	* syswindows.h:
+	Don't declare prototypes for GetCurrentFiber and GetFiberData,
+	it causes a compile error.
+	* unicode.c (unicode_query):
+	invalid_lower_limit might have been used uninitted, so initialize it.
+
 2010-01-09  Didier Verna  <didier@xemacs.org>
 
 	* glyphs.c (query_string_font): Use proper domain for cachel