diff options
Diffstat (limited to 'src/editfns.c')
-rw-r--r-- | src/editfns.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/editfns.c b/src/editfns.c index 5ab8e5eddc8..7bb74958c2c 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -84,6 +84,11 @@ extern char **environ; extern size_t emacs_strftimeu P_ ((char *, size_t, const char *, const struct tm *, int)); + +#ifdef WINDOWSNT +extern Lisp_Object w32_get_internal_run_time (); +#endif + static int tm_diff P_ ((struct tm *, struct tm *)); static void find_field P_ ((Lisp_Object, Lisp_Object, Lisp_Object, int *, Lisp_Object, int *)); static void update_buffer_properties P_ ((int, int)); @@ -1483,9 +1488,13 @@ on systems that do not provide resolution finer than a second. */) return list3 (make_number ((secs >> 16) & 0xffff), make_number ((secs >> 0) & 0xffff), make_number (usecs)); -#else +#else /* ! HAVE_GETRUSAGE */ +#if WINDOWSNT + return w32_get_internal_run_time (); +#else /* ! WINDOWSNT */ return Fcurrent_time (); -#endif +#endif /* WINDOWSNT */ +#endif /* HAVE_GETRUSAGE */ } @@ -1974,6 +1983,7 @@ the data it can't find. */) int offset = tm_diff (t, &gmt); char *s = 0; char buf[6]; + #ifdef HAVE_TM_ZONE if (t->tm_zone) s = (char *)t->tm_zone; @@ -1984,19 +1994,6 @@ the data it can't find. */) #endif #endif /* not HAVE_TM_ZONE */ -#if defined HAVE_TM_ZONE || defined HAVE_TZNAME - if (s) - { - /* On Japanese w32, we can get a Japanese string as time - zone name. Don't accept that. */ - char *p; - for (p = s; *p && (isalnum ((unsigned char)*p) || *p == ' '); ++p) - ; - if (p == s || *p) - s = NULL; - } -#endif - if (!s) { /* No local time zone name is available; use "+-NNNN" instead. */ @@ -2004,6 +2001,7 @@ the data it can't find. */) sprintf (buf, "%c%02d%02d", (offset < 0 ? '-' : '+'), am/60, am%60); s = buf; } + return Fcons (make_number (offset), Fcons (build_string (s), Qnil)); } else @@ -3042,7 +3040,7 @@ DEFUN ("delete-and-extract-region", Fdelete_and_extract_region, { validate_region (&start, &end); if (XINT (start) == XINT (end)) - return build_string (""); + return empty_unibyte_string; return del_range_1 (XINT (start), XINT (end), 1, 1); } @@ -4114,9 +4112,9 @@ Transposing beyond buffer boundaries is an error. */) (startr1, endr1, startr2, endr2, leave_markers) Lisp_Object startr1, endr1, startr2, endr2, leave_markers; { - register int start1, end1, start2, end2; - int start1_byte, start2_byte, len1_byte, len2_byte; - int gap, len1, len_mid, len2; + register EMACS_INT start1, end1, start2, end2; + EMACS_INT start1_byte, start2_byte, len1_byte, len2_byte; + EMACS_INT gap, len1, len_mid, len2; unsigned char *start1_addr, *start2_addr, *temp; INTERVAL cur_intv, tmp_interval1, tmp_interval_mid, tmp_interval2, tmp_interval3; |