Giraffe+ Changelog

What's new in Giraffe+ 0.7.13.1570

Dec 8, 2015
  • ADD: Script\MoveWindowToOtherMonitor.giraffe
  • ADD: Script\settings\hotkey\CenterWindowInMonitor.giraffe
  • ADD: Support multi-monitor environments.
  • FIX: AutoResize doesn't work in a sub monitor.
  • MOD: In view-file-in-list.giraffe, try to read text files as UTF8n and then BOM and ANSI if failed.

New in Giraffe+ 0.7.12.1569 (Mar 2, 2015)

  • ADD: DataDefault/Giraffe/RegisterStartup.giraffe
  • ADD: Forgotten floating number functions Number.round, trunc
  • ADD: MFC_CPaintDC, ClientDC, WindowDC
  • FIX: ListBox data can be destoryed by threading.
  • FIX: Terminated when accessing a path longer than MAX_PATH.
  • MOD: Event.GetSortMode should pass the base text of autocompletion as the fourth argument.

New in Giraffe+ 0.7.11.1563 (Nov 18, 2014)

  • ADD: Change the Edit icon color to red during a breakable long operation (view-and-sort and find). A progress can be seen in the Status window shown by F6 key.
  • ADD: Method.functionize, returns a function using a first argument as self.
  • ADD: Object.empty?(eval_if_block), which returns an argument if self.empty is true after eval when it is a block, or just returns self otherwise.
  • MOD: Boost 1.56.0
  • FIX: Window.FindWild fails if a window title length is a longer than 255.
  • FIX: Window.IsHung returns true when the window isn't hung and false otherwise.
  • MOD: Object.nil?(eval_if_block), which returns an argument if self.nil? is true after eval when it is a block, or just returns self otherwise.
  • MOD: Script/samples/text_expansion.giraffe should be able to use the registered items as registered texts.
  • MOD: google-mode should open https instead of http.
  • MOD: Move the website, reconsider the default configurations and rewrite the manual.

New in Giraffe+ 0.7.10.1558 (Nov 18, 2014)

  • FIX: ITEMIDLIST display string cache doesn't prefer a folder.
  • FIX: SetListItem can break list data when threading

New in Giraffe+ 0.7.9.1556 (Nov 18, 2014)

  • ADD: IFileOperation as Container/String.ifo_copy/move/delete/rename.
  • ADD: Istream.get_time and Ostream.put_time, using std::get_time and std::put_time.
  • ADD: String.dir/ddir, which call iidl_dir/ddir when the self is an ITEMIDLIST or call to_Path.dir/ddir when a path.
  • ADD: Time.Parse, using COleTime::Parse.
  • FIX: Multi-thread ITEMIDLIST cache can make an access violation error.
  • MOD: Don't react to an input character while an IME is composing.
  • MOD: Don't search a junktion as a sub directory with find.giraffe.
  • MOD: ITEMIDLIST cache should return a folder one when the same name item exists.

New in Giraffe+ 0.7.8.1523 (Nov 18, 2014)

  • ADD: Method Literal Closure, ``[] is parsed as `[].closure2
  • ADD: Method.-> as f$.-> g$ returns `[g(f)]
  • FIX: A long autocompletion moves the main window right when AutoResize is configured as centering.
  • FIX: Canceling autocompletion keeps shortcut directories open.
  • FIX: PasteFile doesn't work sometimes in Windows 7.
  • MOD: Closured methods should be resolvable.
  • MOD: Context.set_arg, set_message_id, set_self, set_owner, set_callee and set_caller should return self.
  • MOD: SetGiraffeWidth should support center-fixing move (AutoResize.MoveLeft == 2)

New in Giraffe+ 0.7.7.1500 (Nov 18, 2014)

  • FIX: Memory leaking at autocomplete cancellation
  • FIX: Shortcut Data Caching can access cache data from multiple threads and cause crash.
  • MOD: Boehm GC 7.4
  • MOD: Boost 1.55
  • MOD: Listbox.Priority should return the next auto loading value as the undefined default value.

