* buffer.c (syms_of_buffer): New variables default-word-wrap and
word-wrap.
(init_buffer_once): Initialize them.
* dispextern.h (struct it): Replace bool truncate_lines_p with a
line_wrap enum possessing three possible values.
* termopts.h: Replace truncate_partial_width_windows with
Vtruncate_partial_width_windows.
* dispnew.c (direct_output_for_insert): Avoid direct output when
inserting a space with word wrap on.
* indent.c (compute_motion): Obey integer values of
truncate-partial-width-windows.
* xdisp.c (Vtruncate_partial_width_windows): New Lisp_Object,
replacing truncate_partial_width_windows.
(init_iterator): If Vtruncate_partial_width_windows is an integer,
truncate only if the window width is below that integer.
(start_display. resize_mini_window, produce_stretch_glyph)
(display_string, move_it_in_display_line_to): Use line_wrap.
(back_to_previous_visible_line_start, reseat_1): Reset
string_from_display_prop_p.
(display_line): Extend default face to end of line when wrapping.
(display_line, move_it_in_display_line_to): Add ability
to wrap continued lines at word boundaries.
* Makefile.in (${lisp} ${SOME_MACHINE_LISP}, ../lisp/loaddefs.el):
Use $(BOOTSTRAPEMACS) rather than witness-emacs.
(bootstrap-emacs${EXEEXT}): Merge witness-emacs into it.
(witness-emacs): Remove.
(lisp, shortlisp): Move loaddefs.el earlier.
(mostlyclean): Forget about witness-emacs.
* Makefile.in (COMPILE_FIRST): Trim down and add autoload.el.
(${lisp} ${SOME_MACHINE_LISP}): Remove pseudo dependency on PRECOMP.
(witness-emacs): Run `compile-first'.
(.el.elc): Use the new compile-onefile target.
* lisp/Makefile.in (update-elclist): Don't exclude COMPILE_FIRST.
(all): Run compile-last.
(compile-onefile): New target.
(compile-first): Simplify.
(compile-last): Don't treat COMPILE_FIRST specially.
(COMPILE_FIRST): List the elc files rather than the el files.
(ELCFILES): Update.
* src/Makefile.in (emacs${EXEEXT}): Link the new emacs to bootstrap-emacs.
(bootstrapclean): Remove.
(.el.elc): New rule.
(PRECOMP): New var.
(../lisp/subdirs.el): Remove.
(bootstrap-emacs${EXEEXT}): Remove subdirs.el and charpro.el dependency.
(witness-emacs): New target.
(mostlyclean): Remove witness-emacs as well.
(../lisp/loaddefs.el, ${lisp} ${SOME_MACHINE_LISP}):
Add witness-emacs dependency.
* lisp/loadup.el: Don't add emacs-<VERS> name when bootstrapping.
* lisp/Makefile.in (emacs-deps): Remove.
($(lisp)/cus-load.el, $(lisp)/finder-inf.el): Re-add.
(all): Use them.
(autogen-clean): Remove.
* Makefile.in (maybe_bootstrap, src/bootstrap-emacs${EXEEXT})
(bootstrap-build): Remove.
(top_bootclean): New var.
(top_distclean, bootstrap-clean): Use it.
(bootstrap): Don't recheck config. Make normally.
(bootstrap-clean): New target that keeps TAGS around.
(../lisp/subdirs.el, ../lisp/loaddefs.el): New targets.
(bootstrap-emacs${EXEEXT}): Depend on subdirs.el.
* lisp/Makefile.in (all): New target.
(bootstrap-prepare): Remove.
* Makefile.in (SUBDIR): Include `lisp'.
(lisp): Depend on `src'.
(top_distclean): Don't remove config.status.
(bootstrap-clean): New target.
(maintainer-clean): Use it.
(bootstrap): Use bootstrap-clean. Re-run config.status.
(src/bootstrap-emacs${EXEEXT}): New target.
(bootstrap-build): Use it. Don't use bootstrap-prepare because
src/Makefile now takes care of it.
(bootfast, bootstrap-clean-before, bootstrap-clean-before-fast): Remove.
(syms_of_w32fns): Initialize it.
(x_default_font_parameter): Record explicit `font' into `font-parameter'.
* faces.el (face-set-after-frame-default): Re-apply explicit `font'
frame parameters after setting up the `default' face.
(font_parse_fcname): Don't use :fc-unknown-spec.
(FRAME_X_DISPLAY_INFO): Besure to have at least 1 pixel height.
(Fcopy_font_spec): Preserve the order of elements in FONT_EXTRA.
(font_add_log): Prepend the driver name to the resulting fonts.
(QCembolden): New variables.
(syms_of_xftfont): DEFSYM them.
(xftfont_open): Call XftFontMatch. Don't trust the result of
XftTextExtents8 if the pixel_size is less than 5.