home *** CD-ROM | disk | FTP | other *** search
- Hi there,
- the problem the RS6000 has with inserting slashes in funny places is
- due to the buggy insert_char function. It has a char parameter to
- which a pointer is passed on to insert_raw_string. Of course, this
- parameter is really an int, so this only works if the actual character
- is stored in the lower byte of 32-bit-words. Since this is not the
- case on RS6000s, the whole thing goes berserk. The following diff
- corrects the problem. It also fixes the problem with
- undigestify-rmail-message, for instance.
-
- Also, the AIX conditionals in the systime.h file are somewhat
- misplaced. (They are inside other #ifdef's which don't get touched
- for the AIX config.) So the patch for that is also included. After
- this, things work just fine.
-
- IMHO, these patches should make it into the standard distributions.
- The problems they fix are really bugs in Lucid Emacs.
-
- Cheers =8-} Chipsy
-
- --- snip, snip ---
-
- *** insdel.c Tue Apr 13 14:55:51 1993
- --- insdel.c.~1~ Mon Jan 11 19:41:15 1993
- ***************
- *** 515,522 ****
- void
- insert_char (char c)
- {
- ! char tmp = c;
- ! insert_raw_string (&tmp, 1);
- }
-
- /* Like `insert_raw_string' except that all markers pointing at the place where
- --- 515,521 ----
- void
- insert_char (char c)
- {
- ! insert_raw_string (&c, 1);
- }
-
- /* Like `insert_raw_string' except that all markers pointing at the place where
- *** systime.h Mon Apr 12 20:51:14 1993
- --- systime.h.~1~ Mon Mar 15 10:36:40 1993
- ***************
- *** 33,45 ****
- #include <time.h>
- #endif /* _h_BSDTYPES */
-
- - #endif
- -
- /* AIX needs both <sys/time.h> and <time.h>. */
- ! #ifdef AIX
- #include <time.h>
- #endif
-
-
- /* EMACS_TIME is the type to use to represent temporal intervals -
- struct timeval on some systems, int on others. It can be passed as
- --- 33,45 ----
- #include <time.h>
- #endif /* _h_BSDTYPES */
-
- /* AIX needs both <sys/time.h> and <time.h>. */
- ! #ifdef _AIX
- #include <time.h>
- #endif
-
- + #endif
- +
-
- /* EMACS_TIME is the type to use to represent temporal intervals -
- struct timeval on some systems, int on others. It can be passed as
- ***************
- *** 194,201 ****
- gettimeofday (&dummy, &zoneinfo); \
- *(offset) = -zoneinfo.tz_minuteswest; \
- } while (0)
- ! #else /* ! defined (HAVE_TIMEVAL) */
-
- /* System V derivatives have a timezone global variable. */
- #ifdef USG
- #define EMACS_GET_TZ_OFFSET(offset) \
- --- 194,202 ----
- gettimeofday (&dummy, &zoneinfo); \
- *(offset) = -zoneinfo.tz_minuteswest; \
- } while (0)
- ! #endif /* ! defined (HAVE_TIMEVAL) */
-
- +
- /* System V derivatives have a timezone global variable. */
- #ifdef USG
- #define EMACS_GET_TZ_OFFSET(offset) \
- ***************
- *** 205,212 ****
- } while (0)
- #endif
-
- - #endif
- -
- /* The following sane systems have a tzname array. The timezone() function
- is a stupid idea; timezone names can only be determined geographically,
- not by Greenwich offset. */
- --- 206,211 ----
- ***************
- *** 249,256 ****
- \
- EMACS_GET_TIME (t); \
- secs = EMACS_SECS (t); \
- ! tmp = localtime (&secs); \
- ! *(savings_flag) = tmp->tm_isdst; \
- \
- EMACS_GET_TZ_OFFSET (offset); \
- EMACS_GET_TZ_NAMES (standard, savings); \
- --- 248,255 ----
- \
- EMACS_GET_TIME (t); \
- secs = EMACS_SECS (t); \
- ! tmp = localtime (&secs); \
- ! *(savings_flag) = tmp->tm_isdst; \
- \
- EMACS_GET_TZ_OFFSET (offset); \
- EMACS_GET_TZ_NAMES (standard, savings); \
-
-