New in Giraffe+ 0.7.6.1469 (Nov 18, 2014)

  • ADD: Context.set_global
  • FIX: Object.return_from can't return from an immediate function.
  • FIX: Shell.GetDir with an ITEMIDLIST doesn't work.
  • FIX: settings/setup/BreakWithAnyKey should repost the key used to break to prevent start a new event before breaking an old event.
  • MOD: Boost 1.54.0

New in Giraffe+ 0.7.5.1466 (Nov 18, 2014)

  • ADD: settings/setup/(AC)Breakable, makes autocompletion breakable.
  • ADD: settings/setup/BreakWithAnyKey
  • ADD: settings/setup/FindWithMigemoGrouping
  • ADD: settings/setup/~(AC)FindWithSlash, calls find.giraffe with c:\dir/file as c:\dir;file in autocompletion.
  • ADD: settings/setup/~~(AC)MultipleDirectories, searchs multiple directories as {c:\dir1|c:\dir2}\file treated as c:\dir1\file and c:\dir2\file in autocompletion.
  • FIX: .giraffe is loaded when a file call (@file) is failed due to file missing.
  • MOD: GetListItem should use ListBox.GetItemCount instead of GetCount
  • MOD: ListBox.ResetCount should reset the internal item count even when Resettable is false.
  • MOD: view-and-sort should be breakable

New in Giraffe+ 0.7.4.1454 (Nov 18, 2014)

  • ADD: settings/setup/(HISTORY)AvoidRepetitionCompletelyAndMove
  • FIX: In Windows XP, the LL Hotkey doesn't work and Giraffe+ can't start.
  • FIX: settings/setup/~(AC)AddHistory flickers.
  • MOD: Cache shortcut files data when accessing them for the first time.
  • MOD: Map's key_comp should be configurable.
  • MOD: Script call (@script) should be reloaded when the script is modified.

New in Giraffe+ 0.7.3.1447 (Nov 18, 2014)

  • ADD: "Copy the current directory" to the window-menu.
  • ADD: settings/setup/(AC)SelectFirstItemIfNotMatched (It should be enabled when ListTextOverrideEditText is enabled, though both are enabled in the default settings.)
  • FIX: Giraffe.Event.clear clears Mouse's slot methods.
  • FIX: The current directory of a process executed by a shell context menu should be a directory where the file is.
  • MOD: Boost 1.53.0
  • MOD: Change the default settings as the current recommended style.
  • MOD: Copy (with Ctrl+C) a selected list item text when no selection in Edit
  • MOD: CreateNewFile/Dir should treat an input file name as a new file name.
  • MOD: Sorting with last-modified dates can be faster. (1.7 to 0.2 seconds for 2000 files)
  • MOD: When Config.List.SortPrioritize is a greator value than Config.List.SortReverse, prioritize after reversing.
  • MOD: settings/setup/ListTextOverrideEditText should work with histories and see only mark and selection, not non-selected the top item.

New in Giraffe+ 0.7.2.1433 (Nov 18, 2014)

  • ADD: Block.+
  • ADD: Global mouse event (Giraffe.Event.Mouse.global-ld or so)
  • ADD: Method.bind_self
  • ADD: Mouse wheel event (Giraffe.Event.Mouse.edit-wheel)
  • ADD: Object.new as a synonym of Object.clone
  • ADD: Settings/setup/SwitchWindowClickHook
  • FIX: A text caret is misplaced in some environment or for some text.
  • FIX: The default Event.Mosue.list-ru doesn't work with histories in the default setting.
  • MOD: The LL Hotkey should prevent keyup of a hotkey.
  • MOD: cerr should be also overridable as cout and show an error dialog by the default.

New in Giraffe+ 0.7.1.1404 (Nov 14, 2012)

  • ADD: Sort files by the last-modified time (by specifiying 3 for Config.List.SortMode or Event.GetSortMode's first value of the result array)
  • FIX: Balloon height is unnecessarily longer a bit.
  • FIX: Balloon without a Windows theme doesn't show text in position.
  • FIX: SetTextUndoable can't take the first parameter other than a string.
  • FIX: settings/setup/ScrollHotkey can't be loaded.

New in Giraffe+ 0.7.0.1402 (Nov 14, 2012)

  • ADD: Real window frame whether themed or not (settings/setup/(DRAW)WindowsDefaultFrame)
  • ADD: migemo.dll/dict (to use settings/EnableMigemo without configurations)
  • CANCELED: FIX: Migemo can't be used in non japanese locale environment (the locale is selected by a user and migemo can be used in other languages.)
  • FIX: In Win7, some process information can't be shown (command lines)
  • FIX: Windows 7 hotkeys work around (LL Hook implementation of hotkeys, you can disable it with making a file named no_ll_hotkey in the current directory)
  • MOD: BalloonHelp should mimic the Balloon of Windows.
  • MOD: Context.arg have to return an Array, not a Range (because VC11's STL doesn't allow pointers-to-interators conversion.)
  • MOD: Context.arg(num) should return a single argument. (arg.[num] is costy anyway.)

New in Giraffe+ 0.6.22.1208 (Apr 9, 2012)

  • ADD: Object should have + and - using ++, --.
  • ADD: Object.negator, a synonym of Method.not and support object invocation.
  • ADD: Object.to_Range, as Range.make_exclude& self.begin, self.end.
  • FIX: Stack overflow when an object is a string and can't be unwrapped as a string.
  • MOD: Container.find-like methods can call *_if version only by the object invocation comparison.
  • MOD: Context.recur/super/resend should inherit the same Context.
  • MOD: Object invocation without a new context should make a similar context.
  • MOD: Object.invoke should call == when an argument is passed.
  • MOD: Pasting to Edit should replace returns and tabs into a space.
  • MOD: Range.at should ignore iterator validity if the iterator isn't random-accessible.
  • MOD: Range.at/size should be methods of the Container object.

New in Giraffe+ 0.6.21.1201 (Mar 15, 2012)

  • ADD: Omissible argument separator comma and expression terminator semicolon.
  • FIX: Giraffe\Manual and Manual in the main menu don't work.
  • MOD: Container/String.shell_menu should return the shell verb number.
  • MOD: EvalText (F1 key by default) should show help information if input text is empty.
  • MOD: Event.Deactivate shouldn't be called during the event running.
  • MOD: Passsing the Null to a default parameter should mean the default value.
  • MOD: When a default value of a default parameter isn't specified, the value should be Null.
  • MOD: mode:enter should take a block and evaluate it before calling the mode:on_enter.
  • MOD: mode:on_before_enter, mode:on_after_return.

New in Giraffe+ 0.6.17.1080 (Dec 8, 2011)

  • ADD: Copy Command Line in window-menu.giraffe
  • ADD: Giraffe.Event.Key/Hotkey/Drop/Timer.slot as traversal methods
  • ADD: Giraffe.GetCommandLineOfProcess, window:get-command-line
  • ADD: Object.call_from as the synonym of call_with_context.
  • ADD: String Symbol_id literal (:"abc" is parsed as :abc)
  • ADD: Symbol_id.label, which invokes with message_id.
  • ADD: Symbol_id.new, which works as String.new.
  • FIX: ShowMenu2 exceeds the right-most side of the desktop.
  • FIX: deparsing [a\ b] generates [a b] instead of [a\ b].
  • MOD: "abc"() should be parsed as abc() not call("abc").
  • MOD: DataDefault/Giraffe/MoveToEdge should deal with Config.AutoResize.MoveLeft and move to right side and the center as well.

New in Giraffe+ 0.6.16.1058 (Nov 1, 2011)

  • ADD: Container.to_Map
  • ADD: Object.invoke (moved from Method.invoke)
  • ADD: Object.invoke_from (invokes in a inherited context from a specified one)
  • ADD: Object.invoke_in (moved from Method.invoke_inline)
  • FIX: Status texts should be serialized.
  • FIX: settings/key/RenameFile2 should select the extension of an IIDL folder.

New in Giraffe+ 0.6.15.1053 (Nov 1, 2011)

  • ADD: Regex.+ (flags will be one of the self)
  • ADD: String.regex_escape
  • ADD: settings/setup/google-mode.encrypted.google.com
  • FIX: An error occurs when a value of settings.ini is empty.
  • FIX: Settings scripts can't contain spaces, dots or parens.
  • MOD: AddRegItem should delete all files with the same extension of a new item.
  • MOD: IIDL cache doesn't need existance check, which makes IIDL functionality much slower.

New in Giraffe+ 0.6.14.1049 (Nov 1, 2011)

  • ADD: Event.OnCaretChange
  • ADD: Object.extend, extend!
  • MOD: Boost 1.47.0 (Filesystem 3)
  • MOD: Center the main window when Config.AutoResize.MoveLeft is 2.

New in Giraffe+ 0.6.13.1042 (Nov 1, 2011)

  • ADD: Array literals consisting of defs can be Object literals.
  • ADD: Method.closure3, which also closures self or so.
  • FIX: Method.closure2 doesn't allow [x: 0 `[x: 1].closure2].
  • FIX: The IME composition font size should be set when the Edit got the focus.
  • MOD: An empty name registerd item should be allowed.

New in Giraffe+ 0.6.12.1035 (Nov 1, 2011)

  • ADD: expr.() should be parsed as call_obj(expr)
  • ADD: x() should treated as x.invoke when x isn't a method.
  • FIX: The caret of Edit should be resized when the font is changed.
  • MOD: The current script directory shouldn't be inserted when a loading script starts with "../". (You can do it with "./../")
  • MOD: String.to_Int or so should be able to take a base number as the argument.
  • MOD: std::algorithm of Array should be reference semantics.

New in Giraffe+ 0.6.11.1018 (Nov 1, 2011)

  • ADD: Block.file_name, file_line and file_collumn
  • ADD: Container.next/prev_permutation/combination (as Generator Range)
  • ADD: Context should have the last expr (callee will be able to know where called from with caller.last.file_name or so)
  • ADD: Event.DrawText/Icon
  • ADD: Giraffe.setTimeout, as one of Javascript.
  • ADD: OnListSetCurSel should be an event. (See Script\samples\default_OnListSetCurSel.giraffe)
  • ADD: Container.to_Array should take a parameter, when which is false elements are copied deeply and it's default.
  • ADD: String iidl functions (path_to_iidl_if, iidl_to_path_if, iidl_to_numeric_iidl, iidl_to_real_iidl, iidl_dir, and iidl_ddir)
  • ADD: Coroutine, Generator (boost::coroutine/generator)
  • ADD: Number.toupper!, tolower!, String.capitalize, capitalize!
  • ADD: MFC GDI Objects
  • FIX: Desktop's shell context menu doesn't show.
  • FIX: find.giraffe (in which Shell.FindFile) can't show UNICODE file names.
  • FIX: KillTimer(TIMER_OnListSetCurSel) should be called on edit changed.
  • FIX: Display-ITEMIDLIST files containing a backslash in their name can't be recognized.
  • MOD: The caret of Edit shouldn't move forward on selecting the list item.
  • MOD: Deprecated_dll.get, make_function should work expectedly as ones of Dll.
  • MOD: When a loading script name starts with "./" or "../", the callee.last.file_name.path_get_dir should be inserted.
  • MOD: All Mod+Enters should run a script as Enter. (This gives users another switch interface of scripts.)

New in Giraffe+ 0.6.10.978 (Feb 12, 2011)

  • ADD: Container.mismatch, calls boost::mismatch
  • ADD: Ios.support_utf8, Istream.read_utf8, Ostream.write_utf8
  • ADD: Object.clone_without_OnClone, copy_without_OnCopy
  • ADD: Giraffe.Edit.GetUndoData, returns an array containing strings with selection indices
  • ADD: settings/key/UndoMenu
  • ADD: settings/setup/google-mode-duckduckgo.com
  • FIX: Window.FindWild doesn't work with a window with a title text longer than 0xff.
  • FIX: self of events should be the event object
  • MOD: ShowMenu2's third parameter can be the default selection when the third argument is a number.
  • MOD: {} should be interpreted as gs::expr_array instead of an abbreviation of Array.new.

New in Giraffe+ 0.6.9.959 (Feb 12, 2011)

  • ADD: Method.closure2, which keeps just slots of inherited local contexts
  • ADD: ShowMenu2 should be able to show icons ((see Script\samples\IconMenu.giraffe))
  • FIX: ShowMenu2 thread should be registered with GC
  • FIX: Sometimes stack overflow occurs during auto-completion ((because of GC))
  • MOD: Semicolon syntax should make literals ((Then [;;m].resolve2 can return [;m] and [;m].eval doesn't throws an error.))

New in Giraffe+ 0.6.8.943 (Nov 29, 2010)

  • ADD: Script Cache of @script
  • FIX: call file Context inheritation isn't the same as call method context inheritation.
  • FIX: settings/setup/(DRAW)InvertAllColor doesn't work.
  • MOD: Boost 1.45.0
  • MOD: Stack memory usage of method calling can be reduced.
  • MOD: SwitchWindow should restore the state after the mode.
  • MOD: Timing of locale initialization should be before the global context initializatin.

New in Giraffe+ 0.6.7.915 (Nov 29, 2010)

  • ADD: C++ tr1 algorithm (all_of, any_of, none_of)
  • ADD: MFC_CRect.MoveTo(X, Y and both)
  • ADD: Method.invoke_without_clone_context
  • ADD: *_inline as synonyms of *_without_clone_context.
  • ADD: Migemo Grouping should allow plain input with double quotes.
  • FIX: Methods created by Method.not can't call self.
  • MOD: String and Container's shell_copy and shell_delete should be able to receive the parent window handle of the dialog.
  • MOD: Zero should have as_Pointer and as_Windows_HWND etc. and C_null should be a synonym of Zero.

New in Giraffe+ 0.6.6.900 (Aug 25, 2010)

  • ADD: Range.as_String
  • FIX: get-cb.filtered makes an access violation because of GC.
  • MOD: The msg fucntion should move its dialog to a position in which the user can see the whole dialog when the dialog would go over the screen.
  • MOD: `a *[] should work as `a discard.@[] as well as `*[].

New in Giraffe+ 0.6.5.893 (Aug 25, 2010)

  • ADD: Boost.Range v2 and Pstade.Oven's range adaptor functions to Container.
  • exists, synonym of contain?, whose argument can be a method as a predicate, because it just returns find != end.
  • forall, though just returns find(arg.not) == end, the argument can be a method due to Method.not.
  • jointed
  • strided
  • indexed
  • replaced
  • transformed
  • filtered
  • uniqued
  • adjacent_filtered
  • ADD: Container.index_swap, {a.index_swap(0, 1)} == {t = a[0]; a[0] = a[1]; a[1] = t;}
  • ADD: Method.not, which returns a new method which returns the negated result of the oridinal method.
  • ADD: settings/setup/google-mode.bing.com
  • MOD: Container.slice_safe ({pos len}) should return an array and slice ([pos len]) should return a range.
  • MOD: Container.slice! ([pos len]!) should work properly when self is a Range as self.= (self.[pos len]).
  • MOD: Container's range methods' iterator dereference should return a GC-managed object.
  • MOD: All slot manipulations should look up the name in the self context.
  • MOD: google-mode configure should be more versatile.

New in Giraffe+ 0.6.4.885 (Aug 25, 2010)

  • ADD: Istream.getline2, which returns a string which doesn't include \r.
  • ADD: settings/key/RenameFileWithSemicolon, which can rename a file whose name contains a semicolon.
  • ADD: settings/key/SwitchState, which switches the Giraffe+'s window states from one to another, and then to one.
  • ADD: settings/setup/DoutFile.giraffe, which leads the debug output into dout.txt file.
  • FIX: GetFuncDescription makes an error when a script has only an undefined function.
  • FIX: Infinite loop occurs when an Object can't be represeted as a String.
  • FIX: Single Thread Draw can make access violation.
  • MOD: Boost 1.43.0
  • MOD: Container.lrange should not contain the \r.
  • MOD: Null's method calls should return Null anyway.
  • MOD: Object.|| and && should cast the argument results to bool.

New in Giraffe+ 0.6.3.861 (Aug 25, 2010)

  • ADD: Container.*, returns a result that copy of self repeats += the argument times
  • ADD: Object.=, which means self = self arg
  • ADD: Object.=, which means self = arg self
  • ADD: Object.get_safe_self_aware, get_owner_safe_self_aware
  • ADD: Object.make_call_context, parameters are the same as call
  • FIX: Container.!= returns false when the sizes differs.
  • FIX: Giraffe.ListBox.GetMark throws an exception sometimes.
  • FIX: String.== Symbol_id makes an error.
  • MOD: Object.get, set should context self lookup.
  • MOD: Path.case? should be Path.==.
  • MOD: Regex_iterator should be a child of Regex_match to use its method easily.
  • MOD: String.case? should be String.==.
  • MOD: The dialog Window.FindWild shows should be the child of the desktop window.
  • MOD: self of self-omitting calling should be the omitted self.

New in Giraffe+ 0.6.2.847 (Mar 27, 2010)

  • ADD: context call self lookup
  • ADD: Settings/setup/google-mode.com, which makes Google URL of Google Mode google.com ignoring locale.
  • ADD: index_safe, which returns Nil when access is invalid and uses {} as operator.
  • ADD: move and resize to edge in window-menu.
  • ADD: string calling
  • FIX: Cin.get returns self instead of a character.
  • FIX: Google Mode makes Google URL google.co.jp ignoring locale.
  • MOD: Object.? should cast conditaional values to bool.
  • MOD: Marked Listbox items' color should be easier to alter.

New in Giraffe+ 0.6.1.844 (Mar 27, 2010)

  • ADD: Imperfect Multi-folder Shell Context Menu.
  • ADD: $~ defined by Regex_match, Regex_iterator.dollars.
  • ADD: Regex_match.prefix, suffix, format, ==, !=, at, index
  • ADD: Interpreter.required_files
  • ADD: String_set
  • ADD: Settings/setup/Switch(MDI)Window(Grouping|Mark|Shrink)
  • ADD: Settings/key/SortListLastModifiedReverseSepDir
  • FIX: URL Encode in the main menu fails to call a method.
  • MOD: include(-g) shouldn't load a file when the file is already required.
  • MOD: MFC objects should be default constructible to be used with attaching.

New in Giraffe+ 0.6.0.836 (Mar 3, 2010)

  • Backward compatibility is broken a bit, so the minor version number increased. This doesn't mean addition of shiny great features.
  • ADD: Context.=, which makes self's parent, slot and context-related elements the same as the argument.
  • ADD: Context.caller, which returns the context which calls the named method.
  • ADD: Dll.get, which defines the function if not defined.
  • ADD: Giraffe.TaskTrayWnd.Eval and Giraffe.MainWnd.Eval, used as eval in another thread.
  • ADD: Object.instance as a synonym of @instance.
  • ADD: sub-config-list.csv, which contains explanation of the sections of Giraffe.ini other than Config.
  • ADD: Window.SendCommand(hwnd id), which calls SendMessage(hwnd WM_COMMAND id 0). also PostCommand.
  • FIX: LookInMyPC isn't enumerated by SwitchWindow.
  • FIX: The PATH environmental variable of SYSTEM and USER aren't concatenated.
  • MOD: (AC)MigemoGrouping should conform with Virtual.AutoCompleteSetListWithMigemoLeastLength.
  • MOD: Boost 1.42.0
  • MOD: Context inheritation should occur only unnamed calling.
  • MOD: Default settings should be revised.
  • MOD: Object.proto and @instance should be a reference to be mutable.
  • MOD: Settings dialog should be modeless.
  • MOD: Settings scripts should be renamed.

New in Giraffe+ 0.5.61.772 (Feb 16, 2009)

  • More localized.
  • More optimized.
  • More features available in the settings dialog.

New in Giraffe+ 0.5.47.622 (May 28, 2008)

  • The script language Wiki is available.
  • Threading draw is optimized and a deadlock won't occur.
  • UTF8 is supported more.
  • Whether continue or cancel is selectable when an error occurs at starting.
  • And many bug fixes and improvements are done.

New in Giraffe+ 0.5.38.540 (Jan 11, 2008)

  • Sources are completely opened.
  • More features are available in the settings dialog.
  • Memory usage is reduced.
  • Unicode file name and contents is supported more.