summaryrefslogtreecommitdiffstats
path: root/misc
Commit message (Collapse)AuthorAgeFilesLines
* * misc/ruby-mode.el (ruby-mode): use run-hooks if run-mode-hook ismatz2008-05-261-1/+3
| | | | | | | not available. a patch from Kazuhiro NISHIYAMA <zn at mbf.nifty.com> in [ruby-dev:34853]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el: move fontifying code from hook.matz2008-05-021-18/+12
| | | | | | [ruby-core:16636] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-style.el (ruby-style-{case,label}-indent): up list fromnobu2008-04-221-0/+2
| | | | | | | indentation point. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-encoding-map): added shift-jis for oldernobu2008-04-151-12/+20
| | | | | | | | | | | | | | | | versions. * misc/ruby-mode.el (ruby-mode-set-encoding): coding-system-to-mime-charset is not a standard function. [carbon-emacs:795] fix for the case that magic comment exists but coding system is absent. * misc/ruby-mode.el (ruby-mode): use write-contents-functions or write-contents-hooks for older versions. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/rdebug.el, misc/README: Remove rdebug.el as per requestknu2008-04-101-136/+0
| | | | | | | | from the maintainer and mention the ruby-debug project at RubyForge in README. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Mention the ruby-debug project at RubyForge.knu2008-04-101-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-mode): should use `run-mode-hooks' insteadnobu2008-03-171-1/+1
| | | | | | | | of calling `run-hooks' directly to run the mode hook. patch from Chiyuan Zhang <pluskid AT gmail.com> in [ruby-core:15915] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-encoding-map, ruby-use-encoding-map): addednobu2008-03-141-4/+12
| | | | | | | to customize. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-mode-set-encoding): special treat fornobu2008-03-121-0/+3
| | | | | | | compatibility with -Ks. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-add-log-current-method): use ruby stylenobu2008-03-061-8/+33
| | | | | | | method name format. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-calculate-indent): should distinguishmatz2008-02-261-1/+1
| | | | | | comment and # in strings. [ruby-dev:33874] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-style.el (ruby-style-label-indent): fix for labels insidenobu2008-02-231-1/+1
| | | | | | | blocks in switch. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-mode-set-encoding): updates magic comment.nobu2008-01-281-9/+22
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-mode): set ruby-mode-set-encoding to buffernobu2008-01-271-0/+1
| | | | | | | local before-save-hook. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-mode-set-encoding): automatically insertnobu2008-01-271-10/+30
| | | | | | | encoding magic comment. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * $Date$ keyword removed to avoid inclusion of locale dependentakr2008-01-063-3/+0
| | | | | | | string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-parse-partial): handle stringifiedmatz2007-11-121-2/+3
| | | | | | symbols properly using ruby-forward-string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-style.el (ruby-style-{case,label}-indent): adjust fornobu2007-10-261-9/+13
| | | | | | | labels inside switch block. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_yylex): dot at the head of the line denote linematz2007-10-251-6/+10
| | | | | | | | | continuation from previous one to support fluent interface. [experimental] * misc/ruby-mode.el (ruby-calculate-indent): support fluent dot. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-style.el (ruby-style-label-indent): fix for function topnobu2007-09-201-3/+23
| | | | | | | level labels. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-style.el (ruby-style-label-indent): for yacc rules.nobu2007-05-171-4/+11
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-style.el: new file. C/C++ style for ruby source code.nobu2007-04-261-0/+36
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-block-end-re): Support for theknu2007-03-111-1/+1
| | | | | | | exprimental ';;' terminator had been dropped. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/README, misc/rdebug.el: Add rdebug.el, Emacs ruby-debugknu2007-03-102-6/+143
| | | | | | | | interface based on rubydb3x.el; submitted by Martin Nordholts <enselic AT gmail.com> in [ruby-bugs:PR#9023]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): fixmatz2007-01-241-1/+1
| | | | | | regexp font-lock bug. [ruby-talk:235758] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/matrix.rb (Matrix::rank): use quo method to avoid integermatz2006-12-051-0/+2
| | | | | | | | | division problem. [ruby-core:09644] * lib/matrix.rb (Matrix::rank_e): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-parse-partial): better here-doc support.matz2006-09-131-1/+1
| | | | | | | | a patch from Marshall T. Vandegrift <llasram at gmail.com>. [ruby-core:08804] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-expr-beg): support $! at the end ofmatz2005-11-301-1/+1
| | | | | | | expression. [ruby-dev:27868] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-calculate-indent): arrange deep-indentnobu2005-09-241-2/+6
| | | | | | | closing parenthesis at same column as the opening. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-expr-beg): deal with heredoc separately.nobu2005-09-241-6/+6
| | | | | | | | | | | fixed: [ruby-list:41168] * misc/ruby-mode.el (ruby-calculate-indent): not to deepen indent level for continuous line inside parentheses. http://nabeken.tdiary.net/20050915.html#p02 git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * signal.c (sigexit): call rb_thread_signal_exit() instead ofmatz2005-06-121-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rb_exit(). [ruby-dev:26347] * eval.c (rb_thread_signal_exit): a new function to exit on main thread. * eval.c (rb_thread_switch): exit status should be retrieved from ruby_errinfo. * eval.c (rb_f_exit): ensure exit(0) should call exit(EXIT_SUCCESS). * missing/mkdir.c: remove. [ruby-core:05177] * hash.c (env_aset): do not treat nil as key-removing value. [ruby-list:40865] * parse.y (method_call): allow aref expression ([]) to take a block. * parse.y (block_dup_check): a function to check duplication of a block argument and an actual block. * lib/delegate.rb (SimpleDelegator::__setobj__): need check for recursive delegation. [ruby-core:04940] * lib/cgi.rb: add underscore aliases CGI::escape_html, CGI::unescape_html, CGI::escape_element, CGI::unescape_element. [ruby-core:05058] * misc/ruby-mode.el (ruby-expr-beg): fix looking point drift. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (parser_yylex): allow ';;' to be block terminator inmatz2005-06-071-7/+8
| | | | | | | | | | | | | | | | | | place of 'end'. [highly experimental] * misc/ruby-mode.el (ruby-block-end-re): allow ';;' for a negative indent trigger. [highly experimental] * parse.y (parser_yylex): "respond_to?:foo" should be interpreted as "respond_to? :foo" at the command level. [ruby-talk:144303] * sprintf.c (rb_f_sprintf): raise exception on debug mode (-d), not verbose mode (-w/-w). [ruby-core:05123] * sprintf.c (rb_f_sprintf): warn always on verbose mode. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): stringnobu2005-05-231-1/+1
| | | | | | | literals to be matched non-greedy. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_attr): attribute name check added.matz2005-04-181-1/+1
| | | | | | | * numeric.c (flo_plus): small typo fix. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-expr-beg): returned true always.nobu2005-03-191-2/+1
| | | | | | | fixed: [ruby-list:40683] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add ruby-electric.elzsombor2005-03-062-0/+201
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c: replace rb_protect_inspect() and rb_inspecting_p() bymatz2005-03-041-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rb_exec_recursive() in eval.c. * eval.c (rb_exec_recursive): new function. * array.c (rb_ary_join): use rb_exec_recursive(). * array.c (rb_ary_inspect, rb_ary_hash): ditto. * file.c (rb_file_join): ditto. * hash.c (rb_hash_inspect, rb_hash_to_s, rb_hash_hash): ditto. * io.c (rb_io_puts): ditto. * object.c (rb_obj_inspect): ditto * struct.c (rb_struct_inspect): ditto. * lib/set.rb (SortedSet::setup): a hack to shut up warning. [ruby-talk:132866] * lib/time.rb (Time::strptime): add new function. inspired by [ruby-talk:132815]. * lib/parsedate.rb (ParseDate::strptime): ditto. * regparse.c: move st_*_strend() functions from st.c. fixed some potential memory leaks. * exception error messages updated. [ruby-core:04497] * ext/socket/socket.c (Init_socket): add bunch of Socket constants. Patch from Sam Roberts <sroberts@uniserve.com>. [ruby-core:04409] * array.c (rb_ary_s_create): no need for negative argc check. [ruby-core:04463] * array.c (rb_ary_unshift_m): ditto. * lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass of StandardError class, not Exception class. [ruby-core:04429] * parse.y (fcall_gen): lvar(arg) will be evaluated as lvar.call(arg) when lvar is a defined local variable. [new] * object.c (rb_class_initialize): call inherited method before calling initializing block. * eval.c (rb_thread_start_1): initialize newly pushed frame. * lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE. fixed: [ruby-core:04444] * eval.c (is_defined): NODE_IASGN is an assignment. * ext/readline/readline.c (Readline.readline): use rl_outstream and rl_instream. [ruby-dev:25699] * ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check [ruby-dev:25675] * misc/ruby-mode.el: [ruby-core:04415] * lib/rdoc/generators/html_generator.rb: [ruby-core:04412] * lib/rdoc/generators/ri_generator.rb: ditto. * struct.c (make_struct): fixed: [ruby-core:04402] * ext/curses/curses.c (window_color_set): [ruby-core:04393] * ext/socket/socket.c (Init_socket): SO_REUSEPORT added. [ruby-talk:130092] * object.c: [ruby-doc:818] * parse.y (open_args): fix too verbose warnings for the space before argument parentheses. [ruby-dev:25492] * parse.y (parser_yylex): ditto. * parse.y (parser_yylex): the first expression in the parentheses should not be a command. [ruby-dev:25492] * lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330] * object.c (Init_Object): remove Object#type. [ruby-core:04335] * st.c (st_foreach): report success/failure by return value. [ruby-Bugs-1396] * parse.y: forgot to initialize parser struct. [ruby-dev:25492] * parse.y (parser_yylex): no tLABEL on EXPR_BEG. [ruby-talk:127711] * document updates - [ruby-core:04296], [ruby-core:04301], [ruby-core:04302], [ruby-core:04307] * dir.c (rb_push_glob): should work for NUL delimited patterns. * dir.c (rb_glob2): should aware of offset in the pattern. * string.c (rb_str_new4): should propagate taintedness. * env.h: rename member names in struct FRAME; last_func -> callee, orig_func -> this_func, last_class -> this_class. * struct.c (rb_struct_set): use original method name, not callee name, to retrieve member slot. [ruby-core:04268] * time.c (time_strftime): protect from format modification from GC finalizers. * object.c (Init_Object): remove rb_obj_id_obsolete() * eval.c (rb_mod_define_method): incomplete subclass check. [ruby-dev:25464] * gc.c (rb_data_object_alloc): klass may be NULL. [ruby-list:40498] * bignum.c (rb_big_rand): should return positive random number. [ruby-dev:25401] * bignum.c (rb_big_rand): do not use rb_big_modulo to generate random bignums. [ruby-dev:25396] * variable.c (rb_autoload): [ruby-dev:25373] * eval.c (svalue_to_avalue): [ruby-dev:25366] * string.c (rb_str_justify): [ruby-dev:25367] * io.c (rb_f_select): [ruby-dev:25312] * ext/socket/socket.c (sock_s_getservbyport): [ruby-talk:124072] * struct.c (make_struct): [ruby-dev:25249] * dir.c (dir_open_dir): new function. [ruby-dev:25242] * io.c (rb_f_open): add type check for return value from to_open. * lib/pstore.rb (PStore#transaction): Use the empty content when a file is not found. [ruby-dev:24561] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_chown): integer conversion should be prior tomatz2004-11-221-1/+1
| | | | | | | | | | | | | | | GetOpenFile(). [ruby-dev:24947] * file.c (rb_file_truncate): ditto. * file.c (rb_file_s_truncate): ditto. * dir.c (dir_seek): use NUM2OFFT(). * misc/ruby-mode.el (ruby-non-block-do-re): [ruby-core:03719] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handlenobu2004-11-151-4/+9
| | | | | | | operator symbols. [ruby-talk:120177] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_thread_start_0): forget to free some memory chunks.matz2004-10-291-4/+17
| | | | | | | [ruby-core:03611] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_reopen): should clear allocated OpenFile. pointedmatz2004-08-171-1/+1
| | | | | | | out by Guy Decoux. [ruby-core:03288] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el (ruby-expr-beg, ruby-parse-partial,nobu2004-07-311-11/+11
| | | | | | | | ruby-calculate-indent, ruby-move-to-block, ruby-forward-sexp, ruby-backward-sexp): keywords must match word-wise. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_eval): copy on write for argument local variablematz2004-07-271-4/+16
| | | | | | | | | | | | | | | assignment. * eval.c (assign): ditto. * eval.c (rb_call0): update ruby_frame->argv with the default value used for the optional arguments. * object.c (Init_Object): "===" calls rb_obj_equal() directly. [ruby-list:39937] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (string_content): turn off NODE_NEWLINE flag to avoidmatz2004-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | unnecessary line trace for inlined expression. (ruby-bugs PR#1320) * numeric.c (flo_to_s): tweak output string based to preserve decimal point and to remove trailing zeros. [ruby-talk:97891] * string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM search. [ruby-talk:97342] * hash.c (rb_hash_equal): returns true if two hashes have same set of key-value set. [ruby-talk:97559] * hash.c (rb_hash_eql): returns true if two hashes are equal and have same default values. * string.c (rb_str_equal): always returns true or false, never returns nil. [ruby-dev:23404] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (make_hostent): fix memory leak, based onmatz2004-04-011-172/+142
| | | | | | | the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (method_hash): new method. [ruby-talk:93968]matz2004-03-031-2/+9
| | | | | | | | | | | | | | | * eval.c (proc_eq): do not compare dyna_vars. * eval.c (proc_hash): new method. * eval.c (rb_yield_0): protect break/return from within orphan (or lambda) Proc object. * parse.y (yylex): should not allow symbol for invalid global variable (e.g. `:$-)`). [ruby-core:02518] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (localjump_destination): lambda should not interferematz2004-02-261-5/+3
| | | | | | | | | | return from the yielded block. * hash.c (delete_if_i): use st_delete_safe() (via rb_hash_delete()) instead of returning ST_DELETE. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * re.c (KR_REHASH): wrong hash value on sizeof(long) > sizeof(int).matz2004-02-131-4/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * misc/ruby-mode.el: better support for general delimitedmatz2004-01-271-5/+3
| | | | | | | | | | | | | | | | strings. [ruby-dev:22695] * lib/weakref.rb (WeakRef::initialize): set up @__id before calling "super". * lib/delegate.rb (Delegator::initialize): preserve singleton_method_added method [ruby-dev:22685] * lib/delegate.rb (Delegator::initialize): use Kernel::raise instead of mere raise. [ruby-dev:22681] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dir.c: merge tuning from H.Yamamoto <ocean@m2.ccsnet.ne.jp>.matz2004-01-051-1/+4
| | | | | | | | | | | | [ruby-dev:22486] * pack.c (pack_unpack): unpack requires big endian offet (OFF16B and OFF32B). The patch is from Minero Aoki in [ruby-dev:22489] * pack.c (OFF16B): add big-endian offset again. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e