# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: eggert@cs.ucla.edu-20120831163445-0nus2s76w55giwe1 # target_branch: bzr+ssh://eggert@bzr.savannah.gnu.org/emacs/trunk # testament_sha1: 2c08c0d006b63f07426753422e28c9d8edce55f9 # timestamp: 2012-08-31 09:34:53 -0700 # base_revision_id: michael.albinus@gmx.de-20120831111106-\ # kk0g7mg53f6m2af4 # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2012-08-28 16:01:59 +0000 +++ ChangeLog 2012-08-31 03:20:23 +0000 @@ -1,3 +1,8 @@ +2012-08-31 Paul Eggert + + Simplify redefinition of 'abort' (Bug#12316). + * configure.ac (NO_ABRT): Remove. + 2012-08-26 Paul Eggert * configure.ac (CFLAGS): Prefer -g3 to -g if -g3 works === modified file 'admin/CPP-DEFINES' --- admin/CPP-DEFINES 2012-08-18 21:36:13 +0000 +++ admin/CPP-DEFINES 2012-08-31 03:06:13 +0000 @@ -428,7 +428,6 @@ MAIL_USE_SYSTEM_LOCK MAXPATHLEN NLIST_STRUCT -NO_ABORT NO_EDITRES NO_MATHERR NO_TERMIO === modified file 'admin/ChangeLog' --- admin/ChangeLog 2012-08-28 19:26:41 +0000 +++ admin/ChangeLog 2012-08-31 03:20:23 +0000 @@ -1,3 +1,8 @@ +2012-08-31 Paul Eggert + + Simplify redefinition of 'abort' (Bug#12316). + * CPP-DEFINES (NO_ABORT): Remove. + 2012-08-28 Glenn Morris * bzrmerge.el (bzrmerge-merges): Allow unversioned files in the tree. === modified file 'configure.ac' --- configure.ac 2012-08-28 16:01:59 +0000 +++ configure.ac 2012-08-31 03:06:13 +0000 @@ -3321,12 +3321,6 @@ AC_DEFINE(BROKEN_PTY_READ_AFTER_EAGAIN, 1, [Define on FreeBSD to work around an issue when reading from a PTY.]) ;; - - dnl Define the following so emacs symbols will not conflict with those - dnl in the System framework. Otherwise -prebind will not work. - darwin) - AC_DEFINE(NO_ABORT, 1, [Do not define abort in emacs.c.]) - ;; esac case $opsys in === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-08-28 16:01:59 +0000 +++ nt/ChangeLog 2012-08-31 16:34:45 +0000 @@ -1,3 +1,8 @@ +2012-08-31 Paul Eggert + + Simplify redefinition of 'abort' (Bug#12316). + * inc/ms-w32.h (w32_abort) [HAVE_NTGUI]: Remove. + 2012-08-22 Juanma Barranquero * config.nt: Sync with autogen/config.in. === modified file 'nt/inc/ms-w32.h' --- nt/inc/ms-w32.h 2012-08-07 11:03:48 +0000 +++ nt/inc/ms-w32.h 2012-08-31 03:06:13 +0000 @@ -334,16 +334,7 @@ #include #endif -/* stdlib.h must be included after redefining malloc & friends, but - before redefining abort. Isn't library redefinition funny? */ #include - -/* Redefine abort. */ -#ifdef HAVE_NTGUI -#define abort w32_abort -extern _Noreturn void w32_abort (void); -#endif - #include /* Define for those source files that do not include enough NT system files. */ === modified file 'nt/inc/unistd.h' --- nt/inc/unistd.h 2011-02-27 19:48:31 +0000 +++ nt/inc/unistd.h 2012-08-31 16:34:45 +0000 @@ -3,8 +3,12 @@ #ifndef _UNISTD_H #define _UNISTD_H +/* On Microsoft platforms, declares 'environ'; on POSIX + platforms, does. Every file in Emacs that includes + also includes , so there's no need to declare + 'environ' here. */ + extern ssize_t readlink (const char *, char *, size_t); extern int symlink (char const *, char const *); #endif /* _UNISTD_H */ - === modified file 'src/.gdbinit' --- src/.gdbinit 2012-08-20 17:32:31 +0000 +++ src/.gdbinit 2012-08-31 03:06:13 +0000 @@ -1222,14 +1222,9 @@ set $tem = (struct Lisp_String *) $ptr set $tem = (char *) $tem->data - # Don't let abort actually run, as it will make stdio stop working and - # therefore the `pr' command above as well. - if $tem[0] == 'w' && $tem[1] == 'i' && $tem[2] == 'n' && $tem[3] == 'd' - # The windows-nt build replaces abort with its own function. - break w32_abort - else - break abort - end + # Don't let emacs_abort actually run, as it will make stdio stop + # working and therefore the 'pr' command above as well. + break emacs_abort end # x_error_quitter is defined only on X. But window-system is set up === modified file 'src/ChangeLog' --- src/ChangeLog 2012-08-31 10:53:19 +0000 +++ src/ChangeLog 2012-08-31 16:34:45 +0000 @@ -1,3 +1,23 @@ +2012-08-31 Paul Eggert + + Simplify redefinition of 'abort' (Bug#12316). + Do not try to redefine the 'abort' function. Instead, redo + the code so that it calls 'emacs_abort' rather than 'abort'. + This removes the need for the NO_ABORT configure-time macro + and makes it easier to change the abort code to do a backtrace. + * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort. + * emacs.c (abort) [!DOS_NT && !NO_ABORT]: + Remove; sysdep.c's emacs_abort now takes its place. + * lisp.h (emacs_abort): New decl. All calls from Emacs code to + 'abort' changed to use 'emacs_abort'. + * msdos.c (dos_abort) [defined abort]: Remove; not used. + (abort) [!defined abort]: Rename to ... + (emacs_abort): ... new name. + * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking + the place of the old 'abort' in emacs.c. + * w32.c, w32fns.c (abort): Do not #undef. + * w32.c (emacs_abort): Rename from w32_abort. + 2012-08-31 Dmitry Antipov Remove mark_ttys function and fix tty_display_info initialization. === modified file 'src/alloc.c' --- src/alloc.c 2012-08-31 10:53:19 +0000 +++ src/alloc.c 2012-08-31 16:21:56 +0000 @@ -610,7 +610,7 @@ register unsigned char *val; int overhead = ++check_depth == 1 ? XMALLOC_OVERRUN_CHECK_OVERHEAD : 0; if (SIZE_MAX - overhead < size) - abort (); + emacs_abort (); val = malloc (size + overhead); if (val && check_depth == 1) @@ -635,7 +635,7 @@ register unsigned char *val = (unsigned char *) block; int overhead = ++check_depth == 1 ? XMALLOC_OVERRUN_CHECK_OVERHEAD : 0; if (SIZE_MAX - overhead < size) - abort (); + emacs_abort (); if (val && check_depth == 1 @@ -646,7 +646,7 @@ size_t osize = xmalloc_get_size (val); if (memcmp (xmalloc_overrun_check_trailer, val + osize, XMALLOC_OVERRUN_CHECK_SIZE)) - abort (); + emacs_abort (); memset (val + osize, 0, XMALLOC_OVERRUN_CHECK_SIZE); val -= XMALLOC_OVERRUN_CHECK_SIZE + XMALLOC_OVERRUN_SIZE_SIZE; memset (val, 0, XMALLOC_OVERRUN_CHECK_SIZE + XMALLOC_OVERRUN_SIZE_SIZE); @@ -683,7 +683,7 @@ size_t osize = xmalloc_get_size (val); if (memcmp (xmalloc_overrun_check_trailer, val + osize, XMALLOC_OVERRUN_CHECK_SIZE)) - abort (); + emacs_abort (); #ifdef XMALLOC_CLEAR_FREE_MEMORY val -= XMALLOC_OVERRUN_CHECK_SIZE + XMALLOC_OVERRUN_SIZE_SIZE; memset (val, 0xff, osize + XMALLOC_OVERRUN_CHECK_OVERHEAD); @@ -1269,7 +1269,7 @@ { fprintf (stderr, "Freeing `%p' which wasn't allocated with malloc\n", ptr); - abort (); + emacs_abort (); } else { @@ -1328,7 +1328,7 @@ fprintf (stderr, "Region in use is %p...%p, %td bytes, type %d\n", m->start, m->end, (char *) m->end - (char *) m->start, m->type); - abort (); + emacs_abort (); } if (!dont_register_blocks) @@ -1366,7 +1366,7 @@ fprintf (stderr, "Realloc of %p which wasn't allocated with malloc\n", ptr); - abort (); + emacs_abort (); } mem_delete (m); @@ -1388,7 +1388,7 @@ if (m != MEM_NIL) { fprintf (stderr, "Realloc returns memory that is already in use\n"); - abort (); + emacs_abort (); } /* Can't handle zero size regions in the red-black tree. */ @@ -1801,7 +1801,7 @@ if (!PURE_POINTER_P (s) && s->data && nbytes != SDATA_NBYTES (SDATA_OF_STRING (s))) - abort (); + emacs_abort (); return nbytes; } @@ -1875,7 +1875,7 @@ while (s != NULL) { if ((uintptr_t) s < 1024) - abort (); + emacs_abort (); s = NEXT_FREE_LISP_STRING (s); } } @@ -2104,7 +2104,7 @@ back-pointer so that we know it's free. */ #ifdef GC_CHECK_STRING_BYTES if (string_bytes (s) != SDATA_NBYTES (data)) - abort (); + emacs_abort (); #else data->u.nbytes = STRING_BYTES (s); #endif @@ -2215,7 +2215,7 @@ /* Check that the string size recorded in the string is the same as the one recorded in the sdata structure. */ if (s && string_bytes (s) != SDATA_NBYTES (from)) - abort (); + emacs_abort (); #endif /* GC_CHECK_STRING_BYTES */ nbytes = s ? STRING_BYTES (s) : SDATA_NBYTES (from); @@ -2228,7 +2228,7 @@ if (memcmp (string_overrun_cookie, (char *) from_end - GC_STRING_OVERRUN_COOKIE_SIZE, GC_STRING_OVERRUN_COOKIE_SIZE)) - abort (); + emacs_abort (); #endif /* Non-NULL S means it's alive. Copy its data. */ @@ -2485,7 +2485,7 @@ struct Lisp_String *s; if (nchars < 0) - abort (); + emacs_abort (); if (!nbytes) return empty_multibyte_string; @@ -2806,7 +2806,7 @@ else if (type == CONSTYPE_HEAP) val = Fcons (objp[i], val); else - abort (); + emacs_abort (); } return val; } @@ -3916,7 +3916,7 @@ while (c != MEM_NIL) { if (start >= c->start && start < c->end) - abort (); + emacs_abort (); parent = c; c = start < c->start ? c->left : c->right; } @@ -3935,7 +3935,7 @@ #ifdef GC_MALLOC_CHECK x = _malloc_internal (sizeof *x); if (x == NULL) - abort (); + emacs_abort (); #else x = xmalloc (sizeof *x); #endif @@ -4610,7 +4610,7 @@ break; default: - abort (); + emacs_abort (); } if (!NILP (obj)) @@ -4807,7 +4807,7 @@ if (!survives_gc_p (p->var[i])) /* FIXME: It's not necessarily a bug. It might just be that the GCPRO is unnecessary or should release the object sooner. */ - abort (); + emacs_abort (); } #elif GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES @@ -5348,7 +5348,7 @@ { staticvec[staticidx++] = varaddress; if (staticidx >= NSTATICS) - abort (); + emacs_abort (); } @@ -5403,7 +5403,7 @@ Lisp_Object retval = Qnil; if (abort_on_gc) - abort (); + emacs_abort (); /* Can't GC if pure storage overflowed because we can't determine if something is a pure object or not. */ @@ -5887,7 +5887,7 @@ do { \ m = mem_find (po); \ if (m == MEM_NIL) \ - abort (); \ + emacs_abort (); \ } while (0) /* Check that the object pointed to by PO is live, using predicate @@ -5895,7 +5895,7 @@ #define CHECK_LIVE(LIVEP) \ do { \ if (!LIVEP (m, po)) \ - abort (); \ + emacs_abort (); \ } while (0) /* Check both of the above conditions. */ @@ -5943,7 +5943,7 @@ if (m == MEM_NIL && !SUBRP (obj) && po != &buffer_defaults && po != &buffer_local_symbols) - abort (); + emacs_abort (); #endif /* GC_CHECK_MARKED_OBJECTS */ if (ptr->header.size & PSEUDOVECTOR_FLAG) @@ -5966,7 +5966,7 @@ if (b == po) break; if (b == NULL) - abort (); + emacs_abort (); } #endif /* GC_CHECK_MARKED_OBJECTS */ mark_buffer ((struct buffer *) ptr); @@ -6042,7 +6042,7 @@ break; case PVEC_FREE: - abort (); + emacs_abort (); default: mark_vectorlike (ptr); @@ -6089,7 +6089,7 @@ And if it's forwarded to a C variable, either it's not a Lisp_Object var, or it's staticpro'd already. */ break; - default: abort (); + default: emacs_abort (); } if (!PURE_POINTER_P (XSTRING (ptr->name))) MARK_STRING (XSTRING (ptr->name)); @@ -6143,7 +6143,7 @@ break; default: - abort (); + emacs_abort (); } break; @@ -6165,7 +6165,7 @@ obj = ptr->u.cdr; cdr_count++; if (cdr_count == mark_object_loop_halt) - abort (); + emacs_abort (); goto loop; } @@ -6178,7 +6178,7 @@ break; default: - abort (); + emacs_abort (); } #undef CHECK_LIVE @@ -6247,7 +6247,7 @@ break; default: - abort (); + emacs_abort (); } return survives_p || PURE_POINTER_P ((void *) XPNTR (obj)); @@ -6699,7 +6699,7 @@ file, line, msg); npointers = backtrace (buffer, NPOINTERS_MAX); backtrace_symbols_fd (buffer, npointers, STDERR_FILENO); - abort (); + emacs_abort (); } #endif === modified file 'src/bidi.c' --- src/bidi.c 2012-08-23 20:31:52 +0000 +++ src/bidi.c 2012-08-31 16:20:30 +0000 @@ -105,7 +105,7 @@ if (ch == BIDI_EOB) return NEUTRAL_B; if (ch < 0 || ch > MAX_CHAR) - abort (); + emacs_abort (); default_type = (bidi_type_t) XINT (CHAR_TABLE_REF (bidi_type_table, ch)); /* Every valid character code, even those that are unassigned by the @@ -113,7 +113,7 @@ DerivedBidiClass.txt file. Therefore, if we ever get UNKNOWN_BT (= zero) code from CHAR_TABLE_REF, that's a bug. */ if (default_type == UNKNOWN_BT) - abort (); + emacs_abort (); if (override == NEUTRAL_DIR) return default_type; @@ -141,7 +141,7 @@ else if (override == R2L) return STRONG_R; else - abort (); /* can't happen: handled above */ + emacs_abort (); /* can't happen: handled above */ } } } @@ -183,7 +183,7 @@ case NEUTRAL_ON: return NEUTRAL; default: - abort (); + emacs_abort (); } } @@ -199,7 +199,7 @@ if (c == BIDI_EOB) return c; if (c < 0 || c > MAX_CHAR) - abort (); + emacs_abort (); val = CHAR_TABLE_REF (bidi_mirror_table, c); if (INTEGERP (val)) @@ -215,7 +215,7 @@ /* Minimal test we must do in optimized builds, to prevent weird crashes further down the road. */ if (v < 0 || v > MAX_CHAR) - abort (); + emacs_abort (); return v; } @@ -373,7 +373,7 @@ int current_scan_dir = bidi_it->scan_dir; if (idx < bidi_cache_start || idx >= bidi_cache_idx) - abort (); + emacs_abort (); bidi_copy_it (bidi_it, &bidi_cache[idx]); bidi_it->scan_dir = current_scan_dir; @@ -518,7 +518,7 @@ /* We should never cache on backward scans. */ if (bidi_it->scan_dir == -1) - abort (); + emacs_abort (); idx = bidi_cache_search (bidi_it->charpos, -1, 1); if (idx < 0) @@ -537,7 +537,7 @@ idx = bidi_cache_start; } if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); bidi_copy_it (&bidi_cache[idx], bidi_it); if (!resolved) bidi_cache[idx].resolved_level = -1; @@ -592,7 +592,7 @@ bidi_peek_at_next_level (struct bidi_it *bidi_it) { if (bidi_cache_idx == bidi_cache_start || bidi_cache_last_idx == -1) - abort (); + emacs_abort (); return bidi_cache[bidi_cache_last_idx + bidi_it->scan_dir].resolved_level; } @@ -629,7 +629,7 @@ bidi_pop_it (struct bidi_it *bidi_it) { if (bidi_cache_start <= 0) - abort (); + emacs_abort (); /* Reset the next free cache slot index to what it was before the call to bidi_push_it. */ @@ -640,7 +640,7 @@ /* Pop the previous cache start from the stack. */ if (bidi_cache_sp <= 0) - abort (); + emacs_abort (); bidi_cache_start = bidi_cache_start_stack[--bidi_cache_sp]; /* Invalidate the last-used cache slot data. */ @@ -762,12 +762,12 @@ { bidi_type_table = uniprop_table (intern ("bidi-class")); if (NILP (bidi_type_table)) - abort (); + emacs_abort (); staticpro (&bidi_type_table); bidi_mirror_table = uniprop_table (intern ("mirroring")); if (NILP (bidi_mirror_table)) - abort (); + emacs_abort (); staticpro (&bidi_mirror_table); Qparagraph_start = intern ("paragraph-start"); @@ -885,7 +885,7 @@ else { if (!CHAR_HEAD_P (*p)) - abort (); + emacs_abort (); while (pos < end) { @@ -965,7 +965,7 @@ /* We don't expect to find ourselves in the middle of a display property. Hopefully, it will never be needed. */ if (charpos > *disp_pos) - abort (); + emacs_abort (); /* Text covered by `display' properties and overlays with display properties or display strings is handled as a single character that represents the entire run of characters @@ -995,7 +995,7 @@ } *nchars = disp_end_pos - *disp_pos; if (*nchars <= 0) - abort (); + emacs_abort (); if (string->s) *ch_len = bidi_count_bytes (string->s, *disp_pos, bytepos, disp_end_pos, string->unibyte); @@ -1160,7 +1160,7 @@ dir = L2R; /* We should never be called at EOB or before BEGV. */ else if (bidi_it->charpos >= end || bytepos < begbyte) - abort (); + emacs_abort (); if (dir == L2R) { @@ -1298,7 +1298,7 @@ && no_default_p && bidi_it->paragraph_dir == NEUTRAL_DIR); } else - abort (); + emacs_abort (); /* Contrary to UAX#9 clause P3, we only default the paragraph direction to L2R if we have no previous usable paragraph @@ -1325,7 +1325,7 @@ bidi_type_t ch_type; if (!bidi_initialized) - abort (); + emacs_abort (); ch_type = (bidi_type_t) XINT (CHAR_TABLE_REF (bidi_type_table, ch)); return (ch_type == LRE || ch_type == LRO || ch_type == RLE || ch_type == RLO @@ -1378,10 +1378,10 @@ /* Advance to the next character, skipping characters covered by display strings (nchars > 1). */ if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); bidi_it->charpos += bidi_it->nchars; if (bidi_it->ch_len == 0) - abort (); + emacs_abort (); bidi_it->bytepos += bidi_it->ch_len; } @@ -1581,7 +1581,7 @@ } if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); if (level == prev_level) /* empty embedding */ saved_it.ignore_bn_limit = bidi_it->charpos + bidi_it->nchars; else /* this embedding is non-empty */ @@ -1644,7 +1644,7 @@ || type == RLE || type == RLO || type == PDF) - abort (); + emacs_abort (); if (new_level != prev_level || bidi_it->type == NEUTRAL_B) @@ -1685,7 +1685,7 @@ else if (bidi_it->sor == L2R) type = STRONG_L; else /* shouldn't happen! */ - abort (); + emacs_abort (); } if (type == WEAK_EN /* W2 */ && bidi_it->last_strong.type_after_w1 == STRONG_AL) @@ -1767,7 +1767,7 @@ : bidi_it->string.s); if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); next_char = (bidi_it->charpos + bidi_it->nchars >= eob ? BIDI_EOB @@ -1875,7 +1875,7 @@ || type == NEUTRAL_S || type == NEUTRAL_WS || type == NEUTRAL_ON)) - abort (); + emacs_abort (); if ((type != NEUTRAL_B /* Don't risk entering the long loop below if we are already at paragraph end. */ @@ -1930,7 +1930,7 @@ bidi_type_t next_type; if (bidi_it->scan_dir == -1) - abort (); + emacs_abort (); bidi_copy_it (&saved_it, bidi_it); /* Scan the text forward until we find the first non-neutral @@ -1979,7 +1979,7 @@ break; case WEAK_BN: if (!bidi_explicit_dir_char (bidi_it->ch)) - abort (); /* can't happen: BNs are skipped */ + emacs_abort (); /* can't happen: BNs are skipped */ /* FALLTHROUGH */ case NEUTRAL_B: /* Marched all the way to the end of this level run. @@ -1998,7 +1998,7 @@ } break; default: - abort (); + emacs_abort (); } type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type, next_type, current_level); @@ -2023,7 +2023,7 @@ /* This should always be called during a forward scan. */ if (bidi_it->scan_dir != 1) - abort (); + emacs_abort (); /* Reset the limit until which to ignore BNs if we step out of the area where we found only empty levels. */ @@ -2107,7 +2107,7 @@ if (bidi_it->scan_dir > 0) { if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); next_char_pos = bidi_it->charpos + bidi_it->nchars; } else if (bidi_it->charpos >= bob) @@ -2143,7 +2143,7 @@ if (bidi_it->scan_dir == -1) /* If we are going backwards, the iterator state is already cached from previous scans, and should be fully resolved. */ - abort (); + emacs_abort (); if (type == UNKNOWN_BT) type = bidi_type_of_next_char (bidi_it); @@ -2156,7 +2156,7 @@ || (type == WEAK_BN && prev_level == level)) { if (bidi_it->next_for_neutral.type == UNKNOWN_BT) - abort (); + emacs_abort (); /* If the cached state shows a neutral character, it was not resolved by bidi_resolve_neutral, so do it now. */ @@ -2170,7 +2170,7 @@ || type == WEAK_BN || type == WEAK_EN || type == WEAK_AN)) - abort (); + emacs_abort (); bidi_it->type = type; bidi_check_type (bidi_it->type); @@ -2192,7 +2192,7 @@ int dpp = bidi_it->disp_prop; if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); do { ch = bidi_fetch_char (bpos += clen, cpos += nc, &disp_pos, &dpp, &bs, fwp, &clen, &nc); @@ -2301,8 +2301,9 @@ { int new_level; + /* If we are at end of level, its edges must be cached. */ if (end_flag) - abort (); /* if we are at end of level, its edges must be cached */ + emacs_abort (); bidi_cache_iterator_state (bidi_it, 1); do { @@ -2320,7 +2321,7 @@ struct gcpro gcpro1; if (bidi_it->charpos < 0 || bidi_it->bytepos < 0) - abort (); + emacs_abort (); if (bidi_it->scan_dir == 0) { @@ -2431,7 +2432,7 @@ = bidi_at_paragraph_end (bidi_it->charpos + bidi_it->nchars, bidi_it->bytepos + bidi_it->ch_len); if (bidi_it->nchars <= 0) - abort (); + emacs_abort (); if (sep_len >= 0) { bidi_it->new_paragraph = 1; === modified file 'src/blockinput.h' --- src/blockinput.h 2012-01-19 07:21:25 +0000 +++ src/blockinput.h 2012-08-31 16:20:30 +0000 @@ -89,7 +89,7 @@ do_pending_atimers (); \ } \ else if (interrupt_input_blocked < 0) \ - abort (); \ + emacs_abort (); \ } \ while (0) @@ -124,4 +124,3 @@ extern void reinvoke_input_signal (void); #endif /* EMACS_BLOCKINPUT_H */ - === modified file 'src/buffer.c' --- src/buffer.c 2012-08-28 10:59:17 +0000 +++ src/buffer.c 2012-08-31 16:20:30 +0000 @@ -1242,7 +1242,7 @@ result = Fdefault_value (variable); break; } - default: abort (); + default: emacs_abort (); } return result; @@ -2671,7 +2671,7 @@ /* Make sure no markers were put on the chain while the chain value was incorrect. */ if (BUF_MARKERS (current_buffer)) - abort (); + emacs_abort (); BUF_MARKERS (current_buffer) = markers; @@ -3413,7 +3413,7 @@ } } if (p != overlay_str_buf + total) - abort (); + emacs_abort (); if (pstr) *pstr = overlay_str_buf; return total; @@ -4576,7 +4576,7 @@ case_Lisp_Int: predicate = Qintegerp; break; case Lisp_String: predicate = Qstringp; break; case Lisp_Symbol: predicate = Qsymbolp; break; - default: abort (); + default: emacs_abort (); } wrong_type_argument (predicate, newval); @@ -5257,7 +5257,7 @@ /* Need more room? */ if (idx >= MAX_PER_BUFFER_VARS) - abort (); + emacs_abort (); last_per_buffer_idx = idx; Vbuffer_alist = Qnil; @@ -5398,7 +5398,7 @@ if (PER_BUFFER_IDX (offset) == 0) /* Did a DEFVAR_PER_BUFFER without initializing the corresponding slot of buffer_local_flags */ - abort (); + emacs_abort (); } === modified file 'src/buffer.h' --- src/buffer.h 2012-08-28 06:20:08 +0000 +++ src/buffer.h 2012-08-31 16:20:30 +0000 @@ -1149,7 +1149,7 @@ We assume you know which buffer it's pointing into. */ #define OVERLAY_POSITION(P) \ - (MARKERP (P) ? marker_position (P) : (abort (), 0)) + (MARKERP (P) ? marker_position (P) : (emacs_abort (), 0)) /*********************************************************************** @@ -1189,7 +1189,7 @@ #define PER_BUFFER_VALUE_P(B, IDX) \ (((IDX) < 0 || IDX >= last_per_buffer_idx) \ - ? (abort (), 0) \ + ? (emacs_abort (), 0) \ : ((B)->local_flags[IDX] != 0)) /* Set whether per-buffer variable with index IDX has a buffer-local @@ -1198,7 +1198,7 @@ #define SET_PER_BUFFER_VALUE_P(B, IDX, VAL) \ do { \ if ((IDX) < 0 || (IDX) >= last_per_buffer_idx) \ - abort (); \ + emacs_abort (); \ (B)->local_flags[IDX] = (VAL); \ } while (0) === modified file 'src/bytecode.c' --- src/bytecode.c 2012-08-28 06:20:08 +0000 +++ src/bytecode.c 2012-08-31 16:20:30 +0000 @@ -435,7 +435,7 @@ #ifdef BYTE_CODE_SAFE #define CHECK_RANGE(ARG) \ - if (ARG >= bytestr_length) abort () + if (ARG >= bytestr_length) emacs_abort () #else /* not BYTE_CODE_SAFE */ @@ -508,7 +508,7 @@ if (FRAME_X_P (f) && FRAME_FONT (f)->direction != 0 && FRAME_FONT (f)->direction != 1) - abort (); + emacs_abort (); } #endif @@ -600,9 +600,9 @@ { #ifdef BYTE_CODE_SAFE if (top > stacke) - abort (); + emacs_abort (); else if (top < stack.bottom - 1) - abort (); + emacs_abort (); #endif #ifdef BYTE_CODE_METER @@ -1875,7 +1875,7 @@ /* Actually this is Bstack_ref with offset 0, but we use Bdup for that instead. */ /* CASE (Bstack_ref): */ - abort (); + emacs_abort (); /* Handy byte-codes for lexical binding. */ CASE (Bstack_ref1): @@ -1928,11 +1928,11 @@ #ifdef BYTE_CODE_SAFE if (op < Bconstant) { - abort (); + emacs_abort (); } if ((op -= Bconstant) >= const_length) { - abort (); + emacs_abort (); } PUSH (vectorp[op]); #else @@ -1951,7 +1951,7 @@ #ifdef BYTE_CODE_SAFE error ("binding stack not balanced (serious byte compiler bug)"); #else - abort (); + emacs_abort (); #endif return result; === modified file 'src/character.c' --- src/character.c 2012-08-26 08:41:36 +0000 +++ src/character.c 2012-08-31 16:20:30 +0000 @@ -541,7 +541,7 @@ int len = MULTIBYTE_LENGTH (ptr, endp); if (len == 0) - abort (); + emacs_abort (); ptr += len; chars++; } === modified file 'src/charset.c' --- src/charset.c 2012-08-26 08:41:36 +0000 +++ src/charset.c 2012-08-31 16:20:30 +0000 @@ -636,7 +636,7 @@ else { if (! CHARSET_UNIFIED_P (charset)) - abort (); + emacs_abort (); map = CHARSET_UNIFY_MAP (charset); } if (STRINGP (map)) @@ -2025,10 +2025,10 @@ c = XFASTINT (ch); charset = CHAR_CHARSET (c); if (! charset) - abort (); + emacs_abort (); code = ENCODE_CHAR (charset, c); if (code == CHARSET_INVALID_CODE (charset)) - abort (); + emacs_abort (); dimension = CHARSET_DIMENSION (charset); for (val = Qnil; dimension > 0; dimension--) { === modified file 'src/cm.c' --- src/cm.c 2012-01-19 07:21:25 +0000 +++ src/cm.c 2012-08-31 16:20:30 +0000 @@ -119,7 +119,7 @@ if (curX (tty) == FrameCols (tty)) { if (!MagicWrap (tty) || curY (tty) >= FrameRows (tty) - 1) - abort (); + emacs_abort (); if (tty->termscript) putc ('\r', tty->termscript); putc ('\r', tty->output); === modified file 'src/coding.c' --- src/coding.c 2012-08-28 05:49:02 +0000 +++ src/coding.c 2012-08-31 16:20:30 +0000 @@ -2051,7 +2051,7 @@ break; default: - abort (); + emacs_abort (); } CODING_DECODE_CHAR (coding, src, src_base, src_end, CHARSET_FROM_ID (charset_ID), code, c); @@ -2345,7 +2345,7 @@ int i; if (charbuf_end - charbuf < cmp_status->length) - abort (); + emacs_abort (); for (i = 0; i < cmp_status->length; i++) *charbuf++ = cmp_status->carryover[i]; coding->annotated = 1; @@ -2619,7 +2619,7 @@ preferred_charset_id = -1; break; default: - abort (); + emacs_abort (); } charbuf += -c - 1; continue; @@ -3482,7 +3482,7 @@ if (cmp_status->state != COMPOSING_NO) { if (charbuf_end - charbuf < cmp_status->length) - abort (); + emacs_abort (); for (i = 0; i < cmp_status->length; i++) *charbuf++ = cmp_status->carryover[i]; coding->annotated = 1; @@ -3864,7 +3864,7 @@ break; default: - abort (); + emacs_abort (); } if (cmp_status->state == COMPOSING_NO @@ -4419,7 +4419,7 @@ preferred_charset_id = -1; break; default: - abort (); + emacs_abort (); } charbuf += -c - 1; continue; @@ -4933,7 +4933,7 @@ } } if (code == CHARSET_INVALID_CODE (charset)) - abort (); + emacs_abort (); if (charset == charset_kanji) { int c1, c2; @@ -5023,7 +5023,7 @@ } } if (code == CHARSET_INVALID_CODE (charset)) - abort (); + emacs_abort (); if (charset == charset_big5) { int c1, c2; @@ -7190,7 +7190,7 @@ *buf++ = XINT (XCAR (components)); } else - abort (); + emacs_abort (); *head -= len; } } @@ -9428,7 +9428,7 @@ && changed[coding_priorities[j]]) j++; if (j == coding_category_max) - abort (); + emacs_abort (); priorities[i] = coding_priorities[j]; } === modified file 'src/conf_post.h' --- src/conf_post.h 2012-08-20 16:48:10 +0000 +++ src/conf_post.h 2012-08-31 16:20:30 +0000 @@ -178,9 +178,6 @@ #endif #include -/* If you think about removing the line below, note that the - MS-Windows build relies on it for declaration of 'environ' needed - by a few source files. */ #include #if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */ === modified file 'src/data.c' --- src/data.c 2012-08-27 17:23:48 +0000 +++ src/data.c 2012-08-31 16:20:30 +0000 @@ -108,7 +108,7 @@ to try and do that by checking the tagbits, but nowadays all tagbits are potentially valid. */ /* if ((unsigned int) XTYPE (value) >= Lisp_Type_Limit) - * abort (); */ + * emacs_abort (); */ xsignal2 (Qwrong_type_argument, predicate, value); } @@ -182,7 +182,7 @@ case Lisp_Misc_Float: return Qfloat; } - abort (); + emacs_abort (); case Lisp_Vectorlike: if (WINDOW_CONFIGURATIONP (object)) @@ -217,7 +217,7 @@ return Qfloat; default: - abort (); + emacs_abort (); } } @@ -551,7 +551,7 @@ /* In set_internal, we un-forward vars when their value is set to Qunbound. */ return Qt; - default: abort (); + default: emacs_abort (); } return (EQ (valcontents, Qunbound) ? Qnil : Qt); @@ -864,7 +864,7 @@ don't think anything will break. --lorentey */ return *(Lisp_Object *)(XKBOARD_OBJFWD (valcontents)->offset + (char *)FRAME_KBOARD (SELECTED_FRAME ())); - default: abort (); + default: emacs_abort (); } } @@ -950,7 +950,7 @@ break; default: - abort (); /* goto def; */ + emacs_abort (); /* goto def; */ } } @@ -1055,7 +1055,7 @@ /* FALLTHROUGH */ case SYMBOL_FORWARDED: return do_symval_forwarding (SYMBOL_FWD (sym)); - default: abort (); + default: emacs_abort (); } } @@ -1265,7 +1265,7 @@ store_symval_forwarding (/* sym, */ innercontents, newval, buf); break; } - default: abort (); + default: emacs_abort (); } return; } @@ -1316,7 +1316,7 @@ /* For other variables, get the current value. */ return do_symval_forwarding (valcontents); } - default: abort (); + default: emacs_abort (); } } @@ -1414,7 +1414,7 @@ else return Fset (symbol, value); } - default: abort (); + default: emacs_abort (); } } @@ -1538,7 +1538,7 @@ else if (BUFFER_OBJFWDP (valcontents.fwd)) return variable; break; - default: abort (); + default: emacs_abort (); } if (sym->constant) @@ -1611,7 +1611,7 @@ error ("Symbol %s may not be buffer-local", SDATA (SYMBOL_NAME (variable))); break; - default: abort (); + default: emacs_abort (); } if (sym->constant) @@ -1718,7 +1718,7 @@ if (blv->frame_local) return variable; break; - default: abort (); + default: emacs_abort (); } /* Get rid of this buffer's alist element, if any. */ @@ -1800,7 +1800,7 @@ error ("Symbol %s may not be frame-local", SDATA (SYMBOL_NAME (variable))); break; - default: abort (); + default: emacs_abort (); } if (sym->constant) @@ -1877,7 +1877,7 @@ } return Qnil; } - default: abort (); + default: emacs_abort (); } } @@ -1912,7 +1912,7 @@ case SYMBOL_FORWARDED: /* All BUFFER_OBJFWD slots become local if they are set. */ return (BUFFER_OBJFWDP (SYMBOL_FWD (sym)) ? Qt : Qnil); - default: abort (); + default: emacs_abort (); } } @@ -1956,7 +1956,7 @@ return SYMBOL_BLV (sym)->where; else return Qnil; - default: abort (); + default: emacs_abort (); } } @@ -2272,7 +2272,7 @@ return Qnil; default: - abort (); + emacs_abort (); } } === modified file 'src/dired.c' --- src/dired.c 2012-08-28 00:33:56 +0000 +++ src/dired.c 2012-08-31 16:20:30 +0000 @@ -275,7 +275,7 @@ /* Some bug somewhere. */ if (nchars > nbytes) - abort (); + emacs_abort (); STRING_SET_CHARS (fullname, nchars); if (nchars == nbytes) === modified file 'src/dispnew.c' --- src/dispnew.c 2012-08-30 15:07:00 +0000 +++ src/dispnew.c 2012-08-31 16:20:30 +0000 @@ -305,7 +305,7 @@ void __executable_start (void) { - abort (); + emacs_abort (); } #endif @@ -355,7 +355,7 @@ /* Detect the case that more matrices are freed than were allocated. */ if (--glyph_matrix_count < 0) - abort (); + emacs_abort (); /* Free glyph memory if MATRIX owns it. */ if (matrix->pool == NULL) @@ -2347,9 +2347,9 @@ /* Check that nothing is left allocated. */ if (glyph_matrix_count) - abort (); + emacs_abort (); if (glyph_pool_count) - abort (); + emacs_abort (); } @@ -3032,7 +3032,7 @@ { if (!glyph_row_slice_p (window_matrix->rows + i, frame_matrix->rows + j)) - abort (); + emacs_abort (); ++i, ++j; } } @@ -3461,7 +3461,7 @@ if (!last_seen_p && MATRIX_ROW_BOTTOM_Y (row) >= yb) last_seen_p = 1; else if (last_seen_p && row->enabled_p) - abort (); + emacs_abort (); } } @@ -4817,7 +4817,7 @@ struct glyph_matrix *desired_matrix = frame->desired_matrix; if (!current_matrix) - abort (); + emacs_abort (); /* Compute hash codes of all the lines. Also calculate number of changed lines, number of unchanged lines at the beginning, and @@ -5485,7 +5485,7 @@ else if (part == ON_RIGHT_MARGIN) area = RIGHT_MARGIN_AREA; else - abort (); + emacs_abort (); for (i = 0; row->enabled_p && i < w->current_matrix->nrows; ++i, ++row) if (wy >= row->y && wy < MATRIX_ROW_BOTTOM_Y (row)) @@ -6285,7 +6285,7 @@ /* Convert the initial frame to use the new display. */ if (f->output_method != output_initial) - abort (); + emacs_abort (); f->output_method = t->type; f->terminal = t; === modified file 'src/editfns.c' --- src/editfns.c 2012-08-28 06:20:08 +0000 +++ src/editfns.c 2012-08-31 16:20:30 +0000 @@ -4262,7 +4262,7 @@ } if (bufsize < p - buf) - abort (); + emacs_abort (); if (maybe_combine_byte) nchars = multibyte_chars_in_text ((unsigned char *) buf, p - buf); @@ -4602,7 +4602,7 @@ len1_byte, end2, start2_byte + len2_byte) || count_combining_after (BYTE_POS_ADDR (start1_byte), len1_byte, end2, start2_byte + len2_byte)) - abort (); + emacs_abort (); } else { @@ -4614,7 +4614,7 @@ len2_byte, end1, start1_byte + len1_byte) || count_combining_after (BYTE_POS_ADDR (start1_byte), len1_byte, end2, start2_byte + len2_byte)) - abort (); + emacs_abort (); } #endif === modified file 'src/emacs.c' --- src/emacs.c 2012-08-25 06:38:43 +0000 +++ src/emacs.c 2012-08-31 16:20:30 +0000 @@ -344,22 +344,6 @@ force_auto_save_soon (); } #endif - -/* We define abort, rather than using it from the library, - so that GDB can return from a breakpoint here. - MSDOS has its own definition in msdos.c. */ - -#if ! defined (DOS_NT) && ! defined (NO_ABORT) - -void -abort (void) -{ - kill (getpid (), SIGABRT); - /* This shouldn't be executed, but it prevents a warning. */ - exit (1); -} -#endif - /* Code for dealing with Lisp access to the Unix command line. */ @@ -1895,7 +1879,7 @@ } if (best < 0) - abort (); + emacs_abort (); /* Copy the highest priority remaining option, with its args, to NEW. Unless it is a duplicate of the previous one. */ === modified file 'src/eval.c' --- src/eval.c 2012-08-28 16:01:59 +0000 +++ src/eval.c 2012-08-31 16:20:30 +0000 @@ -1495,7 +1495,7 @@ immediate_quit = handling_signal = 0; abort_on_gc = 0; if (gc_in_progress || waiting_for_input) - abort (); + emacs_abort (); #if 0 /* rms: I don't know why this was here, but it is surely wrong for an error that is handled. */ @@ -1592,7 +1592,7 @@ xsignal (Lisp_Object error_symbol, Lisp_Object data) { Fsignal (error_symbol, data); - abort (); + emacs_abort (); } /* Like xsignal, but takes 0, 1, 2, or 3 args instead of a list. */ @@ -2045,7 +2045,7 @@ struct gcpro gcpro1, gcpro2, gcpro3; if (handling_signal) - abort (); + emacs_abort (); if (SYMBOLP (form)) { @@ -2209,7 +2209,7 @@ is supported by this code. We need to either rewrite the subr to use a different argument protocol, or add more cases to this switch. */ - abort (); + emacs_abort (); } } } @@ -2853,7 +2853,7 @@ /* If a subr takes more than 8 arguments without using MANY or UNEVALLED, we need to extend this function to support it. Until this is done, there is no way to call the function. */ - abort (); + emacs_abort (); } } } @@ -2984,7 +2984,7 @@ lexenv = Qnil; } else - abort (); + emacs_abort (); i = optional = rest = 0; for (; CONSP (syms_left); syms_left = XCDR (syms_left)) @@ -3198,7 +3198,7 @@ set_internal (symbol, value, Qnil, 1); break; } - default: abort (); + default: emacs_abort (); } } === modified file 'src/fileio.c' --- src/fileio.c 2012-08-28 06:20:08 +0000 +++ src/fileio.c 2012-08-31 16:20:30 +0000 @@ -1294,7 +1294,7 @@ if (!(IS_DIRECTORY_SEP (target[0]) && IS_DIRECTORY_SEP (target[1]))) #endif /* WINDOWSNT */ { - if (!drive) abort (); + if (!drive) emacs_abort (); target -= 2; target[0] = DRIVE_LETTER (drive); target[1] = ':'; === modified file 'src/fns.c' --- src/fns.c 2012-08-28 06:20:08 +0000 +++ src/fns.c 2012-08-31 16:20:30 +0000 @@ -2973,7 +2973,7 @@ encoded, length, NILP (no_line_break), !NILP (BVAR (current_buffer, enable_multibyte_characters))); if (encoded_length > allength) - abort (); + emacs_abort (); if (encoded_length < 0) { @@ -3029,7 +3029,7 @@ encoded, length, NILP (no_line_break), STRING_MULTIBYTE (string)); if (encoded_length > allength) - abort (); + emacs_abort (); if (encoded_length < 0) { @@ -3174,7 +3174,7 @@ decoded, length, multibyte, &inserted_chars); if (decoded_length > allength) - abort (); + emacs_abort (); if (decoded_length < 0) { @@ -3224,7 +3224,7 @@ decoded_length = base64_decode_1 (SSDATA (string), decoded, length, 0, NULL); if (decoded_length > length) - abort (); + emacs_abort (); else if (decoded_length >= 0) decoded_string = make_unibyte_string (decoded, decoded_length); else @@ -3980,7 +3980,7 @@ else if (EQ (h->weak, Qkey_and_value)) remove_p = !(key_known_to_survive_p && value_known_to_survive_p); else - abort (); + emacs_abort (); next = HASH_NEXT (h, i); @@ -4276,7 +4276,7 @@ break; default: - abort (); + emacs_abort (); } return hash; === modified file 'src/frame.c' --- src/frame.c 2012-08-22 16:05:04 +0000 +++ src/frame.c 2012-08-31 16:20:30 +0000 @@ -223,7 +223,7 @@ case output_ns: return Qns; default: - abort (); + emacs_abort (); } } @@ -629,7 +629,7 @@ #ifdef MSDOS if (sf->output_method != output_msdos_raw && sf->output_method != output_termcap) - abort (); + emacs_abort (); #else /* not MSDOS */ #ifdef WINDOWSNT /* This should work now! */ @@ -776,7 +776,7 @@ Lisp_Object focus; if (!FRAMEP (XCAR (tail))) - abort (); + emacs_abort (); focus = FRAME_FOCUS_FRAME (XFRAME (XCAR (tail))); @@ -906,7 +906,7 @@ /* There must always be at least one frame in Vframe_list. */ if (! CONSP (Vframe_list)) - abort (); + emacs_abort (); /* If this frame is dead, it won't be in Vframe_list, and we'll loop forever. Forestall that. */ @@ -984,7 +984,7 @@ /* There must always be at least one frame in Vframe_list. */ if (! CONSP (Vframe_list)) - abort (); + emacs_abort (); prev = Qnil; for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail)) @@ -993,7 +993,7 @@ f = XCAR (tail); if (!FRAMEP (f)) - abort (); + emacs_abort (); if (EQ (frame, f) && !NILP (prev)) return prev; @@ -1394,7 +1394,7 @@ this = XCAR (frames); if (!FRAMEP (this)) - abort (); + emacs_abort (); f1 = XFRAME (this); if (kb == FRAME_KBOARD (f1)) @@ -1430,7 +1430,7 @@ this = XCAR (frames); if (!FRAMEP (this)) - abort (); + emacs_abort (); f1 = XFRAME (this); /* Consider only frames on the same kboard @@ -1456,7 +1456,7 @@ that is prohibited at the top; you can't delete surrogate minibuffer frames. */ if (NILP (frame_with_minibuf)) - abort (); + emacs_abort (); kset_default_minibuffer_frame (kb, frame_with_minibuf); } @@ -2117,7 +2117,7 @@ swap_in_global_binding (sym); break; } - default: abort (); + default: emacs_abort (); } } @@ -3844,7 +3844,7 @@ } default: - abort (); + emacs_abort (); } } else === modified file 'src/frame.h' --- src/frame.h 2012-08-31 04:40:52 +0000 +++ src/frame.h 2012-08-31 16:21:56 +0000 @@ -981,7 +981,7 @@ ((FRAMEP (selected_frame) \ && FRAME_LIVE_P (XFRAME (selected_frame))) \ ? XFRAME (selected_frame) \ - : (abort (), (struct frame *) 0)) + : (emacs_abort (), (struct frame *) 0)) /*********************************************************************** === modified file 'src/ftfont.c' --- src/ftfont.c 2012-07-20 07:29:04 +0000 +++ src/ftfont.c 2012-08-31 16:20:30 +0000 @@ -1630,7 +1630,7 @@ FT_Glyph_Metrics *m; if (FT_Load_Glyph (ft_face, g->code, FT_LOAD_DEFAULT) != 0) - abort (); + emacs_abort (); m = &ft_face->glyph->metrics; if (flt_font_ft->matrix) { === modified file 'src/gtkutil.c' --- src/gtkutil.c 2012-08-30 16:07:44 +0000 +++ src/gtkutil.c 2012-08-31 16:20:30 +0000 @@ -254,7 +254,7 @@ free_widget_value (widget_value *wv) { if (wv->free_list) - abort (); + emacs_abort (); if (malloc_cpt > 25) { @@ -3523,7 +3523,7 @@ } /* Should never end up here */ - abort (); + emacs_abort (); } /* Remove pointer at IDX from id_to_widget. @@ -4091,7 +4091,7 @@ else { fprintf (stderr, "internal error: GTK_IMAGE_PIXBUF failed\n"); - abort (); + emacs_abort (); } } else if (store_type == GTK_IMAGE_ICON_NAME) @@ -4106,7 +4106,7 @@ else { fprintf (stderr, "internal error: store_type is %d\n", store_type); - abort (); + emacs_abort (); } } if (wmenuimage) === modified file 'src/image.c' --- src/image.c 2012-08-16 21:58:44 +0000 +++ src/image.c 2012-08-31 16:20:30 +0000 @@ -848,7 +848,7 @@ break; default: - abort (); + emacs_abort (); break; } === modified file 'src/indent.c' --- src/indent.c 2012-08-18 06:06:39 +0000 +++ src/indent.c 2012-08-31 16:20:30 +0000 @@ -122,7 +122,7 @@ int i; if (widthtab->header.size != 256) - abort (); + emacs_abort (); for (i = 0; i < 256; i++) if (character_width (i, disptab) @@ -144,7 +144,7 @@ bset_width_table (buf, Fmake_vector (make_number (256), make_number (0))); widthtab = XVECTOR (BVAR (buf, width_table)); if (widthtab->header.size != 256) - abort (); + emacs_abort (); for (i = 0; i < 256; i++) XSETFASTINT (widthtab->contents[i], character_width (i, disptab)); === modified file 'src/insdel.c' --- src/insdel.c 2012-08-28 06:20:08 +0000 +++ src/insdel.c 2012-08-31 16:20:30 +0000 @@ -73,13 +73,13 @@ for (tail = BUF_MARKERS (current_buffer); tail; tail = tail->next) { if (tail->buffer->text != current_buffer->text) - abort (); + emacs_abort (); if (tail->charpos > Z) - abort (); + emacs_abort (); if (tail->bytepos > Z_BYTE) - abort (); + emacs_abort (); if (multibyte && ! CHAR_HEAD_P (FETCH_BYTE (tail->bytepos))) - abort (); + emacs_abort (); } } @@ -812,7 +812,7 @@ #ifdef BYTE_COMBINING_DEBUG if (count_combining_before (string, nbytes, PT, PT_BYTE) || count_combining_after (string, nbytes, PT, PT_BYTE)) - abort (); + emacs_abort (); #endif /* Record deletion of the surrounding text that combines with @@ -947,7 +947,7 @@ the text that has been stored by copy_text. */ if (count_combining_before (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE) || count_combining_after (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE)) - abort (); + emacs_abort (); #endif record_insert (PT, nchars); @@ -1130,7 +1130,7 @@ the text that has been stored by copy_text. */ if (count_combining_before (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE) || count_combining_after (GPT_ADDR, outgoing_nbytes, PT, PT_BYTE)) - abort (); + emacs_abort (); #endif record_insert (PT, nchars); @@ -1191,7 +1191,7 @@ #ifdef BYTE_COMBINING_DEBUG if (count_combining_before (GPT_ADDR, len_byte, from, from_byte) || count_combining_after (GPT_ADDR, len_byte, from, from_byte)) - abort (); + emacs_abort (); #endif if (STRINGP (prev_text)) @@ -1374,7 +1374,7 @@ the text that has been stored by copy_text. */ if (count_combining_before (GPT_ADDR, outgoing_insbytes, from, from_byte) || count_combining_after (GPT_ADDR, outgoing_insbytes, from, from_byte)) - abort (); + emacs_abort (); #endif if (! EQ (BVAR (current_buffer, undo_list), Qt)) @@ -1500,7 +1500,7 @@ the text that has been stored by copy_text. */ if (count_combining_before (GPT_ADDR, insbytes, from, from_byte) || count_combining_after (GPT_ADDR, insbytes, from, from_byte)) - abort (); + emacs_abort (); #endif GAP_SIZE -= insbytes; @@ -1708,7 +1708,7 @@ #ifdef BYTE_COMBINING_DEBUG if (count_combining_before (BUF_BYTE_ADDRESS (current_buffer, to_byte), Z_BYTE - to_byte, from, from_byte)) - abort (); + emacs_abort (); #endif if (ret_string || ! EQ (BVAR (current_buffer, undo_list), Qt)) === modified file 'src/intervals.c' --- src/intervals.c 2012-08-18 06:06:39 +0000 +++ src/intervals.c 2012-08-31 16:20:30 +0000 @@ -200,13 +200,13 @@ i0_sym = XCAR (i0_cdr); i0_cdr = XCDR (i0_cdr); if (!CONSP (i0_cdr)) - return 0; /* abort (); */ + return 0; i1_val = i1->plist; while (CONSP (i1_val) && !EQ (XCAR (i1_val), i0_sym)) { i1_val = XCDR (i1_val); if (!CONSP (i1_val)) - return 0; /* abort (); */ + return 0; i1_val = XCDR (i1_val); } @@ -224,7 +224,7 @@ i1_cdr = XCDR (i1_cdr); if (!CONSP (i1_cdr)) - return 0; /* abort (); */ + return 0; i1_cdr = XCDR (i1_cdr); } @@ -1255,7 +1255,7 @@ else if (STRINGP (owner)) set_string_intervals (owner, parent); else - abort (); + emacs_abort (); return; } @@ -1410,7 +1410,7 @@ start, length); else { - IF_LINT (if (length < - TYPE_MAXIMUM (ptrdiff_t)) abort ();) + lint_assume (- TYPE_MAXIMUM (ptrdiff_t) <= length); adjust_intervals_for_deletion (buffer, start, -length); } } @@ -1470,7 +1470,7 @@ /* This must be the rightmost or last interval and cannot be merged right. The caller should have known. */ - abort (); + emacs_abort (); } /* Merge interval I with its lexicographic predecessor. The resulting @@ -1526,7 +1526,7 @@ /* This must be the leftmost or first interval and cannot be merged left. The caller should have known. */ - abort (); + emacs_abort (); } /* Create a copy of SOURCE but with the default value of UP. */ @@ -2172,7 +2172,7 @@ else if (STRINGP (object)) i = find_interval (string_intervals (object), pos); else - abort (); + emacs_abort (); if (!i || (i->position + LENGTH (i) <= pos)) return 0; @@ -2211,7 +2211,7 @@ /* Perhaps we should just change `position' to the limit. */ if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer)) - abort (); + emacs_abort (); /* Ignore narrowing, so that a local map continues to be valid even if the visible region contains no characters and hence no properties. */ === modified file 'src/keyboard.c' --- src/keyboard.c 2012-08-28 06:20:08 +0000 +++ src/keyboard.c 2012-08-31 16:20:30 +0000 @@ -1032,7 +1032,7 @@ pop_kboard (); /* The pop should not change the kboard. */ if (single_kboard && current_kboard != prev) - abort (); + emacs_abort (); } return Qnil; } @@ -2614,13 +2614,13 @@ Lisp_Object last = KVAR (kb, kbd_queue); /* We shouldn't get here if we were in single-kboard mode! */ if (single_kboard) - abort (); + emacs_abort (); if (CONSP (last)) { while (CONSP (XCDR (last))) last = XCDR (last); if (!NILP (XCDR (last))) - abort (); + emacs_abort (); } if (!CONSP (last)) kset_kbd_queue (kb, Fcons (c, Qnil)); @@ -2793,7 +2793,7 @@ if (current_kboard->kbd_queue_has_data) { if (!CONSP (KVAR (current_kboard, kbd_queue))) - abort (); + emacs_abort (); c = XCAR (KVAR (current_kboard, kbd_queue)); kset_kbd_queue (current_kboard, XCDR (KVAR (current_kboard, kbd_queue))); @@ -2860,7 +2860,7 @@ while (CONSP (XCDR (last))) last = XCDR (last); if (!NILP (XCDR (last))) - abort (); + emacs_abort (); } if (!CONSP (last)) kset_kbd_queue (kb, Fcons (c, Qnil)); @@ -3569,7 +3569,7 @@ struct input_event *hold_quit) { if (event->kind == NO_EVENT) - abort (); + emacs_abort (); if (hold_quit && hold_quit->kind != NO_EVENT) return; @@ -3964,7 +3964,7 @@ #else /* We're getting selection request events, but we don't have a window system. */ - abort (); + emacs_abort (); #endif } @@ -4201,7 +4201,7 @@ else /* We were promised by the above while loop that there was something for us to read! */ - abort (); + emacs_abort (); input_pending = readable_events (0); @@ -4270,7 +4270,7 @@ #else /* We're getting selection request events, but we don't have a window system. */ - abort (); + emacs_abort (); #endif } } @@ -5624,7 +5624,7 @@ else if (FRAMEP (event->frame_or_window)) f = XFRAME (event->frame_or_window); else - abort (); + emacs_abort (); if (FRAME_WINDOW_P (f)) fuzz = double_click_fuzz; @@ -5731,7 +5731,7 @@ else /* Every mouse event should either have the down_modifier or the up_modifier set. */ - abort (); + emacs_abort (); { /* Get the symbol we should use for the mouse click. */ @@ -5792,7 +5792,7 @@ else if (FRAMEP (event->frame_or_window)) fr = XFRAME (event->frame_or_window); else - abort (); + emacs_abort (); fuzz = FRAME_WINDOW_P (fr) ? double_click_fuzz : double_click_fuzz / 8; @@ -5812,7 +5812,7 @@ else /* Every wheel event should either have the down_modifier or the up_modifier set. */ - abort (); + emacs_abort (); if (event->kind == HORIZ_WHEEL_EVENT) symbol_num += 2; @@ -5981,7 +5981,7 @@ { char *name = find_user_signal_name (event->code); if (!name) - abort (); + emacs_abort (); return intern (name); } @@ -6062,7 +6062,7 @@ /* The 'kind' field of the event is something we don't recognize. */ default: - abort (); + emacs_abort (); } } @@ -6239,7 +6239,7 @@ /* Only the event queue may use the `up' modifier; it should always be turned into a click or drag event before presented to lisp code. */ if (modifiers & up_modifier) - abort (); + emacs_abort (); if (modifiers & alt_modifier) { *p++ = 'A'; *p++ = '-'; } if (modifiers & ctrl_modifier) { *p++ = 'C'; *p++ = '-'; } @@ -6334,7 +6334,7 @@ Qnil); if (modifiers & ~INTMASK) - abort (); + emacs_abort (); XSETFASTINT (mask, modifiers); elements = Fcons (unmodified, Fcons (mask, Qnil)); @@ -7011,7 +7011,7 @@ if (terminal->type != output_termcap && terminal->type != output_msdos_raw) - abort (); + emacs_abort (); /* XXX I think the following code should be moved to separate hook functions in system-dependent files. */ @@ -8454,7 +8454,7 @@ /* Append entries from tool_bar_item_properties to the end of tool_bar_items_vector. */ - vcopy (tool_bar_items_vector, ntool_bar_items, + vcopy (tool_bar_items_vector, ntool_bar_items, XVECTOR (tool_bar_item_properties)->contents, TOOL_BAR_ITEM_NSLOTS); ntool_bar_items += TOOL_BAR_ITEM_NSLOTS; } @@ -10912,7 +10912,7 @@ #endif /* not MSDOS */ fflush (stdout); if (((c = getchar ()) & ~040) == 'Y') - abort (); + emacs_abort (); while (c != '\n') c = getchar (); #ifdef MSDOS printf ("\r\nContinuing...\r\n"); @@ -10993,7 +10993,7 @@ #ifdef POLL_FOR_INPUT /* May be > 1 if in recursive minibuffer. */ if (poll_suppress_count == 0) - abort (); + emacs_abort (); #endif #endif if (FRAMEP (internal_last_event_frame) @@ -11351,7 +11351,7 @@ for (kbp = &all_kboards; *kbp != kb; kbp = &(*kbp)->next_kboard) if (*kbp == NULL) - abort (); + emacs_abort (); *kbp = kb->next_kboard; /* Prevent a dangling reference to KB. */ @@ -11362,7 +11362,7 @@ current_kboard = FRAME_KBOARD (XFRAME (selected_frame)); single_kboard = 0; if (current_kboard == kb) - abort (); + emacs_abort (); } wipe_kboard (kb); === modified file 'src/keymap.c' --- src/keymap.c 2012-08-28 06:20:08 +0000 +++ src/keymap.c 2012-08-31 16:20:30 +0000 @@ -2916,7 +2916,7 @@ char *title, *p; if (!SYMBOLP (modes[i])) - abort (); + emacs_abort (); p = title = alloca (42 + SCHARS (SYMBOL_NAME (modes[i]))); *p++ = '\f'; === modified file 'src/lisp.h' --- src/lisp.h 2012-08-31 10:53:19 +0000 +++ src/lisp.h 2012-08-31 16:21:56 +0000 @@ -2288,7 +2288,7 @@ #define UNGCPRO \ ((--gcpro_level != gcpro1.level) \ - ? (abort (), 0) \ + ? (emacs_abort (), 0) \ : ((gcprolist = gcpro1.next), 0)) #endif /* DEBUG_GCPRO */ @@ -3406,6 +3406,7 @@ extern int set_window_size (int, int, int); extern EMACS_INT get_random (void); extern void seed_random (long); +extern _Noreturn void emacs_abort (void) NO_INLINE; extern int emacs_open (const char *, int, int); extern int emacs_close (int); extern ptrdiff_t emacs_read (int, char *, ptrdiff_t); === modified file 'src/lread.c' --- src/lread.c 2012-08-30 00:47:33 +0000 +++ src/lread.c 2012-08-31 16:20:30 +0000 @@ -1696,7 +1696,7 @@ /* We assume START is nil when input is not from a buffer. */ if (! NILP (start) && !b) - abort (); + emacs_abort (); specbind (Qstandard_input, readcharfun); /* GCPROs readcharfun. */ specbind (Qcurrent_load_list, Qnil); @@ -3673,7 +3673,7 @@ /* Creating a non-pure string from a string literal not implemented yet. We could just use make_string here and live with the extra copy. */ - abort (); + emacs_abort (); return Fintern (make_pure_c_string (str, len), obarray); } === modified file 'src/marker.c' --- src/marker.c 2012-07-29 11:20:43 +0000 +++ src/marker.c 2012-08-31 16:20:30 +0000 @@ -59,7 +59,7 @@ bytepos - BUF_BEG_BYTE (b)); if (charpos - 1 != nchars) - abort (); + emacs_abort (); } #else /* not MARKER_DEBUG */ @@ -67,7 +67,7 @@ #define byte_char_debug_check(b, charpos, bytepos) do { } while (0) #endif /* MARKER_DEBUG */ - + void clear_charpos_cache (struct buffer *b) { @@ -142,7 +142,7 @@ ptrdiff_t best_below, best_below_byte; if (charpos < BUF_BEG (b) || charpos > BUF_Z (b)) - abort (); + emacs_abort (); best_above = BUF_Z (b); best_above_byte = BUF_Z_BYTE (b); @@ -296,7 +296,7 @@ ptrdiff_t best_below, best_below_byte; if (bytepos < BUF_BEG_BYTE (b) || bytepos > BUF_Z_BYTE (b)) - abort (); + emacs_abort (); best_above = BUF_Z (b); best_above_byte = BUF_Z_BYTE (b); @@ -506,7 +506,7 @@ else { register ptrdiff_t charpos, bytepos; - + CHECK_NUMBER_COERCE_MARKER (position); charpos = clip_to_bounds (restricted ? BUF_BEGV (b) : BUF_BEG (b), XINT (position), @@ -570,8 +570,8 @@ if (b) { - attach_marker - (m, b, + attach_marker + (m, b, clip_to_bounds (BUF_BEGV (b), charpos, BUF_ZV (b)), clip_to_bounds (BUF_BEGV_BYTE (b), bytepos, BUF_ZV_BYTE (b))); } @@ -605,12 +605,12 @@ { if (*prev == BUF_MARKERS (b)) { - /* Deleting first marker from the buffer's chain. Crash + /* Deleting first marker from the buffer's chain. Crash if new first marker in chain does not say it belongs to the same buffer, or at least that they have the same base buffer. */ if (tail->next && b->text != tail->next->buffer->text) - abort (); + emacs_abort (); } *prev = tail->next; /* We have removed the marker from the chain; === modified file 'src/menu.c' --- src/menu.c 2012-08-05 15:47:28 +0000 +++ src/menu.c 2012-08-31 16:20:30 +0000 @@ -744,7 +744,7 @@ /* All items should be contained in panes. */ if (panes_seen == 0) - abort (); + emacs_abort (); item_name = AREF (menu_items, i + MENU_ITEMS_ITEM_NAME); enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE); @@ -818,7 +818,7 @@ else if (EQ (type, QCtoggle)) wv->button_type = BUTTON_TYPE_TOGGLE; else - abort (); + emacs_abort (); wv->selected = !NILP (selected); if (! STRINGP (help)) === modified file 'src/minibuf.c' --- src/minibuf.c 2012-08-28 06:20:08 +0000 +++ src/minibuf.c 2012-08-31 16:20:30 +0000 @@ -110,7 +110,7 @@ /* I don't think that any frames may validly have a null minibuffer window anymore. */ if (NILP (sf->minibuffer_window)) - abort (); + emacs_abort (); /* Under X, we come here with minibuf_window being the minibuffer window of the unused termcap window created in === modified file 'src/msdos.c' --- src/msdos.c 2012-08-21 10:21:04 +0000 +++ src/msdos.c 2012-08-31 16:20:30 +0000 @@ -796,7 +796,7 @@ /* The default face for the frame should always be realized and cached. */ if (!fp) - abort (); + emacs_abort (); } screen_face = face; fg = fp->foreground; @@ -1394,7 +1394,7 @@ static void IT_delete_glyphs (struct frame *f, int n) { - abort (); + emacs_abort (); } /* set-window-configuration on window.c needs this. */ @@ -3014,7 +3014,7 @@ const char *p; if (!enable) - abort (); + emacs_abort (); IT_menu_make_room (menu); menu->submenu[menu->count] = IT_menu_create (); @@ -4120,7 +4120,7 @@ FD_ZERO (efds); if (nfds != 1) - abort (); + emacs_abort (); /* If we are looking only for the terminal, with no timeout, just read it and wait -- that's more efficient. */ @@ -4215,26 +4215,8 @@ } #endif -#ifdef abort -#undef abort -void -dos_abort (char *file, int line) -{ - char buffer1[200], buffer2[400]; - int i, j; - - sprintf (buffer1, "", file, line); - for (i = j = 0; buffer1[i]; i++) { - buffer2[j++] = buffer1[i]; - buffer2[j++] = 0x70; - } - dosmemput (buffer2, j, (int)ScreenPrimary); - ScreenSetCursor (2, 0); - abort (); -} -#else -void -abort (void) +void +emacs_abort (void) { dos_ttcooked (); ScreenSetCursor (10, 0); @@ -4250,7 +4232,6 @@ #endif /* __DJGPP_MINOR__ >= 2 */ exit (2); } -#endif void syms_of_msdos (void) === modified file 'src/nsfont.m' --- src/nsfont.m 2012-08-19 00:53:29 +0000 +++ src/nsfont.m 2012-08-31 16:20:30 +0000 @@ -1330,7 +1330,7 @@ font_info->glyphs[block] = xmalloc (0x100 * sizeof (unsigned short)); if (!unichars || !(font_info->glyphs[block])) - abort (); + emacs_abort (); /* create a string containing all Unicode characters in this block */ for (idx = block<<8, i = 0; i < 0x100; idx++, i++) @@ -1405,7 +1405,7 @@ font_info->metrics[block] = xzalloc (0x100 * sizeof (struct font_metrics)); if (!(font_info->metrics[block])) - abort (); + emacs_abort (); metrics = font_info->metrics[block]; for (g = block<<8, i =0; i<0x100 && g < numGlyphs; g++, i++, metrics++) === modified file 'src/nsmenu.m' --- src/nsmenu.m 2012-08-28 16:05:17 +0000 +++ src/nsmenu.m 2012-08-31 16:20:30 +0000 @@ -948,7 +948,7 @@ else if (EQ (type, QCradio)) wv->button_type = BUTTON_TYPE_RADIO; else - abort (); + emacs_abort (); wv->selected = !NILP (selected); === modified file 'src/nsterm.m' --- src/nsterm.m 2012-08-28 16:01:59 +0000 +++ src/nsterm.m 2012-08-31 16:20:30 +0000 @@ -3340,7 +3340,7 @@ break; default: - abort (); + emacs_abort (); } /* Draw box if not done already. */ @@ -3475,7 +3475,7 @@ if (++apploopnr != 1) { - abort (); + emacs_abort (); } [NSApp run]; --apploopnr; @@ -3515,7 +3515,7 @@ [outerpool release]; outerpool = [[NSAutoreleasePool alloc] init]; - + send_appdefined = YES; if (nr > 0) { @@ -3568,7 +3568,7 @@ emacs_event = &event; if (++apploopnr != 1) { - abort(); + emacs_abort (); } [NSApp run]; --apploopnr; @@ -3586,7 +3586,7 @@ { int t; if ([ev type] != NSApplicationDefined) - abort (); + emacs_abort (); t = [ev data1]; last_appdefined_event = 0; @@ -4053,7 +4053,7 @@ { fprintf (stderr, "Failed to create pipe: %s\n", emacs_strerror (errno)); - abort (); + emacs_abort (); } fcntl (selfds[0], F_SETFL, O_NONBLOCK|fcntl (selfds[0], F_GETFL)); @@ -4273,7 +4273,7 @@ } else // force a stack trace to happen { - abort(); + emacs_abort (); } } @@ -4534,10 +4534,10 @@ /* Don't open files from the command line unconditionally, Cocoa parses the command line wrong, --option value tries to open value if --option is the last option. */ - while ((file = [files nextObject]) != nil) + while ((file = [files nextObject]) != nil) if (ns_do_open_file || not_in_argv (file)) [ns_pending_files addObject: file]; - + [self replyToOpenOrPrint: NSApplicationDelegateReplySuccess]; } @@ -4604,7 +4604,7 @@ /* NSTRACE (fd_handler); */ - for (;;) + for (;;) { [pool release]; pool = [[NSAutoreleasePool alloc] init]; @@ -4889,7 +4889,7 @@ is_right_key = (flags & NSRightCommandKeyMask) == NSRightCommandKeyMask; is_left_key = (flags & NSLeftCommandKeyMask) == NSLeftCommandKeyMask || (! is_right_key && (flags & NSCommandKeyMask) == NSCommandKeyMask); - + if (is_right_key) emacs_event->modifiers |= parse_solitary_modifier (EQ (ns_right_command_modifier, Qleft) @@ -5853,7 +5853,7 @@ NSTRACE (menuDown); if (context_menu_value == -1) context_menu_value = [sender tag]; - else + else { NSInteger tag = [sender tag]; find_and_call_menu_selection (emacsframe, emacsframe->menu_bar_items_used, @@ -6180,7 +6180,7 @@ Lisp_Object str = Qnil; struct frame *f = SELECTED_FRAME (); struct buffer *curbuf = XBUFFER (XWINDOW (f->selected_window)->buffer); - + if ([attribute isEqualToString:NSAccessibilityRoleAttribute]) return NSAccessibilityTextFieldRole; @@ -6193,13 +6193,13 @@ { if (! NILP (BVAR (curbuf, mark_active))) str = ns_get_local_selection (QPRIMARY, QUTF8_STRING); - + if (NILP (str)) { ptrdiff_t start_byte = BUF_BEGV_BYTE (curbuf); ptrdiff_t byte_range = BUF_ZV_BYTE (curbuf) - start_byte; ptrdiff_t range = BUF_ZV (curbuf) - BUF_BEGV (curbuf); - + if (! NILP (BVAR (curbuf, enable_multibyte_characters))) str = make_uninit_multibyte_string (range, byte_range); else @@ -6209,9 +6209,9 @@ memcpy (SDATA (str), BYTE_POS_ADDR (start_byte), byte_range); } } - - - if (! NILP (str)) + + + if (! NILP (str)) { if (CONSP (str) && SYMBOLP (XCAR (str))) { @@ -6226,7 +6226,7 @@ return nsStr; } } - + return [super accessibilityAttributeValue:attribute]; } #endif /* NS_IMPL_COCOA */ === modified file 'src/print.c' --- src/print.c 2012-08-28 06:20:08 +0000 +++ src/print.c 2012-08-31 16:20:30 +0000 @@ -2060,7 +2060,7 @@ { int len; /* We're in trouble if this happens! - Probably should just abort () */ + Probably should just emacs_abort (). */ strout ("#ai_addrlen); datagram_address[s].len = lres->ai_addrlen; if (is_server) @@ -3982,7 +3982,7 @@ FD_CLR (inchannel, &connect_wait_mask); FD_CLR (inchannel, &write_mask); if (--num_pending_connects < 0) - abort (); + emacs_abort (); } #endif if (inchannel == max_process_desc) @@ -4761,7 +4761,7 @@ Cleanup occurs c/o status_notify after SIGCLD. */ no_avail = 1; /* Cannot depend on values returned */ #else - abort (); + emacs_abort (); #endif } else @@ -5002,7 +5002,7 @@ FD_CLR (channel, &connect_wait_mask); FD_CLR (channel, &write_mask); if (--num_pending_connects < 0) - abort (); + emacs_abort (); proc = chan_process[channel]; if (NILP (proc)) @@ -6363,7 +6363,7 @@ #endif /* not HAVE_SHUTDOWN */ new_outfd = emacs_open (NULL_DEVICE, O_WRONLY, 0); if (new_outfd < 0) - abort (); + emacs_abort (); old_outfd = XPROCESS (proc)->outfd; if (!proc_encode_coding_system[new_outfd]) === modified file 'src/ralloc.c' --- src/ralloc.c 2012-08-28 16:01:59 +0000 +++ src/ralloc.c 2012-08-31 16:20:30 +0000 @@ -237,7 +237,7 @@ } if (! heap) - abort (); + emacs_abort (); /* If we can't fit SIZE bytes in that heap, try successive later heaps. */ @@ -330,7 +330,7 @@ /* This heap should have no blocs in it. */ if (last_heap->first_bloc != NIL_BLOC || last_heap->last_bloc != NIL_BLOC) - abort (); + emacs_abort (); /* Return the last heap, with its header, to the system. */ excess = (char *)last_heap->end - (char *)last_heap->start; @@ -355,7 +355,7 @@ which returns the entire last heap to the system, seems unlikely to trigger this mode of failure. */ if (last_heap->end != (*real_morecore) (0)) - abort (); + emacs_abort (); } } } @@ -452,7 +452,7 @@ /* No need to ever call this if arena is frozen, bug somewhere! */ if (r_alloc_freeze_level) - abort (); + emacs_abort (); while (b) { @@ -576,7 +576,7 @@ /* No need to ever call this if arena is frozen, bug somewhere! */ if (r_alloc_freeze_level) - abort (); + emacs_abort (); if (bloc == NIL_BLOC || size == bloc->size) return 1; @@ -588,7 +588,7 @@ } if (heap == NIL_HEAP) - abort (); + emacs_abort (); old_size = bloc->size; bloc->size = size; @@ -937,7 +937,7 @@ dead_bloc = find_bloc (ptr); if (dead_bloc == NIL_BLOC) - abort (); /* Double free? PTR not originally used to allocate? */ + emacs_abort (); /* Double free? PTR not originally used to allocate? */ free_bloc (dead_bloc); *ptr = 0; @@ -979,7 +979,7 @@ bloc = find_bloc (ptr); if (bloc == NIL_BLOC) - abort (); /* Already freed? PTR not originally used to allocate? */ + emacs_abort (); /* Already freed? PTR not originally used to allocate? */ if (size < bloc->size) { @@ -1152,7 +1152,7 @@ } if (bloc == NIL_BLOC || bloc->variable != old) - abort (); /* Already freed? OLD not originally used to allocate? */ + emacs_abort (); /* Already freed? OLD not originally used to allocate? */ /* Update variable to point to the new location. */ bloc->variable = new; @@ -1193,7 +1193,7 @@ first_heap->start = first_heap->bloc_start = virtual_break_value = break_value = (*real_morecore) (0); if (break_value == NIL) - abort (); + emacs_abort (); extra_bytes = ROUNDUP (50000); #endif === modified file 'src/region-cache.c' --- src/region-cache.c 2012-08-15 16:21:41 +0000 +++ src/region-cache.c 2012-08-31 16:20:30 +0000 @@ -194,7 +194,7 @@ if (BOUNDARY_POS (c, low) > pos || (low + 1 < c->cache_len && BOUNDARY_POS (c, low + 1) <= pos)) - abort (); + emacs_abort (); return low; } @@ -217,12 +217,12 @@ if (pos < 0 || pos > c->cache_len) - abort (); + emacs_abort (); /* We mustn't ever try to put the gap before the dummy start boundary. That must always be start-relative. */ if (pos == 0) - abort (); + emacs_abort (); /* Need we move the gap right? */ while (gap_start < pos) @@ -291,24 +291,24 @@ { /* i must be a valid cache index. */ if (i < 0 || i > c->cache_len) - abort (); + emacs_abort (); /* We must never want to insert something before the dummy first boundary. */ if (i == 0) - abort (); + emacs_abort (); /* We must only be inserting things in order. */ if (! (BOUNDARY_POS (c, i - 1) < pos && (i == c->cache_len || pos < BOUNDARY_POS (c, i)))) - abort (); + emacs_abort (); /* The value must be different from the ones around it. However, we temporarily create boundaries that establish the same value as the subsequent boundary, so we're not going to flag that case. */ if (BOUNDARY_VALUE (c, i - 1) == value) - abort (); + emacs_abort (); move_cache_gap (c, i, 1); @@ -331,16 +331,16 @@ /* Gotta be in range. */ if (start < 0 || end > c->cache_len) - abort (); + emacs_abort (); /* Gotta be in order. */ if (start > end) - abort (); + emacs_abort (); /* Can't delete the dummy entry. */ if (start == 0 && end >= 1) - abort (); + emacs_abort (); /* Minimize gap motion. If we're deleting nothing, do nothing. */ if (len == 0) @@ -380,10 +380,10 @@ ptrdiff_t start, ptrdiff_t end, int value) { if (start > end) - abort (); + emacs_abort (); if (start < c->buffer_beg || end > c->buffer_end) - abort (); + emacs_abort (); /* Eliminate this case; then we can assume that start and end-1 are both the locations of real characters in the buffer. */ === modified file 'src/scroll.c' --- src/scroll.c 2012-07-05 18:35:48 +0000 +++ src/scroll.c 2012-08-31 16:20:30 +0000 @@ -195,13 +195,13 @@ { cost = p1->writecost + first_insert_cost[i]; if ((int) p1->insertcount > i) - abort (); + emacs_abort (); cost1 = p1->insertcost + next_insert_cost[i - p1->insertcount]; } p->insertcost = min (cost, cost1) + draw_cost[i] + extra_cost; p->insertcount = (cost < cost1) ? 1 : p1->insertcount + 1; if ((int) p->insertcount > i) - abort (); + emacs_abort (); /* Calculate the cost if we do a delete line after outputting this line. === modified file 'src/search.c' --- src/search.c 2012-08-17 17:08:30 +0000 +++ src/search.c 2012-08-31 16:20:30 +0000 @@ -1009,7 +1009,7 @@ if (!EQ (noerror, Qt)) { if (lim < BEGV || lim > ZV) - abort (); + emacs_abort (); SET_PT_BOTH (lim, lim_byte); return Qnil; #if 0 /* This would be clean, but maybe programs depend on @@ -1022,7 +1022,7 @@ } if (np < BEGV || np > ZV) - abort (); + emacs_abort (); SET_PT (np); @@ -2770,7 +2770,7 @@ } else /* last_thing_searched must always be Qt, a buffer, or Qnil. */ - abort (); + emacs_abort (); len = 2 * i + 2; } === modified file 'src/sound.c' --- src/sound.c 2012-07-29 08:18:29 +0000 +++ src/sound.c 2012-08-31 16:20:30 +0000 @@ -843,7 +843,7 @@ } } else - abort (); + emacs_abort (); } @@ -1138,7 +1138,7 @@ } } else - abort (); + emacs_abort (); } === modified file 'src/sysdep.c' --- src/sysdep.c 2012-08-18 02:49:24 +0000 +++ src/sysdep.c 2012-08-31 03:06:13 +0000 @@ -1838,6 +1838,15 @@ } #endif +#ifndef HAVE_NTGUI +/* Using emacs_abort lets GDB return from a breakpoint here. */ +void +emacs_abort (void) +{ + (abort) (); +} +#endif + int emacs_open (const char *path, int oflag, int mode) { === modified file 'src/term.c' --- src/term.c 2012-08-31 10:53:19 +0000 +++ src/term.c 2012-08-31 16:21:56 +0000 @@ -1498,7 +1498,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } else @@ -1695,7 +1695,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } else @@ -1780,7 +1780,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } else @@ -2250,7 +2250,7 @@ struct terminal *t; if (!name) - abort (); + emacs_abort (); for (t = terminal_list; t; t = t->next_terminal) { @@ -2798,7 +2798,7 @@ struct tty_output *t = xzalloc (sizeof *t); if (! FRAME_TERMCAP_P (f)) - abort (); + emacs_abort (); t->display_info = FRAME_TERMINAL (f)->display_info.tty; @@ -2811,7 +2811,7 @@ tty_free_frame_resources (struct frame *f) { if (! FRAME_TERMCAP_P (f)) - abort (); + emacs_abort (); if (FRAME_FACE_CACHE (f)) free_frame_faces (f); @@ -2827,7 +2827,7 @@ tty_free_frame_resources (struct frame *f) { if (! FRAME_TERMCAP_P (f) && ! FRAME_MSDOS_P (f)) - abort (); + emacs_abort (); if (FRAME_FACE_CACHE (f)) free_frame_faces (f); @@ -3108,7 +3108,7 @@ #ifndef TERMINFO if (strlen (tty->termcap_term_buffer) >= buffer_size) - abort (); + emacs_abort (); buffer_size = strlen (tty->termcap_term_buffer); #endif tty->termcap_strings_buffer = area = xmalloc (buffer_size); @@ -3467,7 +3467,7 @@ verror (str1, ap); va_end (ap); - abort (); + emacs_abort (); } void @@ -3494,7 +3494,7 @@ return; if (terminal->type != output_termcap) - abort (); + emacs_abort (); tty = terminal->display_info.tty; @@ -3508,7 +3508,7 @@ if (! p) /* This should not happen. */ - abort (); + emacs_abort (); p->next = tty->next; tty->next = 0; === modified file 'src/termchar.h' --- src/termchar.h 2012-06-09 16:44:44 +0000 +++ src/termchar.h 2012-08-31 16:20:30 +0000 @@ -207,6 +207,6 @@ (((f)->output_method == output_termcap \ || (f)->output_method == output_msdos_raw) \ ? (f)->terminal->display_info.tty \ - : (abort (), (struct tty_display_info *) 0)) + : (emacs_abort (), (struct tty_display_info *) 0)) #define CURTTY() FRAME_TTY (SELECTED_FRAME()) === modified file 'src/terminal.c' --- src/terminal.c 2012-08-18 00:07:52 +0000 +++ src/terminal.c 2012-08-31 16:20:30 +0000 @@ -294,7 +294,7 @@ for (tp = &terminal_list; *tp != terminal; tp = &(*tp)->next_terminal) if (! *tp) - abort (); + emacs_abort (); *tp = terminal->next_terminal; xfree (terminal->keyboard_coding); @@ -411,7 +411,7 @@ case output_ns: return Qns; default: - abort (); + emacs_abort (); } } @@ -519,7 +519,7 @@ init_initial_terminal (void) { if (initialized || terminal_list || tty_list) - abort (); + emacs_abort (); initial_terminal = create_terminal (); initial_terminal->type = output_initial; @@ -538,7 +538,7 @@ delete_initial_terminal (struct terminal *terminal) { if (terminal != initial_terminal) - abort (); + emacs_abort (); delete_terminal (terminal); initial_terminal = NULL; === modified file 'src/terminfo.c' --- src/terminfo.c 2012-01-19 07:21:25 +0000 +++ src/terminfo.c 2012-08-31 16:20:30 +0000 @@ -46,7 +46,7 @@ /* Emacs always should pass a null OUTSTRING and zero LEN. */ if (outstring || len) - abort (); + emacs_abort (); temp = tparm (string, arg1, arg2, arg3, arg4); return xstrdup (temp); === modified file 'src/tparam.c' --- src/tparam.c 2012-07-05 06:32:41 +0000 +++ src/tparam.c 2012-08-31 16:20:30 +0000 @@ -247,7 +247,7 @@ break; default: - abort (); + emacs_abort (); } } else === modified file 'src/w32.c' --- src/w32.c 2012-08-26 10:29:37 +0000 +++ src/w32.c 2012-08-31 16:20:30 +0000 @@ -1273,9 +1273,9 @@ /* Ensure HOME and SHELL are defined. */ if (getenv ("HOME") == NULL) - abort (); + emacs_abort (); if (getenv ("SHELL") == NULL) - abort (); + emacs_abort (); /* Set dir and shell from environment variables. */ strcpy (dflt_passwd.pw_dir, getenv ("HOME")); @@ -1788,9 +1788,9 @@ char modname[MAX_PATH]; if (!GetModuleFileName (NULL, modname, MAX_PATH)) - abort (); + emacs_abort (); if ((p = strrchr (modname, '\\')) == NULL) - abort (); + emacs_abort (); *p = 0; if ((p = strrchr (modname, '\\')) && xstrcasecmp (p, "\\bin") == 0) @@ -1902,13 +1902,13 @@ /* FIXME: Do we need to resolve possible symlinks in startup_dir? Does it matter anywhere in Emacs? */ if (!GetCurrentDirectory (MAXPATHLEN, startup_dir)) - abort (); + emacs_abort (); { static char modname[MAX_PATH]; if (!GetModuleFileName (NULL, modname, MAX_PATH)) - abort (); + emacs_abort (); argv[0] = modname; } @@ -1930,7 +1930,7 @@ p = getenv ("emacs_dir"); if (p == NULL) - abort (); + emacs_abort (); strcpy (root_dir, p); root_dir[parse_root (root_dir, NULL)] = '\0'; dostounix_filename (root_dir); @@ -3287,7 +3287,7 @@ doesn't resolve aliasing due to subst commands, or recognize hard links. */ if (!w32_get_long_filename ((char *)name, fullname, MAX_PATH)) - abort (); + emacs_abort (); parse_root (fullname, &p); /* Normal W32 filesystems are still case insensitive. */ @@ -5587,7 +5587,7 @@ if (fd_info[ fd ].cp != NULL) { DebPrint (("sys_socket: fd_info[%d] apparently in use!\n", fd)); - abort (); + emacs_abort (); } fd_info[ fd ].cp = cp; @@ -5966,7 +5966,7 @@ { if (fd_info[fd].flags & FILE_SOCKET) { - if (winsock_lib == NULL) abort (); + if (winsock_lib == NULL) emacs_abort (); pfn_shutdown (SOCK_HANDLE (fd), 2); rc = pfn_closesocket (SOCK_HANDLE (fd)); @@ -6084,7 +6084,7 @@ || (fd_info[fd].flags & FILE_READ) == 0) { DebPrint (("_sys_read_ahead: internal error: fd %d is not a pipe, serial port, or socket!\n", fd)); - abort (); + emacs_abort (); } cp->status = STATUS_READ_IN_PROGRESS; @@ -6220,7 +6220,7 @@ /* re-read CR carried over from last read */ if (fd_info[fd].flags & FILE_LAST_CR) { - if (fd_info[fd].flags & FILE_BINARY) abort (); + if (fd_info[fd].flags & FILE_BINARY) emacs_abort (); *buffer++ = 0x0d; count--; nchars++; @@ -6323,7 +6323,7 @@ } else /* FILE_SOCKET */ { - if (winsock_lib == NULL) abort (); + if (winsock_lib == NULL) emacs_abort (); /* do the equivalent of a non-blocking read */ pfn_ioctlsocket (SOCK_HANDLE (fd), FIONREAD, &waiting); @@ -6474,7 +6474,7 @@ else if (fd < MAXDESC && fd_info[fd].flags & FILE_SOCKET) { unsigned long nblock = 0; - if (winsock_lib == NULL) abort (); + if (winsock_lib == NULL) emacs_abort (); /* TODO: implement select() properly so non-blocking I/O works. */ /* For now, make sure the write blocks. */ @@ -6640,8 +6640,7 @@ buffer, "Emacs Abort Dialog", MB_OK | MB_ICONEXCLAMATION | MB_TASKMODAL); - /* Use the low-level Emacs abort. */ -#undef abort + /* Use the low-level system abort. */ abort (); } else === modified file 'src/w32fns.c' --- src/w32fns.c 2012-08-18 06:06:39 +0000 +++ src/w32fns.c 2012-08-31 16:20:30 +0000 @@ -2280,7 +2280,7 @@ CoInitialize (NULL); w32_createwindow ((struct frame *) msg.wParam); if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) - abort (); + emacs_abort (); break; case WM_EMACS_SETLOCALE: SetThreadLocale (msg.wParam); @@ -2290,7 +2290,7 @@ result = (int) ActivateKeyboardLayout ((HKL) msg.wParam, 0); if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, result, 0)) - abort (); + emacs_abort (); break; case WM_EMACS_REGISTER_HOT_KEY: focus_window = GetFocus (); @@ -2311,7 +2311,7 @@ GC. */ XSETCAR ((Lisp_Object) ((EMACS_INT) msg.lParam), Qnil); if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) - abort (); + emacs_abort (); break; case WM_EMACS_TOGGLE_LOCK_KEY: { @@ -2343,7 +2343,7 @@ } if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, cur_state, 0)) - abort (); + emacs_abort (); } break; #ifdef MSG_DEBUG @@ -2398,11 +2398,11 @@ { /* Only input thread can send deferred messages. */ if (GetCurrentThreadId () != dwWindowsThreadId) - abort (); + emacs_abort (); /* It is an error to send a message that is already deferred. */ if (find_deferred_msg (hwnd, msg) != NULL) - abort (); + emacs_abort (); /* Enforced synchronization is not needed because this is the only function that alters deferred_msg_head, and the following critical @@ -2475,7 +2475,7 @@ PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE); if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) - abort (); + emacs_abort (); memset (&dummy_buf, 0, sizeof (dummy_buf)); dummy_buf.w32msg.msg.hwnd = NULL; @@ -3136,7 +3136,7 @@ msg = WM_MBUTTONUP; button_state &= ~MMOUSE; - if (button_state) abort (); + if (button_state) emacs_abort (); } else return 0; @@ -3367,7 +3367,7 @@ /* Detect if message has already been deferred; in this case we cannot return any sensible value to ignore this. */ if (find_deferred_msg (hwnd, msg) != NULL) - abort (); + emacs_abort (); menubar_in_use = 1; @@ -3842,7 +3842,7 @@ MSG msg; if (!PostThreadMessage (dwWindowsThreadId, WM_EMACS_CREATEWINDOW, (WPARAM)f, 0)) - abort (); + emacs_abort (); GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE); } @@ -6287,7 +6287,7 @@ lisp_modifiers = XINT (Fcar (Fcdr (c))); c = Fcar (c); if (!SYMBOLP (c)) - abort (); + emacs_abort (); vk_code = lookup_vk_code (SDATA (SYMBOL_NAME (c))); } else if (INTEGERP (c)) @@ -7194,10 +7194,8 @@ syms_of_w32uniscribe (); } -#undef abort - void -w32_abort (void) +emacs_abort (void) { int button; button = MessageBox (NULL, === modified file 'src/w32menu.c' --- src/w32menu.c 2012-08-28 16:01:59 +0000 +++ src/w32menu.c 2012-08-31 16:20:30 +0000 @@ -820,7 +820,7 @@ else if (EQ (type, QCradio)) wv->button_type = BUTTON_TYPE_RADIO; else - abort (); + emacs_abort (); wv->selected = !NILP (selected); === modified file 'src/w32proc.c' --- src/w32proc.c 2012-08-02 04:14:48 +0000 +++ src/w32proc.c 2012-08-31 16:20:30 +0000 @@ -176,7 +176,7 @@ /* Should not be deleting a child that is still needed. */ for (i = 0; i < MAXDESC; i++) if (fd_info[i].cp == cp) - abort (); + emacs_abort (); if (!CHILD_ACTIVE (cp)) return; @@ -316,7 +316,7 @@ DWORD flags; char dir[ MAXPATHLEN ]; - if (cp == NULL) abort (); + if (cp == NULL) emacs_abort (); memset (&start, 0, sizeof (start)); start.cb = sizeof (start); @@ -405,7 +405,7 @@ if (fd_info[fd].cp != NULL) { DebPrint (("register_child: fd_info[%d] apparently in use!\n", fd)); - abort (); + emacs_abort (); } fd_info[fd].cp = cp; @@ -459,7 +459,7 @@ /* We want to wait for a specific child */ wait_hnd[nh] = dead_child->procinfo.hProcess; cps[nh] = dead_child; - if (!wait_hnd[nh]) abort (); + if (!wait_hnd[nh]) emacs_abort (); nh++; active = 0; goto get_result; @@ -507,7 +507,7 @@ active -= WAIT_ABANDONED_0; } else - abort (); + emacs_abort (); get_result: if (!GetExitCodeProcess (wait_hnd[active], &retval)) @@ -1189,7 +1189,7 @@ #endif wait_hnd[nh] = cp->char_avail; fdindex[nh] = i; - if (!wait_hnd[nh]) abort (); + if (!wait_hnd[nh]) emacs_abort (); nh++; #ifdef FULL_DEBUG DebPrint (("select waiting on child %d fd %d\n", @@ -1276,7 +1276,7 @@ active -= WAIT_ABANDONED_0; } else - abort (); + emacs_abort (); /* Loop over all handles after active (now officially documented as being the first signaled handle in the array). We do this to === modified file 'src/w32select.c' --- src/w32select.c 2012-07-29 08:18:29 +0000 +++ src/w32select.c 2012-08-31 16:20:30 +0000 @@ -394,7 +394,7 @@ BLOCK_INPUT; - /* Fsignal calls abort() if it sees that waiting_for_input is + /* Fsignal calls emacs_abort () if it sees that waiting_for_input is set. */ owfi = waiting_for_input; waiting_for_input = 0; === modified file 'src/w32term.c' --- src/w32term.c 2012-08-18 01:42:52 +0000 +++ src/w32term.c 2012-08-31 16:20:30 +0000 @@ -2426,7 +2426,7 @@ break; default: - abort (); + emacs_abort (); } if (!s->for_overlaps) @@ -2626,7 +2626,7 @@ if (! FRAME_W32_P (f)) return; - abort (); + emacs_abort (); } @@ -2709,7 +2709,7 @@ if (! FRAME_W32_P (f)) return; - abort (); + emacs_abort (); } @@ -3431,7 +3431,7 @@ frame = XCAR (tail); /* All elements of Vframe_list should be frames. */ if (! FRAMEP (frame)) - abort (); + emacs_abort (); /* Scan this frame's scroll bar list for a scroll bar with the right window ID. */ @@ -3854,7 +3854,7 @@ /* We can't redeem this window's scroll bar if it doesn't have one. */ if (NILP (window->vertical_scroll_bar)) - abort (); + emacs_abort (); bar = XSCROLL_BAR (window->vertical_scroll_bar); @@ -3873,7 +3873,7 @@ else /* If its prev pointer is nil, it must be at the front of one or the other! */ - abort (); + emacs_abort (); } else XSCROLL_BAR (bar->prev)->next = bar->next; @@ -3928,7 +3928,7 @@ struct input_event *emacs_event) { if (! WINDOWP (bar->window)) - abort (); + emacs_abort (); emacs_event->kind = SCROLL_BAR_CLICK_EVENT; emacs_event->code = 0; @@ -5233,7 +5233,7 @@ break; default: - abort (); + emacs_abort (); } } } === modified file 'src/w32xfns.c' --- src/w32xfns.c 2012-07-29 08:18:29 +0000 +++ src/w32xfns.c 2012-08-31 16:20:30 +0000 @@ -122,7 +122,7 @@ HDC hdc; if (f->output_method != output_w32) - abort (); + emacs_abort (); enter_crit (); === modified file 'src/widget.c' --- src/widget.c 2012-07-10 21:48:34 +0000 +++ src/widget.c 2012-08-31 16:20:30 +0000 @@ -226,7 +226,7 @@ static void mark_shell_size_user_specified (Widget wmshell) { - if (! XtIsWMShell (wmshell)) abort (); + if (! XtIsWMShell (wmshell)) emacs_abort (); /* This is kind of sleazy, but I can't see how else to tell it to make it mark the WM_SIZE_HINTS size as user specified when appropriate. */ ((WMShellWidget) wmshell)->wm.size_hints.flags |= USSize; @@ -290,7 +290,7 @@ Widget wmshell = get_wm_shell ((Widget) ew); /* Each Emacs shell is now independent and top-level. */ - if (! XtIsSubclass (wmshell, shellWidgetClass)) abort (); + if (! XtIsSubclass (wmshell, shellWidgetClass)) emacs_abort (); /* We don't need this for the moment. The geometry is computed in xfns.c. */ @@ -679,8 +679,8 @@ EmacsFrame ew = (EmacsFrame) widget; struct frame* s = ew->emacs_frame.frame; - if (! s) abort (); - if (! s->output_data.x) abort (); + if (! s) emacs_abort (); + if (! s->output_data.x) emacs_abort (); BLOCK_INPUT; x_free_gcs (s); === modified file 'src/window.c' --- src/window.c 2012-08-28 16:01:59 +0000 +++ src/window.c 2012-08-31 16:20:30 +0000 @@ -386,7 +386,7 @@ else if (! NILP (XWINDOW (window)->vchild)) window = XWINDOW (window)->vchild; else - abort (); + emacs_abort (); } return window; @@ -1289,7 +1289,7 @@ return Qnil; default: - abort (); + emacs_abort (); } } @@ -1948,7 +1948,7 @@ buf = w->buffer; b = XBUFFER (buf); if (b != XMARKER (w->pointm)->buffer) - abort (); + emacs_abort (); #if 0 if (w == XWINDOW (selected_window) @@ -2669,7 +2669,7 @@ case CHECK_ALL_WINDOWS: if (! NILP (w->buffer) && NILP (BVAR (XBUFFER (w->buffer), name))) - abort (); + emacs_abort (); break; case WINDOW_LOOP_UNUSED: === modified file 'src/xdisp.c' --- src/xdisp.c 2012-08-28 05:49:02 +0000 +++ src/xdisp.c 2012-08-31 16:20:30 +0000 @@ -7306,7 +7306,7 @@ default: /* There are no other methods defined, so this should be a bug. */ - abort (); + emacs_abort (); } eassert (it->method != GET_FROM_STRING @@ -7761,7 +7761,7 @@ compute_stop_pos (it); /* We must advance forward, right? */ if (it->stop_charpos <= charpos) - abort (); + emacs_abort (); } while (charpos > BEGV && it->stop_charpos >= it->end_charpos); @@ -7810,7 +7810,7 @@ compute_stop_pos (it); /* We must advance forward, right? */ if (it->stop_charpos <= it->prev_stop) - abort (); + emacs_abort (); charpos = it->stop_charpos; } while (charpos <= where_we_are); @@ -8898,7 +8898,7 @@ break; default: - abort (); + emacs_abort (); } /* Reset/increment for the next run. */ @@ -10532,7 +10532,7 @@ check_message_stack (void) { if (!NILP (Vmessage_stack)) - abort (); + emacs_abort (); } @@ -14422,7 +14422,7 @@ for (g = row->glyphs[TEXT_AREA], x = row->x; g < glyph; g++) { if (g >= row->glyphs[TEXT_AREA] + row->used[TEXT_AREA]) - abort (); + emacs_abort (); x += g->pixel_width; } } @@ -14543,7 +14543,7 @@ SET_MARKER_FROM_TEXT_POS (w->start, startp); if (current_buffer != XBUFFER (w->buffer)) - abort (); + emacs_abort (); if (!NILP (Vwindow_scroll_functions)) { @@ -15512,9 +15512,9 @@ /* Some sanity checks. */ CHECK_WINDOW_END (w); if (Z == Z_BYTE && CHARPOS (opoint) != BYTEPOS (opoint)) - abort (); + emacs_abort (); if (BYTEPOS (opoint) < CHARPOS (opoint)) - abort (); + emacs_abort (); /* If %c is in mode line, update it if needed. */ if (!NILP (w->column_number_displayed) @@ -15726,7 +15726,7 @@ goto try_to_scroll; default: - abort (); + emacs_abort (); } } /* If current starting point was originally the beginning of a line @@ -15889,7 +15889,7 @@ break; default: - abort (); + emacs_abort (); } } @@ -17337,7 +17337,7 @@ if (row) set_cursor_from_row (w, row, current_matrix, 0, 0, 0, 0); else - abort (); + emacs_abort (); return 1; } } @@ -17381,7 +17381,7 @@ if (row) set_cursor_from_row (w, row, current_matrix, 0, 0, 0, 0); else - abort (); + emacs_abort (); return 2; } } @@ -17870,7 +17870,7 @@ IF_DEBUG (debug_method_add (w, "C")); } else - abort (); + emacs_abort (); IF_DEBUG (debug_end_pos = XFASTINT (w->window_end_pos); debug_end_vpos = XFASTINT (w->window_end_vpos)); @@ -19247,7 +19247,7 @@ /* A line that is entirely from a string/image/stretch... */ row->maxpos = row->minpos; else - abort (); + emacs_abort (); } else row->maxpos = it->current.pos; @@ -20088,7 +20088,7 @@ return Qright_to_left; break; default: - abort (); + emacs_abort (); } } } @@ -22001,7 +22001,7 @@ { /* Glyph is off the left margin of the display area. Should not happen. */ - abort (); + emacs_abort (); } row->ascent = max (row->ascent, it->max_ascent); @@ -23366,7 +23366,7 @@ break; \ \ default: \ - abort (); \ + emacs_abort (); \ } \ \ if (s) \ @@ -23707,7 +23707,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } else @@ -23781,7 +23781,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } ++it->glyph_row->used[area]; @@ -23960,7 +23960,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } ++it->glyph_row->used[area]; @@ -24021,7 +24021,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } else @@ -24276,7 +24276,7 @@ } } else - abort (); + emacs_abort (); #ifdef HAVE_WINDOW_SYSTEM /* On a GUI frame, when the right fringe (left fringe for R2L rows) @@ -24473,7 +24473,7 @@ { glyph->resolved_level = it->bidi_it.resolved_level; if ((it->bidi_it.type & 7) != it->bidi_it.type) - abort (); + emacs_abort (); glyph->bidi_type = it->bidi_it.type; } ++it->glyph_row->used[area]; === modified file 'src/xfaces.c' --- src/xfaces.c 2012-08-21 10:21:04 +0000 +++ src/xfaces.c 2012-08-31 16:20:30 +0000 @@ -551,7 +551,7 @@ if (color_count[pixel] > 0) --color_count[pixel]; else - abort (); + emacs_abort (); } @@ -768,7 +768,7 @@ if (!FRAME_NS_P (f) || FRAME_NS_WINDOW (f)) #endif if (!realize_basic_faces (f)) - abort (); + emacs_abort (); } @@ -812,7 +812,7 @@ { clear_face_cache (0); if (!realize_basic_faces (f)) - abort (); + emacs_abort (); } } @@ -1149,7 +1149,7 @@ return ns_defined_color (f, color_name, color_def, alloc, 1); #endif else - abort (); + emacs_abort (); } @@ -1345,7 +1345,7 @@ break; default: - abort (); + emacs_abort (); } } #ifdef GLYPH_DEBUG @@ -4589,7 +4589,7 @@ return -1; default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID); if (default_face == NULL) - abort (); /* realize_basic_faces must have set it up */ + emacs_abort (); /* realize_basic_faces must have set it up */ } if (! get_lface_attributes (f, symbol, symbol_attrs, signal_p, 0)) @@ -4632,7 +4632,7 @@ case MENU_FACE_ID: name = Qmenu; break; default: - abort (); /* the caller is supposed to pass us a basic face id */ + emacs_abort (); /* the caller is supposed to pass us a basic face id */ } /* Do a quick scan through Vface_remapping_alist, and return immediately @@ -4753,7 +4753,7 @@ struct face *default_face = FACE_FROM_ID (f, face_id); if (!default_face) - abort (); + emacs_abort (); if (!get_lface_attributes (f, symbol, symbol_attrs, signal_p, 0)) return -1; @@ -5143,7 +5143,7 @@ error ("Cannot realize default face"); def_face = FACE_FROM_ID (f, DEFAULT_FACE_ID); if (def_face == NULL) - abort (); /* realize_basic_faces must have set it up */ + emacs_abort (); /* realize_basic_faces must have set it up */ } /* Dispatch to the appropriate handler. */ @@ -5428,7 +5428,7 @@ else if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)) ASET (lface, LFACE_FOREGROUND_INDEX, build_string (unspecified_fg)); else - abort (); + emacs_abort (); } if (UNSPECIFIEDP (LFACE_BACKGROUND (lface))) @@ -5443,7 +5443,7 @@ else if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)) ASET (lface, LFACE_BACKGROUND_INDEX, build_string (unspecified_bg)); else - abort (); + emacs_abort (); } if (UNSPECIFIEDP (LFACE_STIPPLE (lface))) @@ -5543,7 +5543,7 @@ face = make_realized_face (attrs); } else - abort (); + emacs_abort (); /* Insert the new face. */ cache_face (cache, face, lface_hash (attrs)); @@ -5638,7 +5638,7 @@ if (default_face) fontset = default_face->fontset; if (fontset == -1) - abort (); + emacs_abort (); } if (! FONT_OBJECT_P (attrs[LFACE_FONT_INDEX])) attrs[LFACE_FONT_INDEX] === modified file 'src/xmenu.c' --- src/xmenu.c 2012-08-17 21:52:15 +0000 +++ src/xmenu.c 2012-08-31 16:20:30 +0000 @@ -169,7 +169,7 @@ int dummy; if (! FRAME_X_P (f)) - abort (); + emacs_abort (); BLOCK_INPUT; @@ -636,7 +636,7 @@ x_activate_menubar (FRAME_PTR f) { if (! FRAME_X_P (f)) - abort (); + emacs_abort (); if (!f->output_data.x->saved_menu_event->type) return; @@ -852,7 +852,7 @@ int columns, rows; if (! FRAME_X_P (f)) - abort (); + emacs_abort (); x = f->output_data.x; @@ -940,7 +940,7 @@ int *submenu_top_level_items, *submenu_n_panes; if (! FRAME_X_P (f)) - abort (); + emacs_abort (); menubar_widget = f->output_data.x->menubar_widget; @@ -1299,7 +1299,7 @@ Widget menubar_widget; if (! FRAME_X_P (f)) - abort (); + emacs_abort (); menubar_widget = f->output_data.x->menubar_widget; @@ -1450,7 +1450,7 @@ #endif if (! FRAME_X_P (f)) - abort (); + emacs_abort (); xg_crazy_callback_abort = 1; menu = xg_create_widget ("popup", first_wv->name, f, first_wv, @@ -1557,7 +1557,7 @@ Widget menu; if (! FRAME_X_P (f)) - abort (); + emacs_abort (); #ifdef USE_LUCID apply_systemfont_to_menu (f, f->output_data.x->widget); @@ -1646,7 +1646,7 @@ ptrdiff_t specpdl_count = SPECPDL_INDEX (); if (! FRAME_X_P (f)) - abort (); + emacs_abort (); *error_name = NULL; @@ -1792,7 +1792,7 @@ else if (EQ (type, QCradio)) wv->button_type = BUTTON_TYPE_RADIO; else - abort (); + emacs_abort (); wv->selected = !NILP (selected); @@ -1930,7 +1930,7 @@ GtkWidget *menu; if (! FRAME_X_P (f)) - abort (); + emacs_abort (); menu = xg_create_widget ("dialog", first_wv->name, f, first_wv, G_CALLBACK (dialog_selection_callback), @@ -1977,7 +1977,7 @@ LWLIB_ID dialog_id; if (!FRAME_X_P (f)) - abort (); + emacs_abort (); dialog_id = widget_id_tick++; #ifdef USE_LUCID @@ -2036,7 +2036,7 @@ ptrdiff_t specpdl_count = SPECPDL_INDEX (); if (! FRAME_X_P (f)) - abort (); + emacs_abort (); *error_name = NULL; @@ -2301,7 +2301,7 @@ ptrdiff_t specpdl_count = SPECPDL_INDEX (); if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f)) - abort (); + emacs_abort (); *error_name = 0; if (menu_items_n_panes == 0) === modified file 'src/xselect.c' --- src/xselect.c 2012-08-18 00:07:52 +0000 +++ src/xselect.c 2012-08-31 16:20:30 +0000 @@ -193,7 +193,7 @@ x_start_queuing_selection_requests (void) { if (x_queue_selection_requests) - abort (); + emacs_abort (); x_queue_selection_requests++; TRACE1 ("x_start_queuing_selection_requests %d", x_queue_selection_requests); @@ -245,7 +245,7 @@ if (EQ (sym, QEMACS_TMP)) return dpyinfo->Xatom_EMACS_TMP; if (EQ (sym, QTARGETS)) return dpyinfo->Xatom_TARGETS; if (EQ (sym, QNULL)) return dpyinfo->Xatom_NULL; - if (!SYMBOLP (sym)) abort (); + if (!SYMBOLP (sym)) emacs_abort (); TRACE1 (" XInternAtom %s", SSDATA (SYMBOL_NAME (sym))); BLOCK_INPUT; @@ -1138,7 +1138,7 @@ ptrdiff_t count = SPECPDL_INDEX (); if (property_change_reply_object) - abort (); + emacs_abort (); /* Make sure to do unexpect_property_change if we quit or err. */ record_unwind_protect (wait_for_property_change_unwind, === modified file 'src/xterm.c' --- src/xterm.c 2012-08-25 20:31:04 +0000 +++ src/xterm.c 2012-08-31 16:20:30 +0000 @@ -1474,7 +1474,7 @@ && f->output_data.x->widget == widget) return f; - abort (); + emacs_abort (); } /* Allocate a color which is lighter or darker than *PIXEL by FACTOR @@ -2703,7 +2703,7 @@ y2 += dy; if (INT_MAX - dx < xmax) - abort (); + emacs_abort (); while (x1 <= xmax) { @@ -2812,7 +2812,7 @@ break; default: - abort (); + emacs_abort (); } if (!s->for_overlaps) @@ -3012,7 +3012,7 @@ static void x_delete_glyphs (struct frame *f, register int n) { - abort (); + emacs_abort (); } @@ -3285,7 +3285,7 @@ static void x_ins_del_lines (struct frame *f, int vpos, int n) { - abort (); + emacs_abort (); } @@ -4122,7 +4122,7 @@ frame = XCAR (tail); /* All elements of Vframe_list should be frames. */ if (! FRAMEP (frame)) - abort (); + emacs_abort (); if (! FRAME_X_P (XFRAME (frame))) continue; @@ -5441,7 +5441,7 @@ /* We can't redeem this window's scroll bar if it doesn't have one. */ if (NILP (window->vertical_scroll_bar)) - abort (); + emacs_abort (); bar = XSCROLL_BAR (window->vertical_scroll_bar); @@ -5460,7 +5460,7 @@ else /* If its prev pointer is nil, it must be at the front of one or the other! */ - abort (); + emacs_abort (); } else XSCROLL_BAR (bar->prev)->next = bar->next; @@ -5558,7 +5558,7 @@ x_scroll_bar_handle_click (struct scroll_bar *bar, XEvent *event, struct input_event *emacs_event) { if (! WINDOWP (bar->window)) - abort (); + emacs_abort (); emacs_event->kind = SCROLL_BAR_CLICK_EVENT; emacs_event->code = event->xbutton.button - Button1; @@ -6464,7 +6464,7 @@ } else if (status_return != XLookupKeySym && status_return != XLookupBoth) - abort (); + emacs_abort (); } else nbytes = XLookupString (&event.xkey, (char *) copy_bufptr, @@ -7503,7 +7503,7 @@ break; default: - abort (); + emacs_abort (); } } @@ -7856,7 +7856,7 @@ This is a GTK bug: https://bugzilla.gnome.org/show_bug.cgi?id=85715\n\ For details, see etc/PROBLEMS.\n", error_msg); - abort (); + emacs_abort (); #endif /* USE_GTK */ /* Indicate that this display is dead. */ @@ -7866,7 +7866,7 @@ dpyinfo->terminal->reference_count--; if (dpyinfo->reference_count != 0) /* We have just closed all frames on this display. */ - abort (); + emacs_abort (); { Lisp_Object tmp; @@ -10443,7 +10443,7 @@ to.addr = (XPointer)&font; x_catch_errors (dpy); if (!XtCallConverter (dpy, XtCvtStringToFont, &d, 1, &fr, &to, NULL)) - abort (); + emacs_abort (); if (x_had_errors_p (dpy) || !XQueryFont (dpy, font)) XrmPutLineResource (&xrdb, "Emacs.dialog.*.font: 9x15"); x_uncatch_errors (); # Begin bundle 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 yJbYX3hJ0TWEJA6EbNdh81Ls0Qc65gbbSmnhE9FpXUoo5is5UUfblViTK7RNqo7cb8sHXPTquIHf RvGLmxpjsic+Ewex5HOz3NtuS3CrZhhl59JP4ts15juivWYdzieMISLS89URVHtENWrV6eQpX7qb vGNrI8/CJbNk3SjJ2b0UeN97ebiR30oqRUCOg0V0eUTlJHR0dHyPkQbMEm8807pbk5iHcHjptIqE 6iyvaKpykDWc5FVd0JtFuETRRDWbPi7jR9K3zik48py3xcWedtFuPGqdWYiOXqvSspY9KKvw/DSz hhw7e11WrVhhNwq77RlZNqg/hzzjRu5eNnx8ePjSy7lhvvu7Q6MrvT9Is9qsLobuHlpaqS6dLq9y s2bsIe1GPtV/G6bp87bO1PzEgm7YfPnL00R9P0l8EejkkfZ2KBZ3AIAmZ79JSfa9iIz3Qg9nNBtb n+4sD/a1qWVGIKCoQ1so8rqq+LJnvju8PMMcm0V75CqoGr3noLVuh27We3oPPiHR4rPTu0NvDd14 JrfC5tarWg0tcU2jsOSPMKZlJGhmbNr1Xo2r72PzIu7zdFv3SKqV4+mK4oMDBLJtmWJ+9M6ffIpf CUpUpikp4HtV9mH4qTWojLNYijaU3SqstCyzKG1JqW5w66U3b3Z5UaxXXKb97L9GjdbTeKab61mx aIhSRJvu0VUmhsou7azRQuh07XaNWZZnneNL7YUUriuJSQsqlKQhBJVMmm77VZtNpoyym/Jpd4sm 6q/L8u/bieEzzmd3TuzMzbu1PUcSa5BUsR7xkLwXvEw7VQCTgZdCZIzypKyI4zI3VJ1Dyt+rOcrH wvGg99bNVI0lRTWuqE3ibhSEJuXxlo5vGnHETnTm/u+IpTqXMOXjv6MKunDzP17aMNn1Lnz01xuH SiRyacTKu7QlE40kH2D9Cs3wM64SvwdU5nsVKMdQhVWb0hV9WtlOkWo4avs7s+ym5s3dGTJYZOzv xtyR0sQzaMFnxoy1GdovtvEvFa143rZX43hObtl9mVj7T89OGJZQyzq3VT06j+qUqTlCQl0sy5Ya tnjLhV5OiiyH4Wwp0zw9OFU23iy67dSUVfpTpd0w2d7OXKGjKjl6pCq7RC6kl3E3LLz+MP3+u4l+ 770ddvDXZZ49vN6zaPaHtGGr06Vat2qUpAUFdVagu1cfQBMDtEE+v7OOIjx48X5cCuDZPxlH9e6l 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