1. 01 Jan, 2019 1 commit
  2. 28 Aug, 2018 1 commit
    • Paul Eggert's avatar
      Improve bignum support for system types · d77d01d2
      Paul Eggert authored
      Use bignums when Emacs converts to and from system types like
      off_t for file sizes whose values can exceed fixnum range.
      Formerly, Emacs sometimes generted floats and sometimes ad-hoc
      conses of integers.  Emacs still accepts floats and conses for
      these system types, in case some stray Lisp code is generating
      them, though this usage is obsolescent.
      * doc/lispref/files.texi (File Attributes):
      * doc/lispref/hash.texi (Defining Hash):
      * doc/lispref/nonascii.texi (Character Sets):
      * doc/lispref/os.texi (User Identification):
      * doc/lispref/processes.texi (System Processes):
      * etc/NEWS:
      Document changes.
      * src/bignum.c (mpz_set_uintmax, make_biguint)
      (mpz_set_uintmax_slow, bignum_to_intmax, bignum_to_uintmax):
      New functions.
      (mpz_set_intmax_slow): Implement via mpz_limbs_write,
      to avoid the need for an extra pass through a negative number.
      * src/charset.c (Fencode_char):
      * src/composite.h (LGLYPH_SET_CODE):
      * src/dired.c (file_attributes):
      * src/dosfns.c, src/w32.c (list_system_processes)
      (system_process_attributes):
      * src/editfns.c (init_editfns, Fuser_uid, Fuser_real_uid)
      (Fgroup_gid, Fgroup_real_gid, Femacs_pid):
      * src/emacs-module.c (check_vec_index):
      * src/fns.c (Fsafe_length):
      * src/process.c (record_deleted_pid, Fprocess_id):
      * src/sysdep.c (list_system_processes, system_process_attributes):
      * src/xselect.c (x_own_selection, selection_data_to_lisp_data):
      * src/xterm.c (set_wm_state):
      * src/inotify.c (inotifyevent_to_event, add_watch)
      (inotify_callback):
      If an integer is out of fixnum range, use a bignum
      instead of converting it to a float or a cons of integers.
      * src/coding.c (Fdefine_coding_system_internal):
      * src/frame.c (frame_windows_min_size)
      (x_set_frame_parameters):
      * src/fringe.c (Fdefine_fringe_bitmap):
      * src/nsterm.m (mouseDown:):
      * src/syntax.c (find_defun_start):
      * src/w32fns.c (x_set_undecorated, w32_createwindow)
      (w32_wnd_proc, Fx_create_frame, Fx_show_tip)
      (w32_console_toggle_lock_key):
      * src/w32inevt.c (key_event):
      * src/w32proc.c (Fw32_get_locale_info):
      Do not mishandle floats by treating their addresses as their
      values.
      * src/data.c (store_symval_forwarding):
      * src/gnutls.c (Fgnutls_error_fatalp, Fgnutls_error_string):
      * src/keyboard.c (command_loop_1, make_lispy_event):
      * src/lread.c (read_filtered_event, read1)
      (substitute_object_recurse):
      * src/window.c (Fcoordinates_in_window_p, Fwindow_at)
      (window_resize_apply, Fset_window_vscroll):
      * src/xdisp.c (handle_single_display_spec, try_scrolling)
      (redisplay_window, calc_pixel_width_or_height)
      (calc_line_height_property, on_hot_spot_p):
      * src/xfaces.c (check_lface_attrs):
      * src/xselect.c (x_get_local_selection, cons_to_x_long)
      (lisp_data_to_selection_data, clean_local_selection_data)
      (x_check_property_data, x_fill_property_data):
      (x_send_client_event):
      Do not reject bignums.
      * src/data.c (INTBIG_TO_LISP, intbig_to_lisp)
      (uintbig_to_lisp):
      Remove.  All uses removed.
      * src/data.c (cons_to_unsigned, cons_to_signed):
      * src/dbusbind.c (xd_signature, xd_extract_signed)
      (xd_extract_unsigned):
      * src/dispnew.c (sit_for):
      * src/dosfns.c, src/w32.c (system_process_attributes):
      * src/editfns.c (Fuser_full_name):
      * src/fileio.c (file_offset):
      * src/fileio.c (write_region):
      * src/font.c (font_unparse_xlfd, font_open_for_lface, Fopen_font):
      * src/frame.c (x_set_screen_gamma):
      * src/frame.h (NUMVAL, FRAME_PIXEL_X_FROM_CANON_X)
      (FRAME_PIXEL_Y_FROM_CANON_Y):
      * src/image.c (parse_image_spec, x_edge_detection)
      (compute_image_size):
      * src/json.c (json_to_lisp):
      * src/lcms.c (PARSE_LAB_LIST_FIELD, Flcms_cie_de2000)
      (PARSE_XYZ_LIST_FIELD, PARSE_JCH_LIST_FIELD)
      (PARSE_JAB_LIST_FIELD, PARSE_VIEW_CONDITION_FLOAT)
      (Flcms_temp_to_white_point):
      * src/nsimage.m (ns_load_image, setSizeFromSpec):
      * src/process.c (Fsignal_process, handle_child_signal):
      * src/sysdep.c (system_process_attributes):
      * src/xdisp.c (calc_line_height_property):
      Handle bignums.
      * src/data.c (Fnumber_to_string): Use proper predicate name in
      signal if the argument is not a number.
      * src/lisp.h (make_uint): New function.
      (INT_TO_INTEGER): New macro.
      (FIXED_OR_FLOATP, CHECK_FIXNUM_OR_FLOAT)
      (CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER, INTEGER_TO_CONS)
      (make_fixnum_or_float): Remove; no longer used.
      * src/nsfns.m, src/w32fns.c, src/xfns.c (Fx_create_frame):
      Reject floating-point min-width or min-height.
      * src/process.c (handle_child_signal): Do not worry
      about floating-point pids, as they are no longer generated.
      d77d01d2
  3. 20 Aug, 2018 1 commit
    • Andy Moreton's avatar
      Define get_proc_addr in Cygwin-w32 build · 36de7bd7
      Andy Moreton authored
      * src/w32common.h (get_proc_addr, DEF_DLL_FN, LOAD_DLL_FN): Move
      definitions here from src/w32.h.
      * src/decompress.c [WINDOWSNT]:
      * src/gnutls.c [WINDOWSNT]:
      * src/image.c [WINDOWSNT]:
      * src/json.c [WINDOWSNT]:
      * src/lcms.c [WINDOWSNT]:
      * src/w32font.c [WINDOWSNT]:
      * src/w32uniscribe.c:
      * src/xml.c [WINDOWSNT]: Include w32common.h.
      36de7bd7
  4. 08 Aug, 2018 1 commit
    • Tom Tromey's avatar
      More macro renamings for bignum · d1ec3a0a
      Tom Tromey authored
      * src/alloc.c, src/bidi.c, src/buffer.c, src/buffer.h, src/bytecode.c,
      src/callint.c, src/callproc.c, src/casefiddle.c, src/casetab.c,
      src/category.c, src/ccl.c, src/character.c, src/character.h,
      src/charset.c, src/charset.h, src/chartab.c, src/cmds.c, src/coding.c,
      src/composite.c, src/composite.h, src/data.c, src/dbusbind.c,
      src/decompress.c, src/dired.c, src/dispextern.h, src/dispnew.c,
      src/disptab.h, src/doc.c, src/dosfns.c, src/editfns.c,
      src/emacs-module.c, src/emacs.c, src/eval.c, src/fileio.c,
      src/floatfns.c, src/fns.c, src/font.c, src/font.h, src/fontset.c,
      src/frame.c, src/frame.h, src/fringe.c, src/ftcrfont.c, src/ftfont.c,
      src/gfilenotify.c, src/gnutls.c, src/gtkutil.c, src/image.c,
      src/indent.c, src/insdel.c, src/intervals.c, src/json.c,
      src/keyboard.c, src/keymap.c, src/kqueue.c, src/lcms.c, src/lisp.h,
      src/lread.c, src/macros.c, src/marker.c, src/menu.c, src/minibuf.c,
      src/msdos.c, src/print.c, src/process.c, src/profiler.c, src/search.c,
      src/sound.c, src/syntax.c, src/syntax.h, src/sysdep.c, src/term.c,
      src/termhooks.h, src/textprop.c, src/undo.c, src/w32.c,
      src/w32console.c, src/w32fns.c, src/w32font.c, src/w32inevt.c,
      src/w32proc.c, src/w32select.c, src/w32term.c, src/w32term.h,
      src/w32uniscribe.c, src/window.c, src/xdisp.c, src/xfaces.c,
      src/xfns.c, src/xfont.c, src/xftfont.c, src/xmenu.c, src/xml.c,
      src/xrdb.c, src/xselect.c, src/xsettings.c, src/xterm.c, src/xwidget.c
      Rename XINT->XFIXNUM, XFASTINT->XFIXNAT, XUINT->XUFIXNUM.
      d1ec3a0a
  5. 13 Jul, 2018 1 commit
    • Tom Tromey's avatar
      Rename integerp->fixnum, etc, in preparation for bignums · 42fe787b
      Tom Tromey authored
      * src/json.c, src/keyboard.c, src/keyboard.h, src/keymap.c,
      src/kqueue.c, src/lcms.c, src/lisp.h, src/lread.c, src/macros.c,
      src/marker.c, src/menu.c, src/minibuf.c, src/msdos.c, src/print.c,
      src/process.c, src/profiler.c, src/search.c, src/sound.c,
      src/syntax.c, src/sysdep.c, src/term.c, src/terminal.c,
      src/textprop.c, src/undo.c, src/w16select.c, src/w32.c,
      src/w32console.c, src/w32cygwinx.c, src/w32fns.c, src/w32font.c,
      src/w32inevt.c, src/w32proc.c, src/w32select.c, src/w32term.c,
      src/w32uniscribe.c, src/widget.c, src/window.c, src/xdisp.c,
      src/xfaces.c, src/xfns.c, src/xfont.c, src/xftfont.c, src/xmenu.c,
      src/xrdb.c, src/xselect.c, src/xterm.c, src/xwidget.c: Rename
      INTEGERP->FIXNUM, make_number->make_fixnum, CHECK_NUMBER->CHECK_FIXNUM,
      make_natnum->make_fixed_natum, NUMBERP->FIXED_OR_FLOATP,
      NATNUMP->FIXNATP, CHECK_NATNUM->CHECK_FIXNAT.
      42fe787b
  6. 01 Jan, 2018 1 commit
  7. 22 Sep, 2017 1 commit
    • Mark Oteiza's avatar
      Expose viewing conditions in CAM02-UCS metric · d24ec585
      Mark Oteiza authored
      Also add tests from the colorspacious library.  Finally, catch an
      errant calculation, where degrees were not being converted to radians.
      * src/lcms.c (deg2rad, default_viewing_conditions):
      (parse_viewing_conditions): New functions.
      (lcms-cam02-ucs): Add comments pointing to references used.  Expand
      the docstring and explain viewing conditions.  JCh hue is given in
      degrees and needs to be converted to radians.
      (lcms-d65-xyz): Remove.  No need to duplicate this in Lisp or make the
      API needlessly impure.
      * test/src/lcms-tests.el: Reword commentary.
      (lcms-rgb255->xyz): New function.
      (lcms-cri-cam02-ucs): Fix let-binding.
      (lcms-dE-cam02-ucs-silver): New test, assimilated from colorspacious.
      d24ec585
  8. 16 Sep, 2017 4 commits
    • Eli Zaretskii's avatar
      96aaeaaf
    • Mark Oteiza's avatar
      Add lisp variable lcms-d65-xyz · 5490ccc5
      Mark Oteiza authored
      This serves as the default optional argument for functions in this
      library.
      * src/lcms.c (lcms-d65-xyz): New variable.
      (lcms-cam02-ucs): Use it.  Use better word in docstring.  Fix bug
      color1 -> color2.
      * test/src/lcms-tests.el: Add some tests for lcms-cri-cam02-ucs.
      (lcms-colorspacious-d65): New variable.
      5490ccc5
    • Eli Zaretskii's avatar
      Fix MS-Windows build broken by recent changes in lcms.c · 1170c2f3
      Eli Zaretskii authored
      * src/lcms.c [WINDOWSNT]: Define types for cmsWhitePointFromTemp
      and cmsxyY2XYZ function pointers.
      (init_lcms_functions) [WINDOWSNT]: Load cmsWhitePointFromTemp and
      cmsxyY2XYZ from liblcms2.
      (cmsWhitePointFromTemp, cmsxyY2XYZ) [WINDOWSNT]: Redirect to the
      corresponding function pointers.
      (Flcms_temp_to_white_point): Minor stylistic changes.  Doc fix.
      (syms_of_lcms2): Defsubr Slcms_temp_to_white_point.
      1170c2f3
    • Mark Oteiza's avatar
      Add lcms-temp->white-point and initial tests · f5f261c6
      Mark Oteiza authored
      * src/lcms.c (lcms-temp->white-point): New function.
      * test/src/lcms-tests.el: New file.
      f5f261c6
  9. 14 Sep, 2017 1 commit
    • Eli Zaretskii's avatar
      Support lcms2 in MS-Windows builds · 56ab0c4a
      Eli Zaretskii authored
      * lisp/term/w32-win.el (dynamic-library-alist): Include
      association for the lcms2 library.
      
      * src/lcms.c [WINDOWSNT]: Include windows.h and w32.h.  Use
      DEF_DLL_FN to define pointers to dynamically loaded lcms2
      functions.
      (cmsCIE2000DeltaE, cmsCIECAM02Init, cmsCIECAM02Forward)
      (cmsCIECAM02Done): New macros.
      (init_lcms_functions, Flcms2_available_p): New functions.
      (Flcms_cie_de2000, Flcms_cam02_ucs) [WINDOWSNT]: Call
      init_lcms_functions.
      (syms_of_lcms2): Defsubr lcms2-available-p.
      * src/w32fns.c (syms_of_w32fns): DEFSYM Qlcms2.
      
      * configure.ac: Include lcms2 in the final report and in
      emacs_config_features.
      
      * nt/INSTALL:
      * nt/INSTALL.W64: Update with the information about lcms2 library.
      56ab0c4a
  10. 13 Sep, 2017 3 commits
    • Paul Eggert's avatar
      Prefer HTTPS to FTP and HTTP in documentation · bc511a64
      Paul Eggert authored
      Most of this change is to boilerplate commentary such as license URLs.
      This change was prompted by ftp://ftp.gnu.org's going-away party,
      planned for November.  Change these FTP URLs to https://ftp.gnu.org
      instead.  Make similar changes for URLs to other organizations moving
      away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
      fsf.org when this works, as this will further help defend against
      man-in-the-middle attacks (for this part I omitted the MS-DOS and
      MS-Windows sources and the test tarballs to keep the workload down).
      HTTPS is not fully working to lists.gnu.org so I left those URLs alone
      for now.
      bc511a64
    • Mark Oteiza's avatar
      Provide an lcms2 feature · 3d96fc15
      Mark Oteiza authored
      * src/lcms.c (syms_of_lcms2): Provide "lcms2".
      3d96fc15
    • Mark Oteiza's avatar
      Add lcms2 interface · 5d4c539b
      Mark Oteiza authored
      configure.ac: Add boilerplate for configuring and detecting liblcms2.
      etc/NEWS: Mention new configure option and color-distance change.
      src/Makefile.in: Add references to lcms.c and liblcms.
      src/emacs.c: Define lcms2 symbols.
      src/lcms.c: New file.
      src/lisp.h: Add declaration for lcms2.
      src/xfaces.c: Add optional METRIC argument.
      5d4c539b
  11. 30 Sep, 2017 1 commit
    • Mark Oteiza's avatar
      Add CAM02 JCh and CAM02-UCS J'a'b' conversions · 645ff6c7
      Mark Oteiza authored
      * src/lcms.c (rad2deg, parse_jch_list, parse_jab_list, xyz_to_jch):
      (jch_to_xyz, jch_to_jab, jab_to_jch): New functions.
      (lcms-jch->xyz, lcms-jch->xyz, lcms-jch->jab, lcms-jab->jch): New Lisp
      functions.
      (lcms-cam02-ucs): Refactor.
      (syms_of_lcms2): Declare new functions.
      * test/src/lcms-tests.el (lcms-roundtrip, lcms-ciecam02-gold):
      (lcms-jmh->cam02-ucs-silver): New tests.
      * etc/NEWS: Mention new functions.
      645ff6c7