Sat Jan 16 10:31:00 2016 SHIBATA Hiroshi * common.mk: test-sample was changed to test-basic. [Feature #11982][ruby-core:72823] * basictest/runner.rb: ditto. rename from tool/rubytest.rb. * basictest/test.rb: ditto. rename from sample/test.rb. * defs/gmake.mk: picked from r53540 * sample/test.rb: backword compatibility for chkbuild. Sat Jan 16 10:23:23 2016 Martin Duerst * string.c, enc/unicode.c: New code path as a preparation for Unicode-wide case mapping. The code path is currently guarded by the :lithuanian option to avoid accidental problems in daily use. * test/ruby/enc/test_case_mapping.rb: Test for above. * string.c: function 'check_case_options': fixed logical errors Fri Jan 15 20:20:20 2016 Naohisa Goto * regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): The value of UNALIGNED_WORD_ACCESS should be used to determine whether unaligned word access is allowed or not. After this commit, ./configure CPPFLAGS="-DUNALIGNED_WORD_ACCESS=0" disables unaligned word access even on platforms that support the feature. Fri Jan 15 16:12:10 2016 Nobuyoshi Nakada * parse.y (string1): reset heredoc indent for each string literal so that concatenated string would not be dedented. [ruby-core:72857] [Bug #11990] Thu Jan 14 20:01:00 2016 NARUSE, Yui * lib/uri/generic.rb (URI::Generic#to_s): change encoding to UTF-8 as Ruby 2.2/ by Koichi ITO https://github.com/ruby/ruby/pull/1188 fix GH-1188 Thu Jan 14 17:36:16 2016 Nobuyoshi Nakada * variable.c (rb_f_global_variables): add matched back references only, as well as defiend? operator. Thu Jan 14 16:12:09 2016 Nobuyoshi Nakada * sprintf.c (rb_str_format): format exact number more exactly. Thu Jan 14 15:08:43 2016 Tony Arcieri * Remove 512-bit DH group. It's affected by LogJam Attack. https://weakdh.org/ [fix GH-1196][Bug #11968][ruby-core:72766] Thu Jan 14 11:44:29 2016 Nobuyoshi Nakada * variable.c (rb_f_global_variables): add $1..$9 only if $~ is set. fix the condition removed at r14014. Wed Jan 13 17:21:45 2016 SHIBATA Hiroshi * .travis.yml: removed commented-out code. Wed Jan 13 17:14:54 2016 SHIBATA Hiroshi * .travis.yml: removed osx code. follow up with r53517 Wed Jan 13 16:56:19 2016 Nobuyoshi Nakada * iseq.c (rb_iseq_mark): mark parent iseq to prevent dynamically generated iseq by eval from GC. [ruby-core:72620] [Bug #11928] Wed Jan 13 03:42:58 2016 Eric Wong * class.c (Init_class_hierarchy): resolve name for rb_cObject ASAP * object.c (rb_mod_const_set): move name resolution to rb_const_set * variable.c (rb_const_set): do class resolution here [ruby-core:72807] [Bug #11977] Wed Jan 13 00:37:12 2016 Satoshi Ohmori * man/ruby.1: fix double word typo. [Fix GH-1194] Tue Jan 12 21:01:09 2016 Benoit Daloze * common.mk: update URL and name for the Ruby spec suite. Tue Jan 12 19:52:19 2016 sorah (Shota Fukumori) * lib/forwardable.rb: Convert given accessors to String. r53381 changed to accept only Symbol or String for accessors, but there are several rubygems that pass classes (e.g. Array, Hash, ...) as accessors. Prior r53381, it was accepted because Class#to_s returns its class name. After r53381 given accessors are checked with define_method, but it accepts only Symbol or String, otherwise raises TypeError. def_delegator Foo, :some_method This change is to revert unexpected incompatibility. But this behavior may change in the future. Mon Jan 12 18:41:41 2016 Martin Duerst * string.c: made a variable name more grammatically correct Mon Jan 12 18:34:34 2016 Martin Duerst * string.c: minor grammar fix [ci skip] Mon Jan 12 16:09:09 2016 Martin Duerst * test/ruby/enc/test_casing_options.rb: Tests for option parsing/checking for upcase/downcase/capitalize/swapcase (see r53503; with Kimihito Matsui) Mon Jan 12 16:03:03 2016 Martin Duerst * string.c: Added option parsing/checking for upcase/downcase/ capitalize/swapcase (with Kimihito Matsui) Mon Jan 11 21:28:28 2016 Martin Duerst * include/ruby/oniguruma.h: Added flags needed for upcase/downcase Unicode addition (with Kimihito Matsui) Mon Jan 11 09:50:24 2016 Nobuyoshi Nakada * configure.in: check if the API version number is consistent with the program version number. Sun Jan 10 20:57:25 2016 Nobuyoshi Nakada * compile.c (compile_massign_lhs): when index ends with splat, append rhs value to it like POSTARG, since VM_CALL_ARGS_SPLAT splats the last argument only. [ruby-core:72777] [Bug #11970] Sun Jan 10 15:45:10 2016 Nobuyoshi Nakada * include/ruby/missing.h (explicit_bzero_by_memset_s): remove inline implementation by memset_s, which needs a macro before including headers and can cause problems in extension libraries by the order of the macro and headers. Sun Jan 10 13:41:36 2016 Eric Wong * io.c (rb_deferr): remove long obsolete global Sun Jan 10 09:14:42 2016 Eric Wong * ext/psych/lib/psych/visitors/yaml_tree.rb (visit_String): eliminate chomp * lib/net/http.rb (connect): eliminate delete * lib/net/http/header.rb (basic_encode): ditto * lib/net/imap.rb (authenticate): eliminate gsub (self.encode_utf7): shorten delete arg * lib/net/smtp.rb (base64_encode): eliminate gsub * lib/open-uri.rb (OpenURI.open_http): eliminate delete * lib/rss/rss.rb: ditto * lib/securerandom.rb (base64): ditto (urlsafe_base64): eliminate delete! * lib/webrick/httpauth/digestauth.rb (split_param_value): eliminate chop * lib/webrick/httpproxy.rb (do_CONNECT): eliminate delete (setup_upstream_proxy_authentication): ditto [ruby-core:72666] [Feature #11938] Sat Jan 9 23:19:14 2016 Kuniaki IGARASHI * test/ruby/test_hash.rb (test_try_convert): Add test for Hash.try_convert. [Fix GH-1190] Sat Jan 9 23:15:25 2016 Jon Moss * ext/openssl/ossl.c: Add missing variables to documentation examples. [Fix GH-1189] Sat Jan 9 18:25:57 2016 Nobuyoshi Nakada * symbol.h (is_attrset_id): ASET is an attrset ID. fix unexpected safe call instead of an ordinary ASET. Sat Jan 9 10:44:33 2016 Nobuyoshi Nakada * configure.in, win32/setup.mak: extract RUBY_PROGRAM_VERSION from RUBY_VERSION in version.h instead of RUBY_API_VERSION numbers in include/ruby/version.h, and cut it into version numbers. Sat Jan 9 07:13:33 2016 Koichi Sasada * gc.c: rename PAGE_* to HEAP_PAGE_* because PAGE_SIZE is used in Mac OS X. * test/ruby/test_gc.rb: catch up this fix. Sat Jan 9 05:45:40 2016 Koichi Sasada * gc.c: PAGE_BITMAP_PLANES (the number of bitmap) is 4, not 3. Sat Jan 9 05:42:57 2016 Koichi Sasada * gc.c: rename constant names HEAP_* to PAGE_*. Keys of GC::INTERNAL_CONSTANTS are also renamed. * test/ruby/test_gc.rb: catch up this fix. Fri Jan 8 22:30:06 2016 Akinori MUSHA * doc/regexp.rdoc: [DOC] Elaborate on the \G anchor. [ci skip] Fri Jan 8 19:49:27 2016 Koichi Sasada * gc.c: remove heap_page::body. Instead of this field, heap_page::start field works well. Fri Jan 8 19:31:52 2016 Koichi Sasada * gc.c: rename rb_heap_t::page_length to rb_heap_t::total_pages. `page_length' is not clear (we may understand with length of a page). Fri Jan 8 17:07:14 2016 Koichi Sasada * gc.c: remove heap_page::heap. This field is only used to recognize whether a page is in a tomb or not. Instead of this field, heap_page::flags::in_tomb (1 bit field) is added. Also type of heap_page::(total|free|final)_slots are changed from int to short. 2B is enough for them. Fri Jan 8 09:33:59 2016 Shugo Maeda * iseq.c (rb_iseq_compile_with_option): move variable initialization code to avoid maybe-uninitialized warnings by gcc 4.8. Fri Jan 8 00:03:22 2016 Shugo Maeda * enum.c (enum_min, enum_max): do the same optimization as r53454. Thu Jan 7 22:32:21 2016 Kenta Murata * ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P and HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++. [ruby-core:72736] [Bug #11962] Thu Jan 7 22:02:21 2016 Shugo Maeda * enum.c (enum_minmax): optimize object comparison in Enumerable#minmax. Thu Jan 7 14:49:12 2016 Nobuyoshi Nakada * thread.c (rb_thread_pending_interrupt_p): no pending interrupt before initialization. * thread.c (thread_raise_m, rb_thread_kill): uninitialized thread cannot interrupt. [ruby-core:72732] [Bug #11959] Thu Jan 7 11:34:14 2016 Nobuyoshi Nakada * include/ruby/backward.h (ruby_show_copyright_to_die): for source code backward compatibility. * ruby.c (process_options): return Qtrue to exit the process successfully. * version.c (ruby_show_copyright): no longer exit. Wed Jan 6 17:22:53 2016 Nobuyoshi Nakada * lib/optparse.rb (OptionParser#order!): add `into` optional keyword argument to store the results. [Feature #11191] Tue Jan 5 21:44:37 2016 SHIBATA Hiroshi * ChangeLog: fix wrong class name. Tue Jan 5 21:43:50 2016 Kuniaki IGARASHI * test/ruby/test_string.rb(test_chr): added test for String#chr [fix GH-1179] Tue Jan 5 21:32:26 2016 Kuniaki IGARASHI * test/ruby/test_numeric.rb (test_nonzero_p): added test for Numeric#nonzero? [fix GH-1187] Tue Jan 5 11:47:23 2016 Damir Gaynetdinov * doc/marshal.rdoc: Clarify object references example, that the reference is same object. [Fix GH-1156] Tue Jan 5 05:06:51 2016 Eric Wong * ext/stringio/stringio.c (strio_binmode): implement to set encoding * test/stringio/test_stringio.rb (test_binmode): new test [ruby-core:72699] [Bug #11945] Mon Jan 4 15:44:37 2016 Sho Hashimoto * variable.c (rb_mod_deprecate_constant): [DOC] added documentation for Module#deprecate_constant. [ci skip] Mon Jan 4 15:36:38 2016 Sho Hashimoto * thread_sync.c: [DOC] remove SizedQueue#close argument. [ci skip] Mon Jan 4 10:14:24 2016 SHIBATA Hiroshi * test/coverage/test_coverage.rb: ignored test when enabled to coverage. It lead to crash with `make test-all`. Mon Jan 4 08:10:44 2016 Yuichiro Kaneko * insns.def (opt_case_dispatch): Move a comment to the appropriate position. [ci skip] Sun Jan 3 23:55:13 2016 Nobuyoshi Nakada * lib/rubygems/security.rb (DIGEST_ALGORITHM, KEY_ALGORITHM): should check same name as the used constants. [ruby-core:72674] [Bug #11940] Sun Jan 3 19:22:01 2016 Nobuyoshi Nakada * aclocal.m4: add fallback file for non-aclocal environments. [ruby-core:72683] [Bug #11942] Sun Jan 3 13:56:49 2016 Yuichiro Kaneko * eval_error.c (rb_print_undef): Use `rb_method_visibility_t` instead of `int`. * eval_intern.h (rb_print_undef): ditto * proc.c (mnew_internal): ditto * vm_method.c (rb_export_method): ditto [Misc #11649] [ruby-core:71311] [fix GH-1078] Sun Jan 3 12:12:09 2016 Nobuyoshi Nakada * acinclude.m4: rename aclocal.m4, which should be generated by aclocal. [ruby-core:72675] [Bug #11941] Sat Jan 2 21:07:55 2016 Eric Wong * thread_sync.c (queue_do_pop): avoid cast with Qfalse (rb_szqueue_push): ditto, use queue_sleep wrapper Sat Jan 2 16:16:14 2016 Masatoshi SEKI * lib/erb.rb: Allow ERB subclass to add token easily. [Feature #11936] * test/erb/test_erb.rb: ditto. Sat Jan 2 14:44:31 2016 Nobuyoshi Nakada * parse.y (regexp): set_yylval_num sets u1, should use nd_tag instead of nd_state. [ruby-core:72638] [Bug #11932] Sat Jan 2 02:27:22 2016 Marc-Andre Lafortune * lib/ostruct.rb: Fix case of frozen object with initializer. Bug revealed by RubySpec [ruby-core:72639] Fri Jan 1 22:01:52 2016 Kazuhiro NISHIYAMA * NEWS: mention CSV's liberal_parsing option. Fri Jan 1 19:38:23 2016 okkez * doc/NEWS-2.3.0: fix double words typo. [ci skip][fix GH-1183] Fri Jan 1 15:28:56 2016 Nobuyoshi Nakada * compile.c (remove_unreachable_chunk): decrease count of call_info in removed instructions. fix up r53402. Fri Jan 1 12:05:53 2016 Nobuyoshi Nakada * compile.c (remove_unreachable_chunk): remove unreferred label to optimize away unreachable chunk. Fri Jan 1 11:42:57 2016 James Edward Gray II * lib/csv.rb (CSV): Add a liberal_parsing option. Patch by Braden Anderson. [#11839] * test/csv/test_features.rb: test liberal_parsing Fri Jan 1 10:27:28 2016 Nobuyoshi Nakada * tool/mkconfig.rb (RbConfig): prefix SDKROOT to oldincludedir not includedir, the latter is outside the ruby installation. [ruby-core:72496] [Bug #11881] Fri Jan 1 08:53:02 2016 Yuki Kurihara * test/ruby/test_lazy_enumerator.rb (test_take_bad_arg): Add test code in case of Enumerator::Lazy#take called with negative number. [ruby-dev:49467] [Bug #11933] Fri Jan 1 05:06:20 2016 Nobuyoshi Nakada * parse.y (parser_here_document): update indent for each line in indented here document with single-quotes. [ruby-core:72479] [Bug #11871] Fri Jan 1 03:26:44 2016 Nobuyoshi Nakada * lib/ostruct.rb (freeze): define deferred accessors before freezing to get rid of an error when just reading frozen OpenStruct. Thu Dec 31 14:36:45 2015 Marc-Andre Lafortune * lib/ostruct.rb: Fix new_ostruct_member to correctly avoid redefinition [#11901] Thu Dec 31 02:45:12 2015 NARUSE, Yui * test/ruby/test_module.rb (test_classpath): r53376 may change the order of m.constants. `make TESTS='-v ruby/test_class.rb ruby/test_module.rb' test-all` may fail after that. http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20151230T164202Z.log.html.gz Thu Dec 31 02:20:00 2015 Benoit Daloze * common.mk (help): Fix typo. Wed Dec 30 20:53:09 2015 SHIBATA Hiroshi * lib/net/http/responses.rb: Added new response class for 451 status code. * lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons Wed Dec 30 20:45:45 2015 SHIBATA Hiroshi * lib/webrick/httpstatus.rb: Added HTTP 451 Status Code. [fix GH-1167] Patch by @MuhammetDilmac https://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00 Wed Dec 30 20:25:52 2015 SHIBATA Hiroshi * doc/syntax/calling_methods.rdoc: fix old operator for safe navigation operator. [ci skip][fix GH-1182] Patch by @dougo Wed Dec 30 16:43:23 2015 Kuniaki IGARASHI * test/ruby/test_string.rb (test_ord): Add test for String#ord. [Fix GH-1181] Wed Dec 30 11:28:57 2015 Nobuyoshi Nakada * lib/forwardable.rb (def_instance_delegator): adjust backtrace of method body by tail call optimization. adjusting the delegated target is still done by deleting backtrace. * lib/forwardable.rb (def_single_delegator): ditto. Wed Dec 30 11:18:42 2015 Elliot Winkler * lib/forwardable.rb (def_instance_delegator) fix delegating to 'args' and 'block', clashing with local variables in generated methods. [ruby-core:72579] [Bug #11916] * lib/forwardable.rb (def_single_delegator): ditto. Wed Dec 30 09:58:56 2015 Nobuyoshi Nakada * object.c (rb_class_inherited_p): search the corresponding ancestor to prepended module from prepending class itself. [ruby-core:72493] [Bug #11878] Wed Dec 30 09:20:00 2015 Yuki Kurihara * test/stringio/test_io.rb (test_flag): add assertion for error when text and binary mode are mixed. [ruby-dev:49465] [Feature #11921] Wed Dec 30 08:43:59 2015 Yuki Kurihara * test/stringio/test_stringio.rb (test_initialize): add test for StringIO#initialize. [ruby-core:72585] [Feature #11920] Wed Dec 30 05:19:24 2015 Eric Wong * class.c (struct clone_const_arg): adjust for id_table (clone_const): ditto (clone_const_i): ditto (rb_mod_init_copy): ditto (rb_singleton_class_clone_and_attach): ditto (rb_include_class_new): ditto (include_modules_at): ditto * constant.h (rb_free_const_table): ditto * gc.c (free_const_entry_i): ditto (rb_free_const_table): ditto (obj_memsize_of): ditto (mark_const_entry_i): ditto (mark_const_tbl): ditto * internal.h (struct rb_classext_struct): ditto * object.c (rb_mod_const_set): resolve class name on assignment * variable.c (const_update): replace with const_tbl_update (const_tbl_update): new function (fc_i): adjust for id_table (find_class_path): ditto (autoload_const_set): st_update => const_tbl_update (rb_const_remove): adjust for id_table (sv_i): ditto (rb_local_constants_i): ditto (rb_local_constants): ditto (rb_mod_const_at): ditto (rb_mod_const_set): ditto (rb_const_lookup): ditto [ruby-core:72112] [Feature #11614] Wed Dec 30 04:10:13 2015 CHIKANAGA Tomoyuki * thread_pthread.c (rb_thread_create_timer_thread): destroy attr even if pthread_create() failed. Wed Dec 30 02:55:09 2015 Eric Wong * thread_pthread.c (setup_communication_pipe): delay setting owner (rb_thread_create_timer_thread): until thread creation succeeds [ruby-core:72590] [Bug #11922] Tue Dec 29 19:12:46 2015 Nobuyoshi Nakada * ruby.c (proc_options): -W command line option should be able to override -w in RUBYOPT environment variable. Tue Dec 29 17:54:16 2015 Nobuyoshi Nakada * eval.c (ignored_block): warn if a block is given to `using`, which is probably for `Module.new`. Tue Dec 29 12:48:34 2015 Nobuyoshi Nakada * lib/ostruct.rb (OpenStruct): make respond_to? working on just-allocated objects for workaround of Psych. [ruby-core:72501] [Bug #11884] Tue Dec 29 10:35:00 2015 Kenta Murata * test/mkmf/test_have_func.rb (test_have_func): Add assertion to examine the existence of HAVE_RUBY_INIT. * test/mkmf/test_have_func.rb (test_not_have_func): Add assertion to examine the absence of HAVE_RUBY_INIT. Tue Dec 29 06:50:42 2015 Eric Wong * thread_sync.c: static classes Tue Dec 29 05:30:30 2015 Eric Wong * lib/resolv.rb (Resolv::IPv6.create): avoid modifying frozen * test/resolv/test_dns.rb (test_ipv6_create): test for above [Bug #11910] [ruby-core:72559] Mon Dec 28 14:55:57 2015 Kuniaki IGARASHI * test/ruby/test_string.rb (TestString#test_rstrip_bang): Add test for String#rstrip!. [Fix GH-1176] Mon Dec 28 09:18:53 2015 Kuniaki IGARASHI * test/ruby/test_string.rb (TestString#test_lstrip_bang): Add test for String#lstrip!. [Fix GH-1176] Sun Dec 27 23:32:26 2015 Masaki Suketa * ext/win32ole/win32ole.c (ole_variant2val): refactoring. Sun Dec 27 21:14:42 2015 NAKAMURA Usaku * process.c (rb_execarg_parent_start1): need to convert the encoding to ospath's one. Sun Dec 27 20:54:22 2015 NAKAMURA Usaku * process.c: use rb_w32_uchdir() instead of plain chdir() on Windows. reported by naruse via twitter. * process.c (rb_execarg_addopt): need to convert the encoding to ospath's one. Sun Dec 27 20:00:31 2015 SHIBATA Hiroshi * enc/x_emoji.h: fix dead-link. Sun Dec 27 19:55:55 2015 SHIBATA Hiroshi * doc/NEWS-2.3.0: fix a typo. Sun Dec 27 18:08:15 2015 Kuniaki IGARASHI * string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): [DOC] Fix ruby-doc comments for String#rstrip! and lstrip!. It looks like dropped bang. [Fix GH-1175] Sun Dec 27 15:14:20 2015 Eric Wong * io.c (io_getpartial): remove unused kwarg from template * test/ruby/test_io.rb (test_readpartial_bad_args): new [Bug #11885] Sun Dec 27 11:50:53 2015 Kuniaki IGARASHI * test/ruby/test_string.rb (test_rstrip, test_lstrip): Add tests for String#lstrip and rstrip. The test cases are used from string.c ruby-doc comments. [Fix GH-1174] Sun Dec 27 11:47:46 2015 Kuniaki IGARASHI * test/ruby/test_string.rb (test_insert): Add test for String#insert. The test cases are written in string.c comments as a reference. [Fix GH-1173] Sun Dec 27 11:03:33 2015 Nobuyoshi Nakada * parse.y (show_bitstack): trace stack_type value if yydebug. Sun Dec 27 10:03:14 2015 Nobuyoshi Nakada * enc/depend (enc, trans): fix version dependency, shared object files depend on the RUBY_SO_NAME value for runtime link. Sun Dec 27 09:47:20 2015 Masaki Suketa * ext/win32ole/win32ole.c (ole_vstr2wc, ole_variant2val): fix blank string conversion. [Bug #11880] Thanks Akio Tajima for the patch! Sun Dec 27 09:34:53 2015 craft4coder * doc/extension.rdoc: [DOC] `nul` should be uppercase. change 'nul' => 'NUL'. [Fix GH-1172] Sat Dec 26 18:29:01 2015 Kouhei Sutou * lib/xmlrpc/client.rb: Support SSL options in async methods of XMLRPC::Client. [Bug #11489] Reported by Aleksandar Kostadinov. Thanks!!! Sat Dec 26 11:26:38 2015 Nobuyoshi Nakada * miniinit.c (Init_enc): add some common aliases of built-in encodings. [ruby-core:72481] [Bug #11872] Fri Dec 25 22:43:26 2015 Nobuyoshi Nakada * configure.in: extract RUBY_RELEASE_DAY at generating Makefile. * version.h (RUBY_RELEASE_DATE): construct from RUBY_RELEASE_YEAR, RUBY_RELEASE_MONTH, and RUBY_RELEASE_DAY. Fri Dec 25 21:33:06 2015 Yukihiro Matsumoto * version.h (RUBY_VERSION): 2.4.0 development has started. Fri Dec 25 14:12:12 2015 Martin Duerst * doc/ChangeLog-2.3.0, ext/tk/lib/tkextlib/SUPPORT_STATUS, include/ruby/version.h: minor grammar fixes [ci skip] Fri Dec 25 08:23:22 2015 Tadashi Saito * compile.c, cont.c, doc, man: fix common misspelling. [ruby-core:72466] [Bug #11870] For the changes before 2.3.0, see doc/ChangeLog-2.3.0 For the changes before 2.2.0, see doc/ChangeLog-2.2.0 For the changes before 2.1.0, see doc/ChangeLog-2.1.0 For the changes before 2.0.0, see doc/ChangeLog-2.0.0 For the changes before 1.9.3, see doc/ChangeLog-1.9.3 For the changes before 1.8.0, see doc/ChangeLog-1.8.0 Local variables: coding: us-ascii add-log-time-format: (lambda () (let* ((time (current-time)) (system-time-locale "C") (diff (+ (cadr time) 32400)) (lo (% diff 65536)) (hi (+ (car time) (/ diff 65536)))) (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t))) indent-tabs-mode: t tab-width: 8 change-log-indent-text: 2 end: vim: tabstop=8 shiftwidth=2