=======================================================================================
This file is a translation of the main russian changelog and is provided by volunteers.
It might not always be as up to date as the main changelog.
=======================================================================================

drkns 14.07.2013 19:12:10 +0200 - build 3523

1. refix refix. yes, memset is kinda bad.

w17 14.07.2013 20:05:25 +0400 - build 3522

1. refix refactoring

drkns 14.07.2013 17:33:21 +0200 - build 3521

1. Support for compilation with Intel C++ 14.

drkns 14.07.2013 12:17:59 +0200 - build 3520

1. Correction of 3519.

drkns 14.07.2013 01:00:31 +0200 - build 3519

1. Refactoring.

shmuel 14.07.2013 00:25:05 +0200 - build 3518

1. Macros: "Selection" and "NoSelection" flags are no longer used for editor/viewer/dialog areas.
   "EVSelection" and "NoEVSelection" should be used accordingly for these areas.

drkns 13.07.2013 13:00:15 +0200 - build 3517

1. Refactoring.

2. Solution for VS2013 + common far.vcxproj for all versions.

shmuel 13.07.2013 11:34:23 +0200 - build 3516

1. Refactoring.

drkns 13.07.2013 00:00:00 +0200 - build 3515

1. Refactoring.

shmuel 12.07.2013 21:16:04 +0200 - build 3514

1. Refactoring.

drkns 12.07.2013 12:49:43 +0200 - build 3513

1. Removed checks for deprecated GCC versions.

shmuel 12.07.2013 12:04:01 +0200 - build 3512

1. Continuation of 3509:
   correction of processing a single Up key press in an item at the beginning of the list when VMENU_WRAPMODE is active.

drkns 12.07.2013 00:38:43 +0200 - build 3511

1. Correction of 3510.

drkns 11.07.2013 22:07:42 +0200 - build 3510

1. Removed limit on number of panel columns.

shmuel 11.07.2013 17:00:14 +0200 - build 3509

1. In a menu with scroll bar, while navigating with End, PgDn, PgUp there was no way to make
   non-focusing items at the beginning/end of the list visible.

drkns 10.07.2013 23:48:04 +0200 - build 3508

1. Correction of 3507.

drkns 10.07.2013 21:55:39 +0200 - build 3507

1. Refactoring.

2. Уточнение 3506.

drkns 10.07.2013 00:39:34 +0200 - build 3506

1. Refactoring.

svs 09.07.2013 16:52:15 +0400 - build

1. Help correction, incl. TI:
    #26 System.CopyTimeRule

svs 09.07.2013 11:29:32 +0400 - build

1. Some help on privilege elevation.

drkns 08.07.2013 23:47:50 +0200 - build 3505

1. Refactoring.

shmuel 08.07.2013 20:15:33 +0200 - build 3504

1. Refactoring.

drkns 05.07.2013 18:34:35 +0200 - build 3503

1. More reliable storing of LastError / LastNtStatus state for Message with MSG_ERRORTYPE.

2. 0002444: Search via "App Paths" does not use %PathExt% now.

drkns 04.07.2013 23:03:09 +0200 - build 3502

1. Refactoring.

2. Correction of minimal GCC version (4.7.1).

w17 04.07.2013 16:45:06 +0400 - build 3501

1. gcc 4.7.1 compilation fix

shmuel 04.07.2013 15:27:46 +0200 - build 3500

1. Rollback of 3496. This also can be reached with LuaFAR library modification.

drkns 04.07.2013 13:30:33 +0200 - build 3499

1. Refactoring.

drkns 04.07.2013 12:55:32 +0200 - build 3498

1. Refactoring.

drkns 04.07.2013 01:21:03 +0200 - build 3497

1. Refactoring.

shmuel 03.07.2013 21:13:37 +0200 - build 3496

1. Forum: "Why does FAR create directories in the root of disk С".
   CreatePath inner FAR function is imported into LuaMacro plugin.

svs 03.07.2013 12:49:18 +0400 - build 3495

1. Correction of help, incl. for TI:
    #80 XLat.Layouts
    #10 XLat.Flags
    "XLat.Table*" and "XLat.Rules*" parameters are described

2. Removing a bug with Rule3 overwriting in xlat

drkns 03.07.2013 00:38:12 +0200 - build 3494

1. Outer links did not (always) work in help.

2. Other issues.

drkns 02.07.2013 16:34:23 +0200 - build 3493

1. Avoiding the recursion in file mask groups.

svs 02.07.2013 17:15:47 +0400 - build 3492

1. Correction in help
   "так же" -> "также"
   @CopyAskOverwrite - capability of F3 on items was not described.
   @MaskGroupsSettings - list control keys were not described.

2. A link to "@MaskGroupsSettings" is added for the mask groups editing dialog

svs 02.07.2013 11:40:49 +0400 - build

1. Correction in help
   @MakeFolder
     creation of links
   @UserMenu
     capability of moving items with Ctrl-arrows is described

drkns 02.07.2013 10:01:16 +0200 - build 3491

1. Correction of 3490.

2. Refactoring.

drkns 02.07.2013 01:13:32 +0200 - build 3490

1. Refactoring.

svs 01.07.2013 16:30:04 +0400 - build 3489

1. Correction of build 3488
   Removing the "negation". Now:
   In config (far:config), search "Macros.ShowPlayIndicator", set it to false for switching 'P' off
   By default, 'P' is shown

svs 01.07.2013 15:09:19 +0400 - build 3488

1. Mantis#0002410: Optionally disable blinking 'P' macro execution indicator
   In config (far:config), search "Macros.DisableShowPlayMacro", set it to true
   By default, 'P' is shown

w17 01.07.2013 09:49:39 +0400 - build 3487

1. M#2439: Command line prompt format: environment variables don't work anymore

shmuel 30.06.2013 13:12:37 +0200 - build

1. Capability of calling script files with arguments is added.
   This is related to: MCTL_SENDSTRING, MCTL_ADDMACRO, eval, lm:post, lm:check.

shmuel 30.06.2013 01:46:43 +0200 - build 3486

1. Refactoring.

zg 29.06.2013 22:58:03 +0200 - build 3485

1. correction of 3482 for IsWordDiv: '\0' is always a words separator.

drkns 29.06.2013 14:58:18 +0200 - build 3484

1. Refactoring.

2. Support for compilation with VC++ 2013.

shmuel 28.06.2013 23:29:19 +0200 - build 3483

1. Incorrect renamings for some constants in 3482.

drkns 28.06.2013 16:40:17 +0200 - build 3482

1. Refactoring.

w17 28.06.2013 16:12:45 +0400 - build 3481

1. 3475++, cursor did not follow a file when renaming it with Shift-F6

w17 28.06.2013 15:13:42 +0400 - build 3480

1. 3475++, M#2437: Copy/Move on a mapped drive doesn't work in nightly

w17 27.06.2013 20:08:50 +0400 - build 3479

1. Another correction to 3475 -- processing of file descriptions

2. Quotes are added for the name of a file with leading space characters in attributes setting dialog.

w17 27.06.2013 07:41:30 +0400 - build 3478

1. M#2435: On copying files to a directory, a new directory is created aside.
   This is the fix for 3475.

drkns 26.06.2013 18:48:30 +0200 - build 3477

1. Adding some 'const'ness.

drkns 25.06.2013 21:41:36 +0200 - build 3476

1. Continuation of 3474.

w17 25.06.2013 19:24:28 +0400 - build 3475

1. M#2420: Problem with files moved from the temporary panel by their relative paths

drkns 25.06.2013 14:15:35 +0200 - build 3474

1. Analyzer warnings.

2. Refactoring.

shmuel 24.06.2013 17:28:37 +0200 - build 3473

1. Refactoring.

shmuel 22.06.2013 15:16:19 +0200 - build 3472

1. Corrections of 3458.

lort 20.06.2013 18:59:22 +0400 - build 3471

1. Correction of 3469.

drkns 20.06.2013 22:55:17 +0200 - build 3470

1. vc10.cpp/vc11.cpp are one file now.

lort 20.06.2013 20:50:11 +0400 - build 3469

1. Menu.Filter(4) call malfunction in macros

drkns 20.06.2013 01:17:10 +0200 - build 3468

1. VC2012 build can run in Windows 2000 SP4 + updates.

2. Default highlighting initialization error.

drkns 19.06.2013 20:11:42 +0200 - build 3467

1. Refactoring.

drkns 18.06.2013 23:40:14 +0200 - build 3466

1. Refactoring.

shmuel 18.06.2013 10:44:58 +0200 - build 3465

1. The names of macro flags moved from FAR to LuaMacro plugin.

drkns 17.06.2013 23:31:47 +0200 - build 3464

1. Refactoring.

w17 17.06.2013 14:53:30 +0400 - build 3463

1. Continuation of 3449 for directories. (M#2414: Cannot delete files with long name)

shmuel 15.06.2013 20:14:26 +0200 - build 3462

1. Correction of 3461.

shmuel 15.06.2013 12:28:39 +0200 - build 3461

1. Plugins API: MCTL_EXECSTRING allows passing arguments to called script.

drkns 15.06.2013 02:40:00 +0200 - build 3460

1. Refactoring.

drkns 14.06.2013 20:12:14 +0200 - build 3459

1. Refactoring.

shmuel 14.06.2013 16:21:37 +0200 - build 3458

1. Adding FMVT_NIL "type" - extending Plugin.Call and MacroControl(MCTL_EXECSTRING) capabilities.
   Passing from Lua to plugins meant nil -> FMVT_BOOLEAN(0) transformation before,
   and passing nil from plugins to Lua was impossible at all.

drkns 14.06.2013 01:17:12 +0200 - build 3457

1. Refactoring.

shmuel 14.06.2013 00:06:14 +0200 - build 3456

1. Plugins API: MCTL_EXECSTRING operation is added to MacroControl function.

drkns 13.06.2013 21:35:16 +0200 - build 3455

1. Continuation of task list: adding windows with non-empty caption only (as it was before) and sorting it by name (like it was before),
   because sorting by PID has no sense.

drkns 13.06.2013 17:27:23 +0400 - build 3454

1. The meaning of previous commit is not quite clear: GetModuleFileNameEx is available on XP and already used in apiGetModuleFileNameEx.

w17 13.06.2013 18:23:56 +0400 - build 3453

1. Another correction of 3451
   GetProcessImageNameW -- available on xp

svs 13.06.2013 18:09:50 +0400 - build 3452

1. Correction of 3451
   QueryFullProcessImageNameW -- unavailable on xp

svs 13.06.2013 13:34:37 +0400 - build 3451

1. Small changes in process list (Ctrl-W).
   а) process PID is added.
   б) F2 switches the view:
      "PID + process window caption"
      "PID + executable path"
   в) the list is sorted by PID

   The list includes duplicate items by PID - it's ok, "move" to a necessary window is performed correctly.

drkns 12.06.2013 21:24:50 +0200 - build 3450

1. 0002424: Undo does not restore bookmarks

w17 12.06.2013 15:06:41 +0400 - build 3449

1. M#2414: One cannot delete filea with long name -- deletion without recycle bin is still available

shmuel 12.06.2013 13:23:17 +0200 - build 3448

1. Refactoring.

shmuel 10.06.2013 14:38:45 +0200 - build 3447

1. Refactoring.

shmuel 10.06.2013 02:03:06 +0200 - build 3446

1. M#2307: On msgbox call from condition(), the msgbox closing key is passed further (not consumed).

svs 06.06.2013 16:03:29 +0400 - build

1. Menu filtering with RAlt is noted in help.

drkns 06.06.2013 00:33:31 +0200 - build 3445

1. Refactoring.

2. Deprecated items are removed from viewer/editor local settings dialogs.

shmuel 04.06.2013 21:12:53 +0200 - build 3444

1. Refactoring.

2. GCC warnings.

w17 01.06.2013 17:07:58 +0400 - build 3443

1. Correction of 3439.

drkns 01.06.2013 11:04:26 +0200 - build 3442

1. Correction of 3440.

2. A couple of minor issues.

w17 01.06.2013 09:41:07 +0400 - build 3441

1. gcc build fix

drkns 01.06.2013 01:31:00 +0200 - build 3440

1. We contiue to break panel modes:
   - insertion and deletion work in menu (ins/del respectively)

w17 31.05.2013 17:14:08 +0400 - build 3439

1. M#1511: Shift_jis encoding -- view must work for all 2-byte encodings

w17 31.05.2013 11:51:32 +0400 - build 3438

1. M#2418: a problem with shortcuts import from Default.farconfig

drkns 30.05.2013 20:59:59 +0200 - build 3437

1. We contiue to break panel modes:
   - a mode can be renamed;
   - a mode can be reset to default settings.

shmuel 30.05.2013 18:24:39 +0200 - build 3436

1. Plugins API:
   * KMFLAGS_DISABLEOUTPUT is the default value now and is ignored by FAR.
   * A new flag is added: KMFLAGS_ENABLEOUTPUT.

shmuel 30.05.2013 11:29:22 +0200 - build 3435

1. LuaMacro plugin is given exact information on FAR /e or /v keys.

2. Correction of 3434 (VC build failure).

drkns 30.05.2013 00:47:06 +0200 - build 3434

1. Unlimited number of panel modes.
   There's no interface for adding/removing modes so far, nevertheless a real Jedi can edit panelmodes.db.

2. The modes can be switched with CtrlEnter in panel mode editing menu.

shmuel 29.05.2013 17:52:04 +0200 - build 3433

1. Experimental: autostarting macros work on FAR start with /e and /v keys.

drkns 29.05.2013 17:12:23 +0200 - build 3432

1. Broken reading from standard input in viewer.

shmuel 28.05.2013 22:43:14 +0200 - build 3431

1. M#1662: Improper behavior of macros with mmode().

w17 27.05.2013 12:24:16 +0400 - build 3430

1. GCC again -- NetDfsGetInfo dynamic loading, lame mingw builds should accept it

w17 27.05.2013 06:17:07 +0400 - build 3429

1. GCC++.

drkns 26.05.2013 19:53:59 +0200 - build 3428

1. GCC.

shmuel 26.05.2013 18:42:19 +0200 - build 3427

1. M#1663: Macros do not work from user menu on large amount of items on a panel.

w17 26.05.2013 00:53:26 +0400 - build 3426

1. correction of 3425 -- NetDfsGetInfo does not need dynamic loading

w17 26.05.2013 00:04:03 +0400 - build 3425

1. M#2412: DFS links view on CtrlA

shmuel 24.05.2013 15:43:21 +0200 - build 3424

1. Forum: After Keys("ShiftF6 End ! Enter") macro run on a file,
          Far caption stays "Rename/Move ..."

drkns 23.05.2013 23:02:08 +0200 - build 3423

1. Malfunction of virtual drives detection and removal.

w17 23.05.2013 19:21:06 +0400 - build 3422

1. M#2413: Selection restored incorrectly after the selected file moved on ShiftF6

t-rex 22.05.2013 17:29:36 +0200 - build 3421

1. RegExp search in viewer used RegExp API incorrectly, back reference (\NN) could not be used.

2. Refactoring.

drkns 22.05.2013 01:35:24 +0200 - build 3420

1. Incorrect display of strings containing quotes in replace confirmation dialog.

drkns 20.05.2013 21:50:11 +0200 - build 3419

1. Refactoring.

svs 20.05.2013 21:13:22 +0400 - build 3418

1. SQLite 3.7.17

drkns 20.05.2013 17:31:22 +0200 - build 3417

1. Correction of settings loading.

drkns 16.05.2013 20:30:12 +0200 - build 3416

1. Move TreeList::FlushCache() to a more appropriate place, so it does not block exit in case of failure.

drkns 16.05.2013 20:02:27 +0200 - build 3415

1. A typo in TreeList::FlushCache()

shmuel 16.05.2013 01:32:15 +0200 - build 3414

1. Correction of 3412.

drkns 15.05.2013 23:43:01 +0200 - build 3413

1. Refactoring.

2. VC warning.

shmuel 15.05.2013 23:22:20 +0200 - build 3412

1. Refactoring (enum MACROMODEAREA is removed).

shmuel 15.05.2013 18:00:53 +0200 - build 3411

1. Refactoring.

t-rex 14.05.2013 23:43:54 +0200 - build 3410

1. Mantis#2409: FAR crashes when moving a directory (even with no plugin).

2. A sort of extension for ANSI plugins, the plugin's GUID can be specified in VersionInfo in PluginGUID field.
   The GUID is a string without {}.

w17 14.05.2013 23:16:28 +0400 - build 3409

1. Another correction of 3388.

drkns 14.05.2013 16:47:32 +0200 - build 3408

1. Refactoring.

t-rex 14.05.2013 10:02:15 +0200 - build 3407

1. Let plugins create empty-named values in their DB and disable creation of such keys.

drkns 14.05.2013 09:57:32 +0200 - build 3406

1. Refactoring.

shmuel 14.05.2013 09:33:00 +0200 - build 3405

1. Correction of 3404.

shmuel 14.05.2013 09:03:57 +0200 - build 3404

1. GCC warnings.

w17 13.05.2013 14:54:22 +0400 - build 3403

1. Revert 3400

drkns 10.05.2013 14:49:03 +0200 - build 3402

1. Continuation of 3401.

drkns 10.05.2013 14:17:17 +0200 - build 3401

1. Continuation of 3157. Memory usage of editor highlighting is reduced approximately by one thirth.

w17 08.05.2013 23:57:50 +0400 - build 3400

1. M#1479: The find function should let pass a not visible (hidden) files

w17 08.05.2013 17:27:18 +0400 - build 3399

1. M#2316: add FarGuid

w17 08.05.2013 15:09:55 +0400 - build 3398

1. M#2407: Allow to disable BOM generation for UTF codepages in new files

t-rex 07.05.2013 23:35:51 +0200 - build 3397

1. Correction of 3342 + refactoring.
   Privilege elevation query was displayed entering c:\Users\user\Application Data, for example.

w17 07.05.2013 21:02:44 +0400 - build 3396

1. multiarc + folder shortcut

drkns 07.05.2013 17:13:55 +0200 - build 3395

1. Correction of 3393.

shmuel 07.05.2013 16:42:49 +0200 - build 3394

1. M#2222: MacroControl MCTL_SENDSTRING returns 0 in "Keys('F11') Menu.Select('FarNet', 2) Keys('Enter')"

drkns 07.05.2013 15:05:37 +0200 - build 3393

1. Continuation of 3388: move versioninfo processing to a separate class.

w17 07.05.2013 14:52:09 +0400 - build 3392

1. Correction of 3388 (unused code removed should fix gcc compilation)

w17 07.05.2013 11:05:10 +0400 - build 3391

1. fix gcc build

w17 07.05.2013 10:21:05 +0400 - build 3390

1. Correction of 3388

t-rex 07.05.2013 00:03:07 +0200 - build 3389

1. For ECTL_SAVEFILE, CodePage=CP_DEFAULT can be set to save the file in the current codepage.

2. ECTL_SAVEFILE, being called from ANSI plugins, did not set the codepage, so files could be messed up.

w17 06.05.2013 18:05:16 +0400 - build 3388

1. M#2079: Links to FTP folders are not stored in folder links.

drkns 04.05.2013 16:01:20 +0200 - build 3387

1. Correction of 3358.1: translation of exceptions did not take place for threads except the main one.

drkns 03.05.2013 16:44:16 +0200 - build 3386

1. Refactoring.

drkns 03.05.2013 01:07:27 +0200 - build 3385

1. Refactoring.

drkns 02.05.2013 22:08:17 +0200 - build 3384

1. Forum: error in Help::MkTopic.

drkns 02.05.2013 17:47:12 +0200 - build 3383

1. Correction of 3367.1.

drkns 02.05.2013 16:42:48 +0200 - build 3382

1. Grammar in help.

2. Search for all occurrences in editor now shows the whole line and highlights a target.

drkns 02.05.2013 12:18:40 +0200 - build 3381

1. Completion malfunction in modal mode.

drkns 01.05.2013 16:06:56 +0200 - build 3380

1. cppcheck warnings.

drkns 30.04.2013 22:17:54 +0200 - build 3379

1. Continuation of 0002294.

drkns 30.04.2013 21:22:39 +0200 - build 3378

1. Continuation of 0002294.

zg 30.04.2013 09:19:06 +0200 - build 3377

1. EditorControl(EditorID,...) works for current editor given the real EditorID from EE_READ and EE_CLOSE.

w17 30.04.2013 08:56:12 +0400 - build 3376

1. M#2403: Current file after deletion

drkns 29.04.2013 22:43:33 +0200 - build 3375

1. Refactoring.

t-rex 29.04.2013 17:25:29 +0200 - build 3374

1. Refactoring.

drkns 29.04.2013 00:30:39 +0200 - build 3373

1. Refactoring.

t-rex 28.04.2013 15:57:33 +0200 - build 3372

1. Mantis#2382: far /clearcache

t-rex 28.04.2013 12:04:51 +0200 - build 3371

1. A minor breaking change in API.
   EE_CHANGE editor event is not sent now by default, an interested plugin must subscribe
   to it. The subscription takes place for the current editor session.
   Subscription:

   EditorSubscribeChangeEvent esce = { sizeof(EditorSubscribeChangeEvent), PluginGuid };
   Info.EditorControl(EditorID, ECTL_SUBSCRIBECHANGEEVENT, 0, &esce);

   To unsubscribe (if needed):
   Info.EditorControl(EditorID, ECTL_UNSUBSCRIBECHANGEEVENT, 0, &esce);

   P.S. Implementation is not ideal, no other ideas so far.

t-rex 27.04.2013 23:30:06 +0200 - build 3370

1. Preparing for moving EE_CHANGE to subscription to the event,
   because almost noone needs it, and sending it to everyone and each time slows things down.

t-rex 27.04.2013 22:33:02 +0200 - build 3369

1. Removing those macros from plugin.hpp, no use for them.

t-rex 27.04.2013 17:23:23 +0200 - build 3368

1. Fix for several rarely used macros in plugin.hpp.

drkns 25.04.2013 22:28:30 +0200 - build 3367

1. Trying "window subsystem". So far, just removal of unused code.

2. In some cases, closing the console froze FAR.

3. A couple of minor issues.

t-rex 25.04.2013 14:06:10 +0200 - build 3366

1. Mantis#2395: One cannot add a filter if the filters list is empty.
   For FFT_CUSTOM.

t-rex & drkns 25.04.2013 10:12:00 +0200 - build 3365

1. Refactoring of FileSystemWatcher, optimization and fix for an odd problem with plugins like PicView in QuickView mode, which appeared in 3348.

w17 23.04.2013 18:48:10 +0400 - build 3364

1. M#2370: artifacts in editor/viewer called from usermenu

w17 23.04.2013 01:00:56 +0400 - build 3363

1. 2394: FAR 3 build 3348: panels are drawn while editor is active -- next try

t-rex 21.04.2013 23:51:13 +0200 - build 3362

1. Editor search optimization.

drkns 21.04.2013 19:52:22 +0200 - build 3361

1. Correction of 3301.

t-rex 21.04.2013 00:13:24 +0200 - build 3360

1. Missed in 3342 that StartFSWatcher() is virtual.
   It could lead to strange redrawing bugs in random cases (Mantis#2394).

w17 20.04.2013 20:29:56 +0400 - build 3359

1. Forum: align the real names of keybar areas with the macro API.

drkns 20.04.2013 17:32:12 +0200 - build 3358

1. Handling structured exceptions as C++ exceptions.

2. /x key and ExceptRules parameter is removed.

drkns 20.04.2013 02:39:36 +0200 - build 3357

1. A couple of minor issues.

drkns 20.04.2013 02:30:33 +0200 - build 3356

1. Refactoring.

drkns 18.04.2013 23:11:39 +0200 - build 3355

1. In 3322, asynchronous DB processing was broken.

t-rex 18.04.2013 16:43:02 +0200 - build 3354

1. Correction of 3349, FAR crash if plugins with the same GUID are available.

drkns 18.04.2013 16:37:58 +0200 - build 3353

1. Rollback of 3352.

drkns 18.04.2013 16:24:32 +0200 - build 3352

1. Correction of 3351.

t-rex 18.04.2013 16:04:54 +0200 - build 3351

1. Unimportant memory leak.

svs 18.04.2013 15:31:10 +0400 - build 3350

1. Correction of 3346

t-rex 18.04.2013 13:14:37 +0200 - build 3349

1. Correction of 3343.1, it must also fix various bizarre bugs appeared after 3343.

t-rex 18.04.2013 11:30:20 +0200 - build 3348

1. Some more Mantis#2350.
   Asynchronous subscription on change notifications.

drkns 18.04.2013 09:39:27 +0200 - build 3347

1. 0002377: Far Manager v3.0 build 3345 создает пустые файлы при копировании

svs 18.04.2013 09:29:05 +0400 - build 3346

1. UserMenu. If a menu item shows additional parameters dialog, then show the name of the item in the caption of the dialog.

   <inside>
     fnparce.cpp::SubstFileName()    - the first parameter is the caption of the dialog.
     fnparce.cpp::ReplaceVariables() - dialog frame moved to position 0 (it was the last one earlier). This is to the question of possible bugs :-)
   </inside>


drkns 17.04.2013 23:54:41 +0200 - build 3345

1. Correction of 3343.2.

drkns 17.04.2013 23:00:51 +0200 - build 3344

1. 0000501: apiCreateFile rights for the Editor.

drkns 17.04.2013 22:39:03 +0200 - build 3343

1. 0002373: in PluginsControl, access enabled incorrectly to information on unloaded plugins.

2. Third-party libraries (UCD, sqlite, tinyxml) are placed in appropriate namespaces.

3. Other minor refactoring.

t-rex 17.04.2013 19:41:06 +0200 - build 3342

1. Some more Mantis#2350.

drkns 17.04.2013 13:36:23 +0200 - build 3341

1. 0002371: F5 copying error

drkns 17.04.2013 01:01:52 +0200 - build 3340

1. A couple of minor fixes.

drkns 16.04.2013 21:29:44 +0200 - build 3339

1. Refactoring.

w17 16.04.2013 16:56:10 +0400 - build 3338

1. M#2184: Incorrect UNDO functioning in built-in editor.

svs 16.04.2013 15:27:59 +0400 - build 3337

1. Continuing ShowHelp editing.
   Now if (there is FHELP_GUID flag and (ModuleName == empty_string or ModuleName == zero_filled_GUID/FarGuid))
   then the action is similar to FHELP_FARHELP flag.

drkns 16.04.2013 00:28:35 +0200 - build 3336

1. Refactoring.

shmuel 15.04.2013 21:20:44 +0200 - build 3335

1. On exit from FAR, LuaMacro plugin is unloaded last (otherwise processing of MCTL_XXX requests in ExitFARW of other plugins could be omitted).

t-rex 15.04.2013 20:57:00 +0200 - build 3334

1. Once more Mantis#2350.

svs 15.04.2013 16:20:00 +0400 - build 3333

1. Mantis#0001413: hlf:%farhome%\filename [topic]

   API: FHELP_GUID flag added for ShowHelp
   In this case the first parameter is considered as the GUID of the plugin the theme being shown belongs to, depending on interface language (hint:FHELP_CUSTOMPATH)

shmuel 15.04.2013 14:43:27 +0200 - build 3332

1. Preventing crashes on exit from FAR in case of plugins calling MCTL_XXX in ExitFARW.

drkns 14.04.2013 18:16:54 +0200 - build 3331

1. Correction of 3318.

t-rex 14.04.2013 14:07:27 +0200 - build 3330

1. Mantis#2350: Lags accessing Android via Samba.

drkns 14.04.2013 12:26:10 +0200 - build 3329

1. Once more 0002367.

drkns 13.04.2013 22:57:39 +0200 - build 3328

1. 0002367: Problem with starting apps from Junction/Symlink folders

svs 12.04.2013 21:35:09 +0400 - build 3327

1. SQLite 3.7.16.2

drkns 12.04.2013 13:49:34 +0200 - build 3326

1. 0002366: FAR freezes on searching a text in an archive protected with password

drkns 12.04.2013 12:49:34 +0200 - build 3325

1. Correction of console caption redrawing.

shmuel 12.04.2013 01:15:24 +0200 - build 3324

1. Refactoring.

2. Correction of 3323.

drkns 12.04.2013 00:45:48 +0200 - build 3323

1. Refactoring.

drkns 11.04.2013 23:11:05 +0200 - build 3322

1. Using 'override' keyword in derived classes.

2. A couple of minor things.

drkns 10.04.2013 21:46:38 +0200 - build 3321

1. 0002146: Privilege API for NetBox plugin

t-rex 10.04.2013 13:47:20 +0200 - build 3320

1. Asynchronous history of viewer/editor positions.

drkns 10.04.2013 12:15:01 +0200 - build 3319

1. ChangeTime was not filled in GetPanelItem.

drkns 10.04.2013 11:30:59 +0200 - build 3318

1. ChangeTime was not filled in FarGetDirList.

drkns 10.04.2013 00:18:55 +0200 - build 3317

1. Another portion of refactoring.

drkns 09.04.2013 19:53:37 +0200 - build 3316

1. Refactoring.

t-rex 09.04.2013 19:12:39 +0200 - build 3315

1. Minor refactoring.

t-rex 09.04.2013 18:45:22 +0200 - build 3314

1. Minor refactoring.

t-rex 09.04.2013 18:01:37 +0200 - build 3313

1. Forgotten initialization of ThreadCounter in 3311 sometimes caused FAR get stuck on exit.

shmuel 09.04.2013 17:51:59 +0200 - build 3312

1. If a cached plugin exporting ProcessDialogEventW required a newer FAR version,
   then an attempt of diaplaying any dialog from a macro with no EnableOutput flag, an INVISIBLE dialog
   "This plugin requires more recent version of Far" was shown.

t-rex 09.04.2013 16:37:04 +0200 - build 3311

1. FAR stuck at the start in 3310.

2. Possible problem with CancelIoInProgress static initialization in interf.cpp.

3. Mantis#2364: Asynchronous DB write.
   HierarchicalConfig databases are saved asynchronously, namely plugin settings, highlighting, shortcuts and a couple of DB.

t-rex 09.04.2013 13:58:04 +0200 - build 3310

1. Refactoring of synchronization classes .

2. Final refactoring of asynchronous history.

drkns 09.04.2013 13:47:32 +0200 - build 3309

1. A command called from completion menu did not run if the menu was closed with the mouse.

svs 09.04.2013 12:08:51 +0400 - build

1. Makeup without a build (lower vs. upper in GUIDs)

shmuel 08.04.2013 23:36:09 +0200 - build 3308

1. M#2363: mf.flock always returns 1 at the moment of key press.

t-rex 08.04.2013 19:18:40 +0200 - build 3307

1. Experimental: writing history asynchronously, it must help working with slow drives.
   Holding Enter on a folder doesn't show difference, because the next access to history waits for the end of asynchronous processing at first,
   so the profit has to appear in realistic use cases only.

drkns 07.04.2013 20:11:40 +0200 - build 3306

1. lng could be read incorrectly in some cases.

drkns 07.04.2013 14:17:22 +0200 - build 3305

1. Correction of 3301.

drkns 07.04.2013 11:36:42 +0200 - build 3304

1. Correction of 3301.

drkns 07.04.2013 10:30:14 +0200 - build 3303

1. Continuation of 3301.

drkns 07.04.2013 01:28:41 +0200 - build 3302

1. Correction of 3301.

drkns 07.04.2013 00:42:28 +0200 - build 3301

1. Continuation of 2303.1.

w17 05.04.2013 17:22:48 +0400 - build 3300

1. M#2360: Crash while editing a user menu item command

drkns 05.04.2013 09:37:43 +0200 - build 3299

1. Correction of 3298.

drkns 04.04.2013 23:52:41 +0200 - build 3298

1. Experimental: usual masks and regular expressions in masks can be mixed, for example:
   *.ext1, *.ext2, /re1/, *.ext3, /re2/|/re3/,*.ext4

drkns 03.04.2013 23:25:19 +0200 - build 3297

1. Refactoring.

drkns 03.04.2013 14:08:23 +0200 - build 3296

1. 0002357: Constantly displaying "Access denied" if PATH variable has inaccessible directories

drkns 02.04.2013 22:55:14 +0200 - build 3295

1. Refactoring.

2. regexp.?pp cleanup.

drkns 02.04.2013 17:01:23 +0200 - build 3294

1. Correction of strings in deletion dialog.

svs 02.04.2013 12:45:12 +0400 - build 3293

1. Mantis#0002355: GUIDs needed

    ScreensSwitchId        = {72EB948A-5F1D-4481-9A91-A4BFD869D127} --> Menu.Id
    SelectSortModeId       = {B8B6E1DA-4221-47d2-AB2E-9EC67D0DC1E3} --> Menu.Id
    HistoryCmdId           = {880968A6-6258-43e0-9BDC-F2B8678EC278} --> Menu.Id
    HistoryFolderId        = {FC3384A8-6608-4c9b-8D6B-EE105F4C5A54} --> Menu.Id
    HistoryEditViewId      = {E770E044-23A8-4f4d-B268-0E602B98CCF9} --> Menu.Id
    PanelViewModesId       = {B56D5C08-0336-418b-A2A7-CF0C80F93ACC} --> Menu.Id
    PanelViewModesEditId   = {98B75500-4A97-4299-BFAD-C3E349BF3674} --> Dlg.Id
    CodePagesMenuId        = {78A4A4E3-C2F0-40bd-9AA7-EAAC11836631} --> Menu.Id
    EditorReplaceId        = {8BCCDFFD-3B34-49f8-87CD-F4D885B75873} --> Dlg.Id
    EditorSearchId         = {5D3CBA90-F32D-433c-B016-9BB4AF96FACC} --> Dlg.Id
    HelpSearchId           = {F63B558F-9185-46ba-8701-D143B8F62658} --> Dlg.Id
    FiltersMenuId          = {5B87B32E-494A-4982-AF55-DAFFCD251383} --> Menu.Id

shmuel 02.04.2013 11:30:36 +0200 - build 3292

1. M#2356: Menu.FilterStr(0) malfunction.

lort 01.04.2013 20:49:51 +0400 - build 3291

1. Don't consume CtrlTab and CtrlShiftTab if there's no possibility of switching away from the current frame (M#2353)

shmuel 01.04.2013 15:55:51 +0200 - build 3290

1. M#2343: Menu.Select works incorrectly with disabled items.

drkns 30.03.2013 13:20:21 +0200 - build 3289

1. Continuation of 3283.2.

2. Refactoring.

svs 29.03.2013 21:21:04 +0400 - build 3288

1. SQLite 3.7.16.1

w17 29.03.2013 01:33:56 +0400 - build 3287

1. "Panel.ShortcutAlwaysChdir" parameter added, it controls RCtrl-0..RCtrl-9 behavior with panels hidden.
   false - folder name (if defined) appears in the command line ('as before' and by default)
   true  - always go to a folder bound to a pressed key

drkns 28.03.2013 22:42:42 +0200 - build 3286

1. Continuation of 3285.

2. Refactoring.

drkns 28.03.2013 20:46:57 +0200 - build 3285

1. Correction of SEH exceptions processing. 

drkns 28.03.2013 20:02:12 +0200 - build 3284

1. Correction in search regarding [x] Process alternate data streams.

drkns 28.03.2013 15:58:11 +0400 - build 3283

1. "Break link" button is removed from the symlink deletion confirmation dialog.

2. Links can be broken now via the attributes dialog with "Reparse point" flag uncheck.

svs 28.03.2013 13:58:10 +0400 - build 3282

1. Mantis#0001199: link:[/msg]
   ...regarding message output when creating hard links

drkns 28.03.2013 09:58:16 +0200 - build 3281

1. vc10.

svs 28.03.2013 11:16:18 +0400 - build 

1. Corrections (a few of) on TREEFILE_PROJECT (Mantis#0000186)
   without a build because they have no influence on the main code.

2. Corrections in the links help topic.
   It seems that symlinks have to be explained.
   (the discussion is here - http://forum.farmanager.com/viewtopic.php?f=4&t=3588 )

drkns 27.03.2013 22:36:11 +0200 - build 3280

1. Folder shortcuts are now read on each request and written immediately after change.

2. Refactoring.

drkns 27.03.2013 00:12:11 +0200 - build 3279

1. Refactoring.

shmuel 27.03.2013 00:02:08 +0200 - build 3278

1. Forum: Editor.Pos(1,1,*) caused screen redraw with missing EnableOutput flag.

drkns 25.03.2013 21:54:56 +0200 - build 3277

1. Another correction for drawing in far /w

2. gcc.

drkns 25.03.2013 15:55:42 +0200 - build 3276

1. Optimization: push_<front|back> => emplace_<front|back>.

2. Correction for drawing in far /w.

drkns 25.03.2013 00:02:58 +0200 - build 3275

1. 0002348: Exception in EditControl/ECTL_SAVEFILE if Param2.FileName = NULL

drkns 24.03.2013 17:19:41 +0200 - build 3274

1. Partial rollback of 3269. Too early.

drkns 24.03.2013 16:21:07 +0200 - build 3273

1. Another correction.

2. 0002345: A small defect in help info

drkns 24.03.2013 11:45:49 +0200 - build 3272

1. And more.

drkns 23.03.2013 19:59:25 +0200 - build 3271

1. Another couple of corrections.

drkns 23.03.2013 17:28:05 +0200 - build 3270

1. Correction of 3269.

drkns 23.03.2013 16:17:18 +0200 - build 3269

1. Refactoring.

drkns 23.03.2013 00:40:11 +0200 - build 3268

1. Refactoring.

w17 23.03.2013 00:02:37 +0400 - build 3267

1. correction of 3259.

svs 22.03.2013 18:21:38 +0400 - build

1. Corrections (a few of) on TREEFILE_PROJECT (Mantis#0000186)
   without a build, because of no influence on the main code.

   <ACHTUNG>

   1. Don't use /D TREEFILE_PROJECT - the project is under development.
   2. Ideas and comments here - http://bugs.farmanager.com/view.php?id=186

   </ACHTUNG>

svs 22.03.2013 15:40:09 +0400 - build 3266

1. Mantis#0002341: Need GUIDs

    AdvancedConfigId  = {A204FF09-07FA-478c-98C9-E56F61377BDE} --> Dlg.Id
    FolderShortcutsId = {4CD742BC-295F-4afa-A158-7AA05A16BEA1} --> Menu.Id

2. "System.Executor.~" parameter is described in help

3. Mantis#0001535: Adding help on Ctrl-Alt-F (menu items filtering)

svs 22.03.2013 14:45:14 +0400 - build 3265

1. Mantis#0002340: Add FCTL_SETACTIVEPANEL command to API

   Panel API: FCTL_SETACTIVEPANEL command - make "this panel" active.

     hPanel = HANDLE | PANEL_ACTIVE | PANEL_PASSIVE
        HANDLE - "this panel" becomes active
        PANEL_ACTIVE - waste of time, "it" is already active :-)
        PANEL_PASSIVE - passive one becomes active
     Command = FCTL_SETACTIVEPANEL
     Param1 = 0
     Param2 = 0

     Return = TRUE (all ok) | FALSE (no such panel or it is "hidden")

shmuel 21.03.2013 22:51:47 +0200 - build 3264

1. Refactoring.

drkns 21.03.2013 21:29:29 +0200 - build 3263

1. Refactoring.

drkns 21.03.2013 02:27:47 +0200 - build 3262

1. One more correction of 3260.

w17 21.03.2013 03:58:50 +0400 - build 3261

1. correction of 3260.

drkns 20.03.2013 23:09:07 +0200 - build 3260

1. Refactoring.

drkns 20.03.2013 02:07:58 +0200 - build 3259

1. Refactoring.

drkns 19.03.2013 00:02:25 +0200 - build 3258

1. Refactoring.

svs 18.03.2013 18:58:10 +0400 - build 3257

1. SQLite 3.7.16

w17 18.03.2013 17:45:12 +0400 - build 3256

1. m#1905 - removing 'wrap...' sign from viewer keybars for hex and dump modes.

drkns 17.03.2013 22:54:00 +0200 - build 3255

1. Refactoring.

drkns 17.03.2013 18:35:35 +0200 - build 3254

1. Continuation of 3253 - the task list could be called twice if the first call was from the main menu. 

w17 17.03.2013 20:06:26 +0400 - build 3253

1. ShowProcessList() could be called many times (from ru.board)

drkns 17.03.2013 14:35:40 +0200 - build 3252

1. Continuation of M#0002294: code refactoring, help is added.

drkns 16.03.2013 22:39:28 +0200 - build 3251

1. Refactoring.

drkns 16.03.2013 01:18:08 +0200 - build 3250

1. M#0000466 related code is removed.

2. gcc debug x86 build did not work.

3. Refactoring.

shmuel 15.03.2013 16:22:25 +0200 - build 3249

1. Restoring the behavior of Plugin.Call asynchronous call, according to the comment to build 2899.

w17 15.03.2013 07:03:24 +0400 - build 3248

1. Refactoring.

w17 14.03.2013 15:40:18 +0400 - build 3247

1. Syncing of keybars and the language file

drkns 14.03.2013 00:40:53 +0200 - build 3246

1. Refactoring.

drkns 13.03.2013 21:37:15 +0200 - build 3245

1. Correction of 3243.

drkns 13.03.2013 21:26:34 +0200 - build 3244

1. gcc.

drkns 13.03.2013 21:15:45 +0200 - build 3243

1. 0002330: UserData memory leaks in operations with AnalyseW

2. 0002334: memory leaks in operations with sqlite.

t-rex 13.03.2013 17:08:47 +0200 - build 3242

1. Mantis#2334: memory leaks in operations with sqlite.

drkns 13.03.2013 02:34:54 +0200 - build 3241

1. Refactoring.

drkns 12.03.2013 23:31:23 +0200 - build 3240

1. Refactoring.

2. 0002332: "admin" indicator is in the middle of the screen (by height)

drkns 12.03.2013 01:52:54 +0200 - build 3239

1. Refactoring.

shmuel 09.03.2013 22:50:25 +0200 - build 3238

1. MCTL_LOADALL and far.MacroLoadAll return true only if there were no errors on start.

drkns 09.03.2013 13:12:45 +0200 - build 3237

1. Refactoring.

w17 09.03.2013 13:17:54 +0400 - build 3236

1. Export/Import for localconfig.db

shmuel 08.03.2013 11:51:14 +0200 - build

1. Macros: 'EditorInput' event is added, i.e. group="EditorInput" must be noted in event specification.
   'action' and 'condition' functions parameters, as well as the returned value of 'action' function match the description
   of export.ProcessEditorInput function in the LuaFAR manual.

drkns 08.03.2013 01:52:56 +0200 - build 3235

1. Removing some unused code.

w17 07.03.2013 00:30:54 +0400 - build 3234

1. Correction of 3232 - the name of a mutex depends on the full path to db.

w17 06.03.2013 19:26:54 +0400 - build 3233

1. M#2329: error drawing editor lines

t-rex 05.03.2013 15:14:09 +0200 - build 3232

1. Mantis#1813: Problems with DB when multiple FAR instances are started/closed simultaneously.

drkns 04.03.2013 23:31:07 +0200 - build 3231

1. 0002322: Incorrect drawing in viewer/editor

zg 04.03.2013 00:01:33 +0200 - build 3230

1. (num|caps|scroll)lock and their combinations with modifiers can now be assigned macros.

drkns 03.03.2013 01:12:28 +0200 - build 3229

1. Refactoring.

drkns 02.03.2013 22:18:14 +0200 - build 3228

1. Refactoring.

drkns 02.03.2013 21:38:22 +0200 - build 3227

1. pushd c:\ + popd caused crash. 

shmuel 02.03.2013 01:17:54 +0200 - build 3226

1. Continuation of 3222: mf.usermenu. The description is in macroapi_manual.chm.

drkns 28.02.2013 22:15:33 +0200 - build 3225

1. Refactoring.

shmuel 28.02.2013 21:37:28 +0200 - build 3224

1. Continuation of 3222: extending mf.usermenu functionality. The full description is in macroapi_manual.chm.

shmuel 28.02.2013 17:22:41 +0200 - build 3223

1. Continuation of 3222: mf.usermenu(filename [,mode]) macro function is added.
   If 'mode' is equal to 0 or omitted, the file is opened "as is", i.e. with 'filename' given.
   If 'mode' is equal to 1, the file is opened in %farprofile%\Menus (the folder is created automatically).

svs 28.02.2013 11:46:34 +0400 - build 3222

1. Mantis#0002270: User menu from any file
   Часть 1: implementation.
   UserMenu(filename) constructor is added. It is expected that 'filename' is the full path to the menu file.


   Noted Menu.Open(filemenu [,mode]) function may be written :-)

zg 27.02.2013 01:14:16 +0200 - build 3221

1. forum: "Folder size calculation can be interrupted with Esc. In the meanwhile, if Esc is assigned a macro,
   for example, panels hiding, the macro is executed instead of interrupting the calculation and closing the dialog."

shmuel 27.02.2013 00:19:09 +0200 - build

1. Macros: 'DialogEvent' event is added, i.e. group="DialogEvent" must be noted in event specification.
   Parameters of 'action' and 'condition' functions and the returned value of 'action' function follow the description
   of export.ProcessDialogEvent function in LuaFAR manual.

shmuel 26.02.2013 18:14:23 +0200 - build

1. Macros: 'ExitFAR' event is added, i.e. group="ExitFAR" must be noted in event specification.
   Event handlers are called on each unload of LuaMacro plugin.

drkns 26.02.2013 02:15:17 +0200 - build 3220

1. 0002248: ANSI plugins do not let apps start from junction folders

2. Refactoring.

shmuel 22.02.2013 20:10:21 +0200 - build 3219

1. Continuation of 3217: mmode(1,1) call could block the screen on subsequent invocation of an error dialog.

drkns 22.02.2013 19:09:39 +0200 - build 3218

1. Run with CtrlAltEnter did not work.

shmuel 22.02.2013 17:38:36 +0200 - build 3217

1. mmode(1,1) call could suppress screen redraw after a macro ended.

drkns 21.02.2013 23:44:34 +0200 - build 3216

1. Partial rollback of 3171.2, too many bugs appeared.

w17 20.02.2013 17:52:10 +0400 - build 3215

1. Continuation of 3206 (M#2303) -- automatic detection of links copying method.

shmuel 20.02.2013 09:48:22 +0200 - build 3214

1. Correction of 3209 for MSSC_POST.

drkns 20.02.2013 02:06:02 +0200 - build 3213

1. Refactoring. Adding some 'const'ness.

drkns 19.02.2013 22:23:51 +0200 - build 3212

1. Continuation of 3208. UserDefinedList is removed, there is StringToList function which creates a standard list following the same logic.

w17 19.02.2013 12:13:40 +0400 - build 3211

1. Correction of 3206.
   a) SPARSE and REPARSEPOINT flags separation in attribute line
   b) symbol for SPARSE is changed '$' -> 'P' -- inform me if this is 'bad'
   c) removing spaces from too long attribute line

w17 19.02.2013 08:36:13 +0400 - build 3210

1. vc10 compilation fix.

shmuel 18.02.2013 23:49:37 +0200 - build 3209

1. Macros: "DisableOutput" flag is removed.
   A new flag is added: "EnableOutput", inactive by default.
   Plugin and macro API is not affected by this change.

drkns 18.02.2013 23:29:22 +0200 - build 3208

1. Refactoring.

drkns 18.02.2013 22:10:06 +0200 - build 3207

1. More launcher related stuff.

w17 18.02.2013 17:33:55 +0400 - build 3206

1. M#2303: New Reparse Point types in Windows 8/2012

drkns 17.02.2013 21:06:25 +0200 - build 3205

1. Refactoring.

drkns 17.02.2013 18:01:04 +0200 - build 3204

1. Correction of 3197.

shmuel 16.02.2013 23:01:07 +0200 - build

1. Macros: condition() function is called with a single string parameter: the name of the key.
   * This does not apply for macros called during 'RunAfterFARStart'.
   * This does not apply for events.
   * This is done because akey() does not work when called from condition().

drkns 16.02.2013 20:14:37 +0200 - build 3203

1. The length of the prompt was not restored after $#nn removed from the format string. 

drkns 16.02.2013 15:19:37 +0200 - build 3202

1. Once more 0002306.

2. Crash in info panel.

3. gcc.

drkns 16.02.2013 14:57:06 +0200 - build 3201

1. 0002306: panel not initialized

drkns 16.02.2013 13:22:34 +0200 - build 3200

1. 0002306: panel not initialized

drkns 16.02.2013 12:07:09 +0200 - build 3199

1. Correction of 3197.

drkns 16.02.2013 03:37:17 +0200 - build 3198

1. Crashes with too little console buffer size.

drkns 16.02.2013 02:44:09 +0200 - build 3197

1. Experimental support for prompt coloring.
   Format:
   ([[T]FFFFFFFF][:[T]BBBBBBBB])
   FFFFFFFF - text color in aarrggbb format.
   BBBBBBBB - background color in aarrggbb format.
   T - "true color flag", if absent, the color is treated as a console color index (0-F).
   If a text or background color is omitted, the default value is used.

   Examples:
   (A) - bright green text with default background
   (:F) - default text on white background
   (C:2) - bright red on green
   () - default text on default background
   (T00CCCC:TE34234) - turquoise on vermilion

   THe given color is applied up to the end of the prompt or the next color entry.

   The example of use:
   (a)%username%(f)@(c)%computername%() $p$g

drkns 15.02.2013 23:09:33 +0200 - build 3196

1. 0002304: External editor launch erases the command line.
   Launcher is altered a little once again, bugs possible. 

drkns 14.02.2013 21:11:45 +0200 - build 3195

1. In GetReparsePointInfo(), unknown reparse points were treated as junctions, with all the consequences. 

2. Ability of detection of reparse points with DEDUP and NFS tags.
 
t-rex 14.02.2013 20:37:28 +0200 - build 3194

1. Removing the previous ones, now the configuration of the width resides in the prompt line - $#nn.

svs 14.02.2013 17:26:41 +0400 - build 3193

1. Correction of 3192.
   Prompter improvement:
   $W - current working directory (no path given)

svs 14.02.2013 17:05:40 +0400 - build 3192

1. Removing API from 3190 (overkill)
   Instead: MCODE_F_CMDLINE_PROMTSIZE to macros
   N=Cmdine.PromtSize([Size])
   Size - required size in % from the console window size, min=5, max=95
   If Size, the function simply returns the current value (in % from the console window size)
   Returns the previous value

   Need some updates in luamacro.

2. Prompter improvement:
   $M - Displaying of the full name of a network volume linked to the name of
        the current volume, or an empty string if the current volume is not a network one.

t-rex 14.02.2013 13:40:43 +0200 - build 3191

1. Configuration of Cmdline.PromptSize from the previous build.

svs 14.02.2013 14:58:04 +0400 - build 3190

1. Mantis#0002302: Reduce the visible part of the prompt
   The solution consists of two parts (here is the first part)

   Two new commands are added to API:

    FCTL_SETCMDLINEPROMPTSIZE
      Set the displayed size of the command line prompt.
      Param1 = required size in % of console window width, min=5, max=95
               the size is 50% at start
      Param2 = nullptr (ignored)
      Returns TRUE
    FCTL_GETCMDLINEPROMPTSIZE
      Get the displayed size of the command line prompt (in % of console window width).
      Param1 = 0 (ignored)
      Param2 = pointer to int
      Returns TRUE if Param2 is not equal to nullptr, FALSE otherwise

     The second part of the solution - adding some functionality to luamacro plugin.

drkns 13.02.2013 22:22:04 +0200 - build 3189

1. Refactoring.

2. Correction of 3174.1.

drkns 13.02.2013 20:41:59 +0200

1. 'Define's removed for vc9 and lower, we do not support them anyway.

2. 0002280: Blurry icons in window title and taskbar.

drkns 13.02.2013 12:41:34 +0200 - build 3188

1. Correction of 3185 for ancient OS's.

2. Correction of 3185 for flawed sdk's.

lort 13.02.2013 14:16:45 +0400 - build 3187

1. Correction of 3184

drkns 12.02.2013 23:59:04 +0200 - build 3186

1. Trying to avoid horizontal scrollbar appear after AltF9 when windowmode==true.

drkns 12.02.2013 23:47:00 +0200 - build 3185

1. Experimental: trying to get the scrollbar not to overlap information when windowmode==true and window is maximized.

lort 13.02.2013 01:32:35 +0400 - build 3184

1. 0002297: FMENU_SHOWAMPERSAND flag malfunction

drkns 12.02.2013 23:15:47 +0200 - build 3183

1. Adequate scrolling to the beginning/end of a buffer for windowmode==true.

drkns 12.02.2013 21:48:26 +0200 - build 3182

1. 0002294: "Preserve style" option available in editor replace.

w17 12.02.2013 12:37:49 +0400 - build 3181

1. correction of 3180

w17 12.02.2013 08:58:04 +0400 - build 3180

1. M#2299: Far crash when using folder search (Alt-F10)

drkns 12.02.2013 01:29:37 +0200 - build 3179

1. Continuing 3157.

drkns 11.02.2013 22:15:28 +0200 - build 3178

1. Correction of 2607. Just in case, I remind: don't place %d, %s etc. in lng files

2. ShiftF8 - Automatic Detection. Editor crashed in case of automatic detection failure.

drkns 11.02.2013 21:02:37 +0200 - build 3177

1. Refactoring.

drkns 11.02.2013 19:57:46 +0200 - build 3176

1. Continuation of 3171.

shmuel 11.02.2013 18:53:29 +0200 - build

1. Macros: precedence of events is defined by dynamic priorities.
   * Dynamic priority is defined as in macros, with 'condition' and 'priority' fields.
   * action() is called for each event, excluding those for which the
     condition() call returned false/nil/nothing, in descending dynamic priorities order.

t-rex 11.02.2013 16:16:30 +0200 - build 3175

1. Continuing 3157. MaxLength moved to Editcontrol.

t-rex 11.02.2013 12:16:10 +0200 - build 3174

1. LeftPos bugs in recent builds.
   The whole thing has to be redone so that Edit is not ScreenObject and is drawn by Editor.

2. Correction for 3173.

shmuel 11.02.2013 11:27:48 +0200 - build

1. Macros: new specification for events, incompatible with the previous one.
   1.1. No flags checking, 'flags' field is not used.
   1.2. 'name' field is cancelled.
   1.3. condition() and action() functions get 3 parameters: Id,Event,Param
        (see LuaFAR manual, functions ProcessEditorEvent, ProcessViewerEvent).

t-rex 11.02.2013 11:24:05 +0200 - build 3173

1. gcc build failure.

drkns 10.02.2013 22:22:59 +0200 - build 3172

1. Continuation of 3171.

drkns 10.02.2013 19:50:21 +0200 - build 3171

1. Correction of 3169.

2. Refactoring of panel states storage. Variety of bugs is possible.

shmuel 10.02.2013 16:55:25 +0200 - build

1. Macros (specification of events):
   In ViewerEvent group, 'name' field can have the following values: 'Read', 'Close', 'KillFocus', 'GotFocus'.

shmuel 10.02.2013 15:46:55 +0200 - build 3170

1. Refactoring.

drkns 10.02.2013 04:31:36 +0200 - build 3169

1. Continuing 3157. 8/16 bytes less.

drkns 10.02.2013 03:06:35 +0200 - build 3168

1. Continuing 3157. 20 bytes less in x86 and 32 in x64.

t-rex 08.02.2013 16:52:35 +0200 - build 3167

1. SCTL_ENUM returned wrong value.

w17 08.02.2013 18:51:02 +0400 - build 3166

1. 0002292: ESPT_CODEPAGE corrupts the file

drkns 08.02.2013 01:56:40 +0200 - build 3165

1. Refactoring.

shmuel 08.02.2013 01:25:45 +0200 - build

1. Macros: continuation.
   * In EditorEvent group, 'name' can have the following values:
     'Read', 'Save', 'Change', 'Close', 'Redraw', 'KillFocus', 'GotFocus'.
   * In each events implemented by now, action() function gets 2 parameters:
     1. ID - viewer/editor window ID (a number).
     2. Param - according to LuaFAR documentation on export.ProcessEditorEvent, export.ProcessViewerEvent functions.

shmuel 07.02.2013 20:15:14 +0200 - build

1. Макросы: new specification for events handler (modifies the specification from 05.02.2013).
   * key="Read" key in the table-parameter of Macro function is cancelled.
   * New boot function 'Event'; as well as 'Macro' function, it accepts one parameter - a table.
   * Differences of the fields from the fields of the table-parameter of the Macro function: instead of 'area' and 'key' fields there are
     'group' и 'name' fields.
   * At the moment, 'group' can have the following values: 'EditorEvent' and 'ViewerEvent'.
   * In EditorEvent group, 'name' can have the 'Read' and 'Save' values.
   * In ViewerEvent group, 'name' can have the 'Read' value.
   * New function NoEvent similar to NoMacro.
   * One cannot call functions listed in the article "Limitations on the use of certain functions" 
     of the MacroAPI manual, from 'action' function.
     If these functions are necessary, one can call them via far.MacroPost().
   * Example:
       Event {
         group="EditorEvent"; name="Read";
         action=function() ...... end;
       }

t-rex 07.02.2013 16:44:49 +0200 - build 3164

1. Continuing 3157.

t-rex 07.02.2013 14:53:35 +0200 - build 3163

1. From Denis: http://forum.farmanager.com/viewtopic.php?p=103451#p103451
   Where "If text in dialog input field is ended with spaces or tabs, highlight them." has gone?

t-rex 07.02.2013 04:14:49 +0200 - build 3162

1. The choice of default encoding in viewer settings (now it works).

2. The choice of default encoding in editor settings.

drkns 07.02.2013 01:13:11 +0200 - build 3161

1. Correction of wrapper.

t-rex 07.02.2013 00:01:22 +0200 - build 3160

1. The choice of default encoding in viewer settings (does not work by now).

drkns 06.02.2013 23:47:36 +0200 - build 3159

1. Refactoring.

trex 06.02.2013 20:13:18 +0200 - build 3158

1. Continuing 3157. Now the class Edit has no 'codepage' entity.

drkns 06.02.2013 01:28:10 +0200 - build 3157

1. Edit class size reduced, editor must be using a bit less memory on large amount of lines.

shmuel 05.02.2013 17:11:26 +0200 - build

1. Macros specification: a new optional field "filemask" of string type.
   * For Editor and Viewer areas, with the field present, conformity of
     the file name (without path) to a given file mask is checked.
   * The mask must match the rules used for file masks
     in file search dialog (Alt-F7 at panels).
   * When the macro is checked for run, this field is checked first,
     i. e. before flags check and 'condition' function call.

2. In Editor and Viewer areas, a special key "Read" is processed in macro specifications.
   This means that the macro can run on a loading file event into either the editor or
   the viewer appropriately. For those macros the following actions are taken:

     a) Matching of "filemask" field (if specified) to the file name is checked.
     b) Flagged conditions are checked.
     c) If 'condition' function is present then it is called with the parameter 
        ID (the identifier of this editor/viewer instance).
     d) If (a,b,c) conditions do not prevent it, 'action' function is called.

   * 'priority' field is not used.
   * On condition() call, only logical equality of the returned value to true does matter.
   * These macros are run one after one, i.e. all of them, not one of them.

drkns 05.02.2013 08:32:09 +0200 - build 3156

1. Correction of 3155.

drkns 05.02.2013 02:11:39 +0200 - build 3155

1. Using standard stacks and queues.

drkns 04.02.2013 23:38:27 +0200 - build 3154

1. Refactoring.

lort 04.02.2013 21:52:31 +0400 - build 3153

1. Incorrect adjustment of Menu.Show macro function menu height

drkns 04.02.2013 03:18:25 +0200 - build 3152

1. Refactoring.

drkns 04.02.2013 02:45:41 +0200 - build 3151

1. Refactoring.

drkns 03.02.2013 22:59:12 +0200 - build 3150

1. Correction of 3094.

shmuel 03.02.2013 16:56:54 +0200 - build 3149

1. When a macro is saved to a file, spaces are used as flag separators.
   When a macro is loaded from a file, spaces and '|' characters are considered separators.

drkns 03.02.2013 09:32:05 +0200 - build 3148

1. Correction of 3094.

shmuel 02.02.2013 23:13:23 +0200 - build 3147

1. Forum: If Panel.SetPosIdx(0,-1,1) is called from a macro while there's no selected files in panel then FAR freezes.

shmuel 02.02.2013 22:36:31 +0200 - build 3146

1. M#2228: Menu items shift to the right if automatic numbering of items is used in Menu.Show.

drkns 02.02.2013 16:50:15 +0200 - build 3145

1. And once more.

drkns 02.02.2013 16:20:21 +0200 - build 3144

1. Correction of 3141.

t-rex 01.02.2013 21:23:22 +0200 - build 3143

1. RCtrlH did not work in far:config.

drkns 01.02.2013 18:50:55 +0200 - build 3142

1. Malfunction of macro recording keys redefinition.

drkns 01.02.2013 17:36:21 +0200 - build 3141

1. If panel items are equal from the current sorting criterion's point of view (and, therefore, are sorted by name) 
   then change of sorting direction does not affect them.

t-rex 01.02.2013 12:24:37 +0200 - build 3140

1. Correction of 3134.

drkns 01.02.2013 10:22:46 +0200 - build 3139

1. Correction of 3138.

2. Refactoring.

drkns 31.01.2013 02:45:16 +0200 - build 3138

1. Adding support for move semantics to UnicodeString.

t-rex 31.01.2013 01:59:09 +0200 - build 3137

1. Mantis#2247. More comprehensible display of string search progress in files.

t-rex 30.01.2013 23:45:01 +0200 - build 3136

1. The previous fix must work only at 'replace all'.

t-rex 30.01.2013 22:48:47 +0200 - build 3135

1. Mantis#1376: Undo replace all.
   On replace, undo rolls back all changes at once.

t-rex 30.01.2013 22:04:15 +0200 - build 3134

1. Mantis#2281: Memory exhaustion at search with replace in editor.
   Now there is a limit for the amount of memory used for undo buffer in editor в редакторе, 100MB by default.
   It is set up in Editor.UndoDataSize (size in bytes), old and useless Editor.EditorUndoSize setting is removed.

w17 30.01.2013 15:33:36 +0400 - build 3133

1. operator< should be const (also another fix for selection in panels)

drkns 30.01.2013 00:27:32 +0200 - build 3132

1. Adding some clever macros to simplify the use of template containers.

drkns 29.01.2013 20:56:19 +0200 - build 3131

1. Refactoring.

shmuel 29.01.2013 19:03:01 +0200 - build 3130

1. Forum: if Keys() call is placed after far.MacroLoadAll() then the macro is terminated after return from Keys.

shmuel 29.01.2013 10:46:39 +0200 - build 3129

1. After macro selection menu cancel the key was passed to FAR for further processing.

w17 29.01.2013 09:13:35 +0400 - build 3128

1. Experimental. Separators and submenu caption in shortcuts.
   If "Folder" field in shortcuts submenu is empty then
   a) if the name = "--" then it is a separator
   b) else if the name is the first item then it is a submenu caption, otherwise it is ignored

w17 29.01.2013 08:49:52 +0400 - build 3127

1. Panel selection fix.

drkns 28.01.2013 22:53:29 +0200 - build 3126

1. More correct "once more".

w17 28.01.2013 19:49:34 +0400 - build 3125

1. Once more...

w17 28.01.2013 18:27:46 +0400 - build 3124

1. Correction of refactoring (I don't know which one of them ......)

drkns 28.01.2013 01:20:00 +0200 - build 3123

1. Refactoring.

shmuel 27.01.2013 17:48:50 +0200 - build 3122

1. 'akey' and 'mmode' functions being called from 'condition' macro function return false.

drkns 26.01.2013 21:15:16 +0200 - build 3121

1. Correction of tree file saving.

drkns 26.01.2013 18:04:57 +0200 - build 3120

1. Correction of 3119.

drkns 26.01.2013 17:54:44 +0200 - build 3119

1. Refactoring.

drkns 26.01.2013 15:03:56 +0200 - build 3118

1. Correction of 3117.1.

drkns 26.01.2013 12:06:30 +0200 - build 3117

1. Refactoring.

2. Correction of sorting by time/size/links and streams number.
   "Direct" sorting now means the descending order, "reverse" - the ascending one.
   Ctrl-Fx and default menu selection turn reverse sorting order for these modes.

w17 25.01.2013 12:14:49 +0400 - build 3116

1. gcc build fix

drkns 24.01.2013 23:55:14 +0200 - build 3115

1. Refactoring.

drkns 23.01.2013 23:57:06 +0200 - build 3114

1. Refactoring.

drkns 23.01.2013 20:15:10 +0200 - build 3113

1. Correction of 3112.2.

drkns 22.01.2013 23:14:46 +0200 - build 3112

1. CtrlUp and CtrlDown work in shortcuts menu.

2. Empty lines are removed from user menu, associations menu and filters menu, because of CtrlUp and CtrlDown available.

drkns 22.01.2013 00:53:06 +0200 - build 3111

1. Refactoring of far:config.

drkns 21.01.2013 23:05:46 +0200 - build 3110

1. And once more.

drkns 21.01.2013 22:08:36 +0200 - build 3109

1. And once more.

drkns 21.01.2013 21:39:57 +0200 - build 3108

1. Correction of correction of correction of 3102.

w17 21.01.2013 20:58:56 +0400 - build 3107

1. Correction of correction of 3102 (usermenu).

svs 21.01.2013 17:37:30 +0400 - build 3106

1. Mantis#0002266: GUIDs needed
     Editor: read-only file rewrite.
               {3F9311F5-3CA3-4169-A41C-89C76B3A8C1D}
     FAR: exit confirmation dialog.
               {72E6E6D8-0BC6-4265-B9C4-C8DB712136AF}
     Editor: file save after it has been changed with an external app (or deleted).
               {40A699F1-BBDD-4e21-A137-97FFF798B0C8}
     Editor: file save on exit.
               {F776FEC0-50F7-4e7e-BDA6-2A63F84A957B}
     Editor: file with RSH attributes open prompt
               {D8AA706F-DA7E-4bbf-AB78-6B7BDB49E006}
     Редактор: file save when switching to the viewer if the file (or containing directory) was deleted.
               {85532BD5-1583-456d-A810-41AB345995A9}
     Редактор: file save and exiting the editor if the file (or containing directory) was deleted.
               {2D71DCCE-F0B8-4e29-A3A9-1F6D8C1128C2}
     Редактор: file rewrite prompt
               {4109C8B3-760D-4011-B1D5-14C36763B23E}


w17 21.01.2013 14:25:04 +0400 - build 3105

1. Correction of 3102 (usermenu).

drkns 21.01.2013 08:55:54 +0200 - build 3104

1. Correction of 3102.

w17 21.01.2013 04:06:32 +0400 - build 3103

1. Correction of 3102.

drkns 20.01.2013 23:13:49 +0200 - build 3102

1. Refactoring.

drkns 20.01.2013 21:47:14 +0200 - build 3101

1. A couple of leaks in filters.

2. Correction in help.

drkns 20.01.2013 21:26:25 +0200 - build 3100

1. Slightly optimization: do not try to read the number of hard links and info about streams if FS does not support it.

drkns 20.01.2013 20:08:29 +0200 - build 3099

1. Correction of 3094.

w17 20.01.2013 16:30:39 +0400 - build 3098

1. M#2265: Scrollbar errors in editor/viewer

drkns 19.01.2013 21:18:14 +0200 - build 3097

1. Correction of 3094.

shmuel 18.01.2013 21:07:42 +0200 - build 3096

1. Refactoring.

drkns 18.01.2013 15:38:50 +0200 - build 3095

1. Refactoring.

drkns 18.01.2013 14:41:12 +0200 - build 3094

1. Refactoring of descriptions.

2. 0002261: Expand environment variables in folder shortcuts menu

shmuel 18.01.2013 12:25:16 +0200 - build 3093

1. There was a possibility of recording a macro while another macro playing.

drkns 17.01.2013 23:40:28 +0200 - build 3092

1. Continuation of 3087 - panel focus moved to local settings.

drkns 17.01.2013 22:37:25 +0200 - build 3091

1. Another correction of 3076.

drkns 17.01.2013 22:12:27 +0200 - build 3090

1. Correction of 3076 and rollback of 3089, will be done later.

shmuel 17.01.2013 16:34:27 +0200 - build 3089

1. Partial rollback of 3076 (Undo/Redo in editor).

shmuel 16.01.2013 23:53:39 +0200 - build 3088

1. GCC warnings.

drkns 16.01.2013 22:58:06 +0200 - build 3087

1. 0001969: Separate "Save panels state" setting from other settings and make it local

svs 16.01.2013 23:56:44 +0400 - build 3086

1. Mantins#0002260: GUID is needed in file reopen dialog 
     EditorReloadId={AFDAD388-494C-41e8-BAC6-BBE9115E1CC0}

drkns 15.01.2013 23:37:28 +0200 - build 3085

1. Correction of 3084.

drkns 15.01.2013 22:03:55 +0200 - build 3084

1. 0002256: Fix warnings: member variable is not initialized in constructor

shmuel 15.01.2013 00:27:59 +0200 - build 3083

1. Refactoring.

w17 15.01.2013 00:33:06 +0400 - build 3082

1. Highlight Ctrl-Up/Down fix = correction of 3076

w17 14.01.2013 21:28:05 +0400 - build 3081

1. M#2254: In window - PgDn in menu = correction of 3076

w17 14.01.2013 18:14:07 +0400 - build 3080

1. correction of 3076 - shortcuts fix

w17 14.01.2013 06:39:14 +0400 - build 3079

1. correction of 3076

shmuel 13.01.2013 11:40:40 +0200 - build 3078

1. Changes related to macros.

1.1. Key press interpretation, introduction of left-side modifiers.
     On key accept, it is considered with left- and right-side modifiers distinguished.
     I.e. either "LCtrlX" or "RCtrlX" are accepted instead of "CtrlX".

1.2. "Exact" and "generalized" modifiers in keys specifications.
     * Exact modifiers are LCtrl, LAlt, RCtrl and RAlt. Generalized modifiers are Ctrl and Alt.
     * Each of generalized modifiers means "any one", i.e. left- or right-side modifiers.
       Thus, "CtrlAltX" specification is equal to "LCtrlLAltX LCtrlRAltX RCtrlLAltX RCtrlRAltX".
     * One specification of a key may contain either exact or generalized modifiers,
       for example, "CtrlRAltX".

1.3. Keys specified with a regular expression.
     * On key accept, case insensitive matching of its name is performed (see #1) against a regular expression,
       according to FAR regexps rules.
     * "/CtrlX/" regular expression never matches because either "LCtrlX" or "RCtrlX" are passed to matching.
     * Examples of regular expressions independent of modifier type: "/.CtrlX/" or "/[LR]CtrlX/".
       If you have macros with keys specifications like "/R?CtrlX/", fix them as it mentioned before.

1.4. Key specifications have no priority against each other.
     For macros 1 (key="RCtrlX"), 2 (key="CtrlX") and 3 (key="/.CtrlX/"), on RCtrlX key press all of them
     are processed uniformly, and the selection is performed with respect to the given fields:
     'flags' (including possible callback for MCTL_ADDMACRO macros), 'condition' and 'priority'.

1.5. For keyboard macros recording, generalized modifiers are always used, i.e. you cannot
     assign a macro to LCtrlX or RCtrlX from keyboard, only to CtrlX.

1.6. Macros in "Common" ares have priority = 40 by default.

drkns 13.01.2013 02:23:07 +0200 - build 3077

1. gcc.

drkns 13.01.2013 00:28:46 +0200 - build 3076

1. Refactoring. Overall use of standard lists and arrays, some lambdas and stuff. Epic bugs are possible.

zg 12.01.2013 04:49:12 +0200 - build 3075

1. 0002252: Inconsistency between selection and cursor movement in block mode.

shmuel 11.01.2013 17:46:00 +0200 - build 3074

1. Forum: on FAR start, if one of panels has a network folder opened, the following message _may_ be shown:
   attempt to index upvalue 'Areas' (a nil value).

drkns 10.01.2013 21:38:44 +0200 - build 3073

1. Refactoring.

w17 10.01.2013 12:03:54 +0400 - build 3072

1. gcc build fix

drkns 10.01.2013 02:03:43 +0200 - build 3071

1. Refactoring.

drkns 10.01.2013 00:25:12 +0200 - build 3070

1. Refactoring.

svs 09.01.2013 22:04:32 +0400 - build 3069

1. Mantis#0002245: Add GUID for search results window on panels
     FindFileResultId={536754EB-C2D1-4626-933F-A25D1E1D110A}

2. Mantis#0002243: There's no way to know if a separator has been set with alignment to center if it is set with Х=-1
      For DIF_SEPARATOR or DIF_SEPARATOR2 given, if X1 or Y1=-1 then FAR aligns the text and
      forces the DIF_CENTERTEXT flag. In this case the coordinates of the separator are not equal to -1.

svs 09.01.2013 21:49:38 +0400 - build 3068

1. SQLite 3.7.15.2

zg 07.01.2013 05:12:25 +0200 - build 3067

1. RECTL_SEARCHEX for unfound brackets assigned RegExpMatch.start a value different from -1.

lort 04.01.2013 18:02:57 +0400 - build 3066

1. Mantis#0002240: Ctrl-Enter incorrect functioning in search results menu

shmuel 04.01.2013 15:52:07 +0200 - build 3065

1. M#2220: MoreHistory -> View/Edit history -> F4 Esc Esc -> Random crash
   (от Michael Lukashov).

shmuel 03.01.2013 23:35:20 +0200 - build 3064

1. Forum: macros such as AltQ do not run with Russian keyboard layout.

drkns 02.01.2013 20:44:40 +0200 - build 3063

1. Refactoring.

drkns 02.01.2013 18:45:01 +0200 - build 3062

1. Refactoring.

shmuel 02.01.2013 07:50:55 +0200 - build 3061

1. Visual C++ build error.

shmuel 02.01.2013 00:50:13 +0200 - build 3060

1. Refactoring.

shmuel 01.01.2013 13:42:42 +0200 - build 3059

1. Refactoring.

zg 31.12.2012 01:16:38 +0200 - build 3058

1. with mmode 3 on, memory corruption took place after Plugin.Call if the macro returned before the plugin call.

shmuel 30.12.2012 21:29:27 +0200 - build 3057

1. Help did not include macros from ShellAutoCompletion and DialogAutoCompletion.

2. Refactoring.

shmuel 30.12.2012 20:00:01 +0200 - build 3056

1. Help did not include macros recorded from keyboard.

2. Refactoring.

shmuel 30.12.2012 00:14:45 +0200 - build 3055

1. Refactoring.

shmuel 29.12.2012 15:17:57 +0200 - build 3054

1. 'area' in macro description may include several areas separated with spaces.

2. 'key' in macro description may include several keys separated with spaces.

3. 'key' in macro description may be given as a FAR regular expression surrounded with slash symbols (/).
   * In this case /Ctrl/ does not work on RCtrl press, /R?Ctrl/ must be given explicitly etc.
   * Also, in this case it is necessary to keep Ctrl,Alt,Shift order, for example /AltCtrlF1/ never works.

4. More than one macro is allowed for (key,area) combination. In this case only a macro with the biggest priority is executed
   (as described in 4a,4b,4c). If there is more than one macro with equal priority, a menu is shown.
   All auto-starting macros are executed, regardless of priority.

4a. Optional 'priority' field in macro description: a number from 0 to 100. The default value is 50.

4b. Optional 'condition' field in macro description: a function. If it returns false/nil/nothing then the macro
    is not executed. If it returns a number then the number is used instead of 'priority'. In case of other return values
    (for example, true) 'priority' is used.

4c. Macros added with MCTL_ADDMACRO have priority = 50.

5. Macros recorded from keyboard are handled in a special way. No more than one for a combination (key,area) is allowed.
   Their priority is higher than any other macros priority.

6. THe format of macros recorded from keyboard has been changed. If you have such macros saved in
   Macros/internal directory, move them to Macros/scripts.

7. BUGS AND REGRESSIONS ARE HIGHLY POSSIBLE. Thus, users should better wait a couple of weeks before updating
   to a new version.

lort 28.12.2012 18:36:32 +0400 - build 3053

1. Correction of 2941.3

svs 25.12.2012 18:44:49 +0400 - build 3052

1. Viewer wrapper for displaying of panel description files (class DizViewer) is placed in a separate file dizviewer.hpp
   The wrapper is intended to track DizView methods call recursiveness (in the context of InfoList) and... to prevent "viewer" accidental deletion during the call.
   The wrapper is required for Mantis#0000604 fix

svs 25.12.2012 18:31:20 +0400 - build 3051

1. When API::GetDirList (or internal GetPluginDirInfo/GetPluginDirList) was called, the plugin was not passed OPM_QUICKVIEW flag if an opposite panel was QuickView.
   OPM_* usage should be reviewed

shmuel 25.12.2012 12:36:38 +0200 - build 3050

1. M#2235: LuaMacro functions call causes panel redraw, despite screen output disable flag set.
   So far, there is only mf.waitkey fixed.

drkns 25.12.2012 00:19:17 +0200 - build 3049

1. Rollback of 3041.1.

drkns 23.12.2012 22:43:29 +0200 - build 3048

1. Continuation of 3047.

drkns 23.12.2012 19:32:14 +0200 - build 3047

1. Another bug in menus.

drkns 23.12.2012 18:20:07 +0200 - build 3046

1. Correction of plugin unloading.

w17 23.12.2012 17:00:33 +0400 - build 3045

1. Management of EOL type on text insertion in editor.
   Editor.KeepEditorEOL parameter is added,
   if the value = true (default) - trying to save the type of carriage returns for the edited file,
   if the file is empty or the parameter = false - the text is inserted unchanged.

w17 23.12.2012 14:22:48 +0400 - build 3044

1. M#0002232: Find/Replace is off by word length

drkns 22.12.2012 13:53:21 +0200 - build 3043

1. Memory leak in vmenu on item deletion.

drkns 22.12.2012 10:04:19 +0200 - build 3042

1. Correction of 3041.

drkns 21.12.2012 22:41:03 +0200 - build 3041

1. On plugin unload, closing all handles created by it via SCTL_CREATE if it has not taken care about them.

2. 'disableoutput' flag was ignored for auto-starting macros.

svs 21.12.2012 16:15:36 +0400 - build 3040

1. Mantis#0002207: SetDirectoryW() always passes NULL in SetDirectoryInfo->UserData field
   Changes (minor ones) in API.
   
   In SetDirectoryInfo (there was UserData and no FreeData)
     a) "intptr_t UserData" -> "intptr_t Reserved"
     b) "struct UserDataItem UserData" added

   In OpenPanelInfo
     a) "struct UserDataItem UserData" added
        this component is related to OpenPanelInfo::CurDir; a plugin must (if it fills them) 
        place data here, related to CurDir, FAR will place these values in SetDirectoryInfo.

   Obscurities:
     a) PluginManager::CallPlugin() - here UserData = {0,0}
        (an obscure solution)
     b) Panel::ExecShortcutFolder() - here UserData = {0,0}
        (an obscure solution)
     c) GetPluginDirList()          - here UserData = {0,0}
        the obscurity: a plugin says "I want info on this dir on that panel" and then we refer to catalog's "Name" instead of a panel item.
     d) lack for FreeData calls for OpenPanelInfo
        handle it separately...


   ACHTUNG!
   If your plugins use SetDirectoryInfo.Reserved (former SetDirectoryInfo.UserData), rebuild them considering this novation.


drkns 21.12.2012 01:39:53 +0200 - build 3039

1. Continuation of 3028.

drkns 21.12.2012 00:59:22 +0200 - build 3038

1. Refactoring.

drkns 20.12.2012 23:11:35 +0200 - build 3037

1. Memory deallocation correction in wrapper.

drkns 20.12.2012 22:59:42 +0200 - build 3036

1. Continuation of 3028.

svs 20.12.2012 11:31:27 +0400 - build 3035

1. SQLite 3.7.15.1

2. Drawing artifacts in InfoPanel
                                          
drkns 19.12.2012 22:50:44 +0200 - build 3034

1. In menu2, one could "press" grayed & disabled items.

2. Continuation of 3028. 

svs 19.12.2012 13:13:17 +0400 - build 3033

1. Mantis#0002207: SetDirectoryW() always passes NULL in SetDirectoryInfo->UserData field
   Continuing. The algorithm is redone - searching UserData on specific panel item instead of name.
   The searcher returns NULL as always.

drkns 19.12.2012 02:42:37 +0200 - build 3032

1. Continuation of 3028.

svs 18.12.2012 11:28:12 +0400 - build 3031

1. Mantis#0002224: menu items filtering with RAlt too
   (from samlyukov)

2. Mantis#0002226: Transliteration in menu filters
   (from DAtaMan)

drkns 17.12.2012 21:17:21 +0200 - build 3030

1. Instant update of colors on file group masks change.

2. Mouse malfunction in mask groups menu.

lort 17.12.2012 19:13:09 +0400 - build 3029

1. Problems with F11 and F12 in menus (Mantis#0002225)

2. Dialogs now receive F11 via DN_CONTROLINPUT

drkns 16.12.2012 21:55:11 +0200 - build 3028

1. Improving the built-in leaks detector.
   For debug builds, stats are output to screen at exit.

2. Memory leaks in Language class and GetVHDName() function.

3. Similar counter is added for allocations/deallocations performed by a plugin. Only for SCTL_CREATE/SCTL_FREE so far. 

shmuel 16.12.2012 20:48:37 +0200 - build 3027

1. Refactoring.

drkns 15.12.2012 20:37:00 +0200 - build 3026

1. '}' hotkey was processed incorrectly in user menu.

shmuel 16.12.2012 08:50:59 +0200 - build 3025

1. Correction of 3016.1.

drkns 15.12.2012 20:37:00 +0200 - build 3024

1. ':' hotkey was processed incorrectly in user menu.

2. Adding const to ImportedFunctions.

shmuel 15.12.2012 19:44:50 +0200 - build 3023

1. Refactoring.

drkns 15.12.2012 19:15:29 +0200 - build 3022

1. Correction of 3021.

   I remind of the separate class ImportedFunctions for dynamic linking that contains everything.
   There's no need to invent a wheel.

w17 15.12.2012 20:54:59 +0400 - build 3021

1. Correction of 3019.

drkns 15.12.2012 12:32:56 +0200 - build 3020

1. Forum: Inconvenient autocompletion list behavior in dialogs

w17 15.12.2012 13:20:40 +0400 - build 3019

1. M#0002223: Bad date time format at time 00:01
   Correct displaying of time. It must match win7 explorer.
   Note: dir and xp explorer show time incorrectly if the file name is at daylight saving time and current time is std and vice versa.
	In case of incorrect displaying please report (note FAT...)

drkns 15.12.2012 00:38:42 +0200 - build 3018

1. Analyzer warnings.

drkns 14.12.2012 21:27:36 +0200 - build 3017

1. Correction of 2059.

shmuel 14.12.2012 20:06:29 +0200 - build 3016

1. Macro calls after LuaMacro plugin reload caused errors.
   Now after the plugin reload macros are not loaded but can be loaded with lm:load.

2. LuaMacro plugin: new command lm:unload - unloads all macros.

lort 14.12.2012 17:54:22 +0400 - build 3015

1. FarGetPluginInformation.GInfo->MinFarVersion field was not filled correctly at PCTL_GETPLUGININFORMATION call

svs 14.12.2012 17:00:22 +0400 - build 3014

1. SQLite 3.7.15

svs 14.12.2012 16:33:53 +0400 - build 3013

1. Mantis#0002210: DIF_SEPARATOR always justifies text at the center
   The alignment takes place if DIF_CENTERTEXT flag is set or X1=-1, else the text is drawn from X1 position.

2. Mantis#0000269: Add "smart" DIF_SEPARATOR
   It is called
       DIF_SEPARATORUSER = 0x0000000000080000ULL

   DI_TEXT and DI_VTEXT with DIF_SEPARATORUSER flag:
      a) both X1 and X2 coordinates must be specified (Y1 and Y2 for DI_VTEXT)
      b) FarDialogItem::Mask contains a three character set desribing the separator - 3 symbols C string is expected: "Left-Center-Right"/"Top-Center-Bottom".
         Missing symbols will contain spaces for such a separator.
         If FarDialogItem::Mask=nullptr, standard separators are used.

3. Dialog API: DIF_RIGHTTEXT flag added
	DIF_RIGHTTEXT  = 0x0000000400000000ULL

   DIF_RIGHTTEXT - right side text (caption for frames) alignment.
      Applicable for DI_TEXT, DI_VTEXT, DI_SINGLEBOX, DI_DOUBLEBOX
      If this flag is specified X1,X2 coordinates (for DI_TEXT) and Y1,Y2 (for DI_VTEXT) must be correctly specified.

4. Mantis#0000002: DIF_WORDWRAP
	DIF_WORDWRAP   = 0x0000000800000000ULL

   DIF_WORDWRAP - text word wrapping.
      Applicable for DI_TEXT
      Here, the whole element geometry is taken into account (X1, Y1, X2, Y2)
      Next word is broken into parts if it does not fit the width of the element.
      Together with DIF_WORDWRAP, DIF_RIGHTTEXT, DIF_CENTERTEXT and DIF_SHOWAMPERSAND can be used (the rest is ignored).
      The line separator is '\n'.


   ACHTUNG! ...about drawing, where coordinates for DI_TEXT/DI_VTEXT were ignored


zg 14.12.2012 02:09:58 +0200 - build 3012

1. correction of 3010.

drkns 14.12.2012 00:44:47 +0200 - build 3011

1. For shortcuts to plugin directories detailed information is now displayed, they can be renamed and edited.

2. Refactoring.

shmuel 14.12.2012 00:32:18 +0200 - build 3010

1. Restoring the feature from 2882 broken in 2999.

svs 13.12.2012 15:21:08 +0400 - build 3009

1. Mantis#0002207: SetDirectoryW() always passes NULL in SetDirectoryInfo->UserData field

   There are the following calls:

    SetDirectory(0)
    SetDirectory("..")
    SetDirectory("\")
    SetDirectory(NAME)

   but in the last case FAR passes UserData (so far)

   There are subtle issues. Switch them by adding /DMANTIS_0002207 compilation key (for testing purposes!)
   This is about search engine and PluginManager::CallPlugin

drkns 12.12.2012 23:46:06 +0200 - build 3008

1. 0002201: At inserting\editing of a new menu or menu command there is no exit confirmation query on ESC if data have not been saved.

drkns 12.12.2012 23:16:57 +0200 - build 3007

1. 0002221: Unable to see "Network path" for disconnected drive

shmuel 12.12.2012 16:28:12 +0200 - build 3006

1. Refactoring.

svs 12.12.2012 17:55:40 +0400 - build 3005

1. SetDirectoryInfo::UserData.
   intptr_t UserData (=0) optional parameter added to inner functions PluginManager::SetDirectory, PluginA::SetDirectory and Plugin::SetDirectory.

drkns 12.12.2012 01:10:26 +0200 - build 3004

1. On macros save, garbage was written instead of flags and attempts of unused flags saving were taken.

shmuel 10.12.2012 16:18:18 +0200 - build 3003

1. Correction of 3002.1.

shmuel 09.12.2012 23:31:07 +0200 - build 3002

1. On macros initial load there was macro execution indication in the upper left corner of the screen.

2. If an error happened on macros initial load, FAR was shown with empty panels.

shmuel 09.12.2012 15:57:57 +0200 - build 3001

1. Macros moved from macros.db to %FARPROFILE%\Macros directory and are placed in Lua files.

drkns 08.12.2012 23:28:08 +0200 - build 3000

1. 0002219: PCTL_GETPLUGININFORMATION error

2. Some more refactoring.

shmuel 08.12.2012 22:57:29 +0200 - build 2999

1. far.MacroPost() worked from plugins, buf not from macros.

lort 07.12.2012 17:12:09 +0400 - build 2998

1. Assertion in debug build after files packing.

w17 05.12.2012 16:44:28 +0400 - build 2997

1. continuation of continuation of 2995

w17 05.12.2012 15:31:40 +0400 - build 2996

1. continuation of 2995

w17 05.12.2012 14:53:22 +0400 - build 2995

1. Refactoring.

shmuel 05.12.2012 02:46:44 +0200 - build 2994

1. Refactoring.

drkns 04.12.2012 21:09:45 +0200 - build 2993

1. System.QuotedName parameter is 1 by default (quote only when inserting to editor/command line).

w17 04.12.2012 17:02:23 +0400 - build 2992

1. Experimental. Returning old behavior...
   On key press with RCtrl/RAlt modifiers the macro assigned 
   to this key with Ctrl/Alt modifiers is run (if it exists and if
   there is no macro explicitly bound to 'right' modifiers).

drkns 04.12.2012 01:04:09 +0200 - build 2991

1. Menus could not be closed with a mouse click outside the menu. Outside-menu clicks configuration did not work either.

svs 03.12.2012 17:22:51 +0400 - build 2990

1. Correction of the help, including TI:
   #33 System.MsWheelDelta* & System.MsHWheelDelta*
   #30 Policies.ShowHiddenDrives

drkns 02.12.2012 12:42:54 +0200 - build 2989

1. Continuation of 2987.

drkns 02.12.2012 01:20:47 +0200 - build 2988

1. Continuation of 2987. 

drkns 01.12.2012 23:53:07 +0200 - build 2987

1. 0002212: Long volume labels are cropped
   The widths of all volume menu columns are now calculated automatically.

w17 01.12.2012 14:01:35 +0400 - build 2986

1. fix(2985) - FAR crash on file saving from the editor

drkns 30.11.2012 22:50:38 +0200 - build 2985

1. Continuing the refactoring.

w17 30.11.2012 05:44:35 +0400 - build 2984

1. vs 2010 buildable fix(2983). gcc < 4.6.1 is not supported anymore

drkns 29.11.2012 23:30:26 +0200 - build 2983

1. Continuation of 2953.

lort 29.11.2012 18:13:34 +0400 - build 2982

1. Incorrect DM_SETEDITPOSITION functions if EditorSetPosition has any parameter set to -1.

drkns 29.11.2012 01:00:22 +0200 - build 2981

1. Continuation of 2953.

w17 29.11.2012 02:57:41 +0400 - build 2980

1. M#1494: Crash on sequential closing and opening the editor from a plugin.

w17 28.11.2012 19:22:32 +0400 - build 2979

1. search failure after '\0' in editor

drkns 28.11.2012 00:23:56 +0200 - build 2978

1. Continuation of 2953.

shmuel 27.11.2012 15:58:53 +0200 - build 2977

1. Continuation of 2976: DB sections renamed.
   "farconfig/macros/variables" --> "farconfig/macros/modules".
   "farconfig/macros/variables/variable" --> "farconfig/macros/modules/module".
   If someone has already created modules, export them from 2976, rename the sections, import to 2977.

shmuel 25.11.2012 19:08:41 +0200 - build 2976

1. Experimental: the use of "farconfig/macros/variables" database section for Lua modules (libraries).
   Each variable stands for a module. The module names are case dependent.
   Example: <variable name="shmuel.utils" type="text"> ...... </variable>
   Example of use in a macro: utils=require "shmuel.utils"
   ATTENTION: "variables" are no longer loaded at FAR start. Use "constants" for this.

svs 25.11.2012 20:06:39 +0400 - build 2975

1. Correction of GetSearchReplaceString - hiding All button.

shmuel 25.11.2012 10:44:34 +0200 - build 2974

1. Macro API: Mouse.LastCtrlState property is added, unlike Mouse.CtrlState, it is
   updated both on mouse and keyboard events.

drkns 24.11.2012 15:48:39 +0200 - build 2973

1. Continuation of 2972.

w17 23.11.2012 18:15:56 +0400 - build 2972

1. Continuation of 2791
   [System Properties] malfunction in file attributes dialog on old Windows versions

shmuel 23.11.2012 11:51:43 +0200 - build 2971

1. Plugins API: in GetDirList and FSF.FarRecursiveSearch functions, some fields of PluginPanelItem structure
   contained garbage.

shmuel 22.11.2012 19:58:34 +0200 - build 2970

1. Forum: Menu.Show(Items,"",0x8+0x80,Idx) does not position to item with number Idx.

drkns 22.11.2012 19:41:01 +0200 - build 2969

1. Excessive SetCurrentDirectory call in launcher.

lort 22.11.2012 21:06:41 +0400 - build 2968

1. Crash when copying selected block in viewer.

shmuel 21.11.2012 23:59:49 +0200 - build 2967

1. Correction of 2966.

shmuel 21.11.2012 22:19:38 +0200 - build 2966

1. M#2163: LUA: DisableOutput flag does not work

w17 21.11.2012 22:16:55 +0400 - build 2965

1. truemod broken aka 'no' to regexps (from sonar)

drkns 21.11.2012 00:02:24 +0200 - build 2964

1. Continuation of 2953.1.

drkns 20.11.2012 21:44:24 +0200 - build 2963

1. 0002203: Import malfunction

drkns 20.11.2012 21:31:35 +0200 - build 2962

1. 0002202: Crash on plugin loading/unloading

svs 20.11.2012 13:03:29 +0400 - build 2961

1. Duplicate hotkeys in "Plugins manager settings" dialog and viewer settings

2. Correction of help, including TI:
   #15 System.SetAttrFolderRules
   #29 System.WipeSymbol
   #31 System.FlagPosixSemantics
   #37 System.ShowCheckingFile
   #63 System.PluginMaxReadData
   #51 System.SilentLoadPlugin
   #17 System.ExceptRules
   #23 System.CopyBufferSize
   #36 System.SubstNameRule
   #42 System.SubstPluginPrefix
   #69 System.CopySecurityOptions
   #25 Interface.CursorSize1..Interface.CursorSize4
   #1  Editor.WordDiv
   #19 Editor.ReadOnlyLock
   #20 Editor.FileSizeLimit
   #16 XLat.WordDivForXlat

3. Options::MaxPositionCache ("System.MaxPositionCache", TechInfo #11) is removed as deprecated.

4. Options::Dialogs.SelectFromHistory ("Dialog.SelectFromHistory", TechInfo #41) is removed as deprecated.

svs 20.11.2012 12:48:10 +0400 - build 2960

1. Typos

2. Conflicting hotkeys in editor settings dialog

svs 20.11.2012 11:01:50 +0400 - build 2959

1. Edit::Search() content moved to SearchString()

2. GetSearchReplaceString() redone
   Title and SubTitle parameters are added
   Case, WholeWords, Reverse and Regexp parameters are now pointers.
   If any of the parameters is nullptr then the corresponding option in dialog is set to Disable (or has to be hidden?)

2. Help: proceeding with help.
   Now Case, WholeWords and Regexp options are available
   Initial options are taken from global values:

      Case             Global->GlobalSearchCase         (as in editor)
      WholeWords       Global->GlobalSearchWholeWords   (as in editor)
      Regexp           Global->Opt->HelpSearchRegexp    (standalone, "Help.HelpSearchRegexp" of Bool type)

   Next:
     Next line in file must be "cleared" from markup before feeding it to SearchString()

drkns 19.11.2012 23:08:59 +0200 - build 2958

1. Forum: pressing Enter on a boolean value in far:config causes a crash.

drkns 19.11.2012 23:04:39 +0200 - build 2957

1. Continuing global variables elimination.

drkns 19.11.2012 13:47:53 +0200 - build 2956

1. Correction of 2953.1.

w17 19.11.2012 14:53:38 +0400 - build 2955

1. Correction of 2926
   'plugin' flag lost in refactoring which lead to plugin settings loading failure from default configuration.

shmuel 19.11.2012 12:11:54 +0200 - build 2954

1. Far.Cfg_Get() macrofunction works for all settings displayed in far:config.

drkns 18.11.2012 20:44:29 +0200 - build 2953

1. Say "No!" to dr^W global variables and especially to global objects initialized in random order.
   Part #1: Now there is one global object Global, please put everything in it, not in hpp files.
   To be continued.

2. A bonus to #1: dialog handling function and thread function can be class members now.

drkns 18.11.2012 09:55:22 +0200 - build 2952

1. Correction of alignment for debug builds.

shmuel 18.11.2012 01:29:46 +0200 - build 2951

1. FAR crash if msgbox() was called in a plugin, right after Plugin.Call(), and then Esc was pressed,
   given that a macro is bound to Esc in dialogs.

svs 13.11.2012 20:32:42 +0400 - build 2950

1. First approximation for search in help.
   F7 key as usual.
   The results are presented as links to found topics.

   The search is dumb so far, the occurrence of entered substring is searched in lines read from current help file.

   Next:
   1. Debug
   2. Replace GetString(...) with GetSearchReplaceString(false,...) with all bells and whistles (Case, WholeWords and Regexp fields)
   3. something more

zg 12.11.2012 15:08:38 +0200 - build 2949

1. forum: Far.DisableHistory is broken for everyone or just me ?

lort 11.11.2012 16:47:46 +0400 - build 2948

1. If a menu does not fit the screen height, draw it upwards.

w17 11.11.2012 16:31:30 +0400 - build 2947

1. Another correction of 2943

lort 11.11.2012 15:27:16 +0400 - build 2946

1. Correction of 2944

w17 11.11.2012 09:54:32 +0400 - build 2945

1. Correction of 2943

t-rex 11.11.2012 03:34:35 +0200 - build 2944

1. Fix for numerous bugs in new menus, for example:
   - right click in drive menu called emenu twice
   - for filter (CtrlAltF) in filter menu, BS didn't edit the filter
   The meaning of the fix: VMenu2:Call() (i.e. menu processing function)
   must return true if it has processed the event ant there is nothing more to do
   (regardless of what encyclopedia says about the return codes of DN_*).
   There had been a mess before.

w17 10.11.2012 22:33:19 +0400 - build 2943

1. Fix for viewer search with persistent selection off.

drkns 10.11.2012 20:17:07 +0200 - build 2942

1. Another bug with new menus - for regular dialogs InitDialogObjects() was called twice, sometimes with interesting consequences.

lort 09.11.2012 23:06:48 +0400 - build 2941

1. couldn't close the print window (M#2193.1)

2. Incorrect calculation of menu position.

3. ECTL_REALTOTAB, ECTL_TABTOREAL and ECTL_SELECT malfunctional in wrapper

t-rex 09.11.2012 17:29:21 +0200 - build 2940

1. "Right click selects files" option in "Panel Settings".

shmuel 08.11.2012 18:25:29 +0200 - build 2939

1. M#2192: artifacts after macro loading errors.

shmuel 08.11.2012 10:38:50 +0200 - build 2938

1. Correction of 2923 (_control87 call moved from FAR to LuaMacro plugin).

t-rex 07.11.2012 20:33:12 +0200 - build 2937

1. On file association start, if associated app couldn't be detected by FAR
   buf the start was successful, then starting error was displayed.
   It is especially actual for Windows 8 metro app associations.

lort 07.11.2012 21:56:16 +0400 - build 2936

1. When autocompletion menu was open, "." could not be entered from numeric keyboard.

shmuel 06.11.2012 21:41:14 +0200 - build 2935

1. M#2189: In editor, Keys('CtrlX') always uses Windows clipboard.

lort 06.11.2012 20:21:06 +0400 - build 2934

1. Dlg.Id and Dlg.Owner malfunction with open autocompletion menu.

2. Correction of 2897.3

w17 06.11.2012 14:08:45 +0400 - build 2933

1. viewer dump mode autodetect fixed

w17 06.11.2012 09:49:47 +0400 - build 2932

1. correction of 2915

shmuel 05.11.2012 18:00:53 +0200 - build 2931

1. Correction of 2923 ("debug asserion failed" for x64).

w17 05.11.2012 18:18:43 +0400 - build 2930

1. M#2187: malfunctional "@" and SilentExternal for external Viewer/Editor call

w17 05.11.2012 06:29:56 +0400 - build 2929

1. M#2185: Error while setting colors of sorting groups files

shmuel 04.11.2012 01:06:54 +0200 - build 2928

1. M#2183: A macro cannot insert the end of line.

drkns 03.11.2012 19:26:52 +0200 - build 2927

1. Another couple of issues.

drkns 03.11.2012 17:42:08 +0200 - build 2926

1. Continuing refactoring of configdb.

2. Refactoring of BitFlags.

zg 03.11.2012 17:01:30 +0200 - build 2925

1. correction of VCTL_SETKEYBAR and Param2=-1.

drkns 02.11.2012 23:59:11 +0200 - build 2924

1. Correction of 2920.

shmuel 02.11.2012 23:03:34 +0200 - build 2923

1. Experimental: preventing crashes from division by zero for plugins setting FPU exceptions on.

shmuel 02.11.2012 17:59:31 +0200 - build 2922

1. FarMacroCall structure is streamlined.

drkns 02.11.2012 02:18:10 +0200 - build 2921

1. Continuation of 2920.

drkns 02.11.2012 02:05:17 +0200 - build 2920

1. Slightly refactoring of configdb.

zg 01.11.2012 23:05:49 +0200 - build 2919

1. OPEN_FROM_MASK is removed for uselessness.

zg 01.11.2012 22:16:49 +0200 - build 2918

1. ViewerMode.Type -> ViewerMode.ViewMode.

2. VSMT_HEX -> VSMT_VIEWMODE.

w17 01.11.2012 18:06:23 +0400 - build 2917

1. correction of 2913, 2914, 2916 - 'panelmodes' were not loaded

w17 01.11.2012 16:05:57 +0400 - build 2916

1. correction of 2913, 2914
   The parameter name in Far.exe.ini changed to TemplateProfile.
   By default this is a path to FILE (%FARHOME%\Default.farconfig).

w17 01.11.2012 12:52:48 +0400 - build 2915

1. M#2181: crash after VE_READ.

w17 31.10.2012 11:54:41 +0400 - build 2914

1. correction of 2913 - fixing broken export

w17 30.10.2012 20:12:55 +0400 - build 2913

1. M#2177: Implement possibility of default settings/profile creation
   Settings are imported from Default.farconfig file, its location is given by
   TemplateProfileDir  parameter in Far.exe.ini (%FARHOME%\Default is default),
   or via command line '/t "TemplateDir"'.  Settings are imported at the moment of
   settings DB file open and only if the file is missing.

zg 30.10.2012 00:20:23 +0200 - build 2912

1. Flags field added to OpenShortcutInfo. FOSF_ACTIVE is set
   if OPEN_SHORTCUT is called in the active panel
   and not set for the passive one.

2. from Alexey Samlyukov: FarMacroValue.Length -> FarMacroValue.Size

lort 29.10.2012 18:35:55 +0400 - build 2911

1. Return scren redraw in dialog destructor.

2. History menu remained on screen after launch a command displaying nothing.

shmuel 29.10.2012 16:02:33 +0200 - build 2910

1. No 'P' symbol in upper left corner of the screen while running editor/viewer macro starting from mf.waitkey(0)

drkns 28.10.2012 21:40:06 +0200 - build 2909

1. Warnings.

zg 28.10.2012 17:11:29 +0200 - build 2908

1. gcc warnings.

zg 28.10.2012 01:57:25 +0200 - build 2907

1. ACTL_GETWINDOWINFO returned wrong Type and TypeName for menus.

2. ACTL_GETWINDOWTYPE returned wrong Type for menus.

3. captions acquisition did not work for menus.

zg 27.10.2012 23:55:03 +0200 - build 2906

1. regression in 1605.2.

zg 27.10.2012 22:54:17 +0200 - build 2905

1. correction of 2882.

shmuel 27.10.2012 20:52:46 +0200 - build 2904

1. If a plugin returns 1 or INVALID_HANDLE_VALUE on OPEN_FROMMACRO call then Plugin.Call returns true.

shmuel 25.10.2012 22:48:24 +0200 - build 2903

1. Correction of 2898.

2. Forum: macros able to run while another macro works, i.e. instead of key name recognition
   an appropriate macro is started if there's one.

shmuel 25.10.2012 12:10:48 +0200 - build 2902

1. Correction of 2898.

w17 25.10.2012 13:41:27 +0400 - build 2901

1. M#2179, RCtrlIns/Num0 are not processed in FastFind (CtrlIns is enough to get the text)

lort 24.10.2012 19:07:51 +0400 - build 2900

1. Fix for redraw in autocompletion.

2. Disable CtrlF5 in history and F11 in plugins menu.

shmuel 24.10.2012 01:52:21 +0200 - build 2899

1. Plugin.Call asynchronous call returns:
   - false if the plugin is not found
   - true if the call is asynchronous in fact
   - else the same as with synchronous call

shmuel 24.10.2012 00:16:56 +0200 - build 2898

1. M#2170: Malfunction of Plugin.Call 'async' mode, which should be activated by mmode(3, 1) command.

lort 23.10.2012 19:19:23 +0400 - build 2897

1. All menus are redone and now based on dialogs, VMenu class is now used for DI_LISTBOX и DI_COMBOBOX
   implementation only, VMenu2 in other places.

2. DN_LISTHOTKEY is now sent only if a hotkey has been really pressed.

3. Lists without DIF_LISTNOCLOSE flag close the dialog on mouse button release, not on button press.

shmuel 21.10.2012 10:41:54 +0200 - build 2896

1. If a macro had DisableOutput and Plugin.Call() displayed a dialog, it was not shown on screen.

shmuel 20.10.2012 19:43:21 +0200 - build 2895

1. Four data types able to return Plugin.Call are appended with another one:
   "binary value" - this is a string that can contain any data and is not affected with
   UTF-16LE -> UTF-8 transformation.

zg 20.10.2012 11:21:39 +0200 - build 2894

1. correction of 2893.

shmuel 20.10.2012 08:21:04 +0200 - build 2893

1. Plugin.Call can return one or more values, each of then can be:
   64-bit integer, floating point number, string or boolean value.
     - For that, the invoked plugin must fill in the FarMacroCall structure and return the pointer to it.
     - This structure must be either static or allocated, i.e. do not place it in OpenW function's stack.
     - If non-zero Callback is specified in the structure then the function will be called.
       At the moment of Callback call the data is already copied and can be freed.
   If the plugin wants just return true or false then it has to return 1 or 0 accordingly.
   The change introduced in build 2891 is cancelled by this one.

shmuel 19.10.2012 15:49:37 +0200 - build 2892

1. Refactoring.

shmuel 18.10.2012 23:55:32 +0200 - build 2891

1. Plugin.Call returns 0 if the plugin is not found (i. e. as before transition to Lua).

svs 15.10.2012 17:47:39 +0400 - build 2890

1. "Typos"

svs 15.10.2012 12:09:58 +0400 - build 2889

1. FAR constants (for MsX etc the constants are reserved in "right places")

2. SZLOG removed - use std, for example, _SHMUEL (details in SYSLOG-RU)

3. MACRO_OP_* removed

shmuel 15.10.2012 01:36:45 +0200 - build 2888

1. Refactoring.

shmuel 14.10.2012 15:29:04 +0200 - build 2887

1. Far->LuaFAR->LuaMacro data exchange protocol is slightly simplified.

zg 14.10.2012 04:05:26 +0200 - build 2886

1. on error while macro initialization the upper left screen character "freezed".

shmuel 13.10.2012 14:23:03 +0200 - build 2885

1. If a macro launched by a plugin in panels ended with transition to editor or viewer,
   then the upper left corner of the screen was displayed incorrectly.

zg 12.10.2012 03:04:19 +0200 - build 2884

1. correction of 2882.

zg 12.10.2012 01:24:21 +0200 - build 2883

1. correction of 2882.

zg 11.10.2012 23:22:48 +0200 - build 2882

1. experimental.
   macros work in interactive objects, such as dialogs created from macros.

zg 11.10.2012 21:24:04 +0200 - build 2881

1. FAR crash if no luamacro plugin present while macros do exist.

shmuel 11.10.2012 17:14:46 +0200 - build 2880

1. MacroControl(MCTL_GETLASTERROR) function operating is restored with the following changes:
   - ErrCode can take only 2 values: MPEC_SUCCESS and MPEC_ERROR.
   - ErrPos.X has no meaning and must be ignored.

shmuel 09.10.2012 11:34:47 +0200 - build 2879

1. MacroControl(MCTL_SENDSTRING,MSSC_CHECK) function also checks files if Sequence[0]=='@'.

t-rex 08.10.2012 21:26:43 +0200 - build 2878

1. Fixes in wrapper for ECTL_EXPANDTABS, ECTL_GETBOOKMARKS and ECTL_GETSTACKBOOKMARKS.

2. BookmarkCount and SessionBookmarkCount now are of size_t in EditorInfo, fr uniformity with EditorBookmarks.
   (it does not affect plugins work).

shmuel 08.10.2012 08:29:17 +0200 - build 2877

1. Fix: (in editor) "after macro call, text is displayed on screen only after key press".

t-rex 07.10.2012 15:56:20 +0200 - build 2876

1. Warnings, MACROMODEAREA type is set where needed.

shmuel 07.10.2012 09:13:46 +0200 - build 2875

1. Forum: quotation marks (") no longer supported in macros.

shmuel 07.10.2012 00:43:45 +0200 - build 2874

1. Displaying a message at macro writing attempt if LuaMacro plugin is not loaded.
   (M#2161: Macros malfunction if LUA dll's set is incomplete).

zg 07.10.2012 00:17:08 +0200 - build 2873

1. ECTL_EXPANDTABS - Param2 is expected as a pointer to intptr_t.
   x64 have to be fixed if ECTL_EXPANDTABS is used.

2. error in ECTL_SETKEYBAR when Param2==-1.

t-rex 06.10.2012 20:40:23 +0200 - build 2872

1. x64 warnings in DialogBuilder.

t-rex 06.10.2012 18:48:30 +0200 - build 2871

1. For FSF functions, intptr_t is removed where it has no sense at all,
   x64 plugins have to be rebuilt and fixed if qsort/bsearch/FarRecursiveSearch are used.

svs 05.10.2012 13:55:08 +0400 - build 2870

1. SQLite 3.7.14.1

shmuel 05.10.2012 01:49:35 +0200 - build 2869

1. M#2159: Plugin.Menu waits for menu closed and prevents use of Keys() for hotkey selection in menu

2. Plugin.Menu, Plugin.Config and Plugin.Command macrofunctions return false/true.

w17 04.10.2012 16:37:06 +0400 - build 2868

1. Visible leading space(s) in dialog static text

w17 04.10.2012 15:26:15 +0400 - build 2867

1. 0002167: Crash on Copy File/Folder Interrupt

zg 04.10.2012 05:41:56 +0200 - build 2866

1. ECTL_SETPOSITION did not work in wrapper.

w17 03.10.2012 23:49:25 +0400 - build 2865

1. Viewer assert for looooooooooong lines

shmuel 03.10.2012 16:05:55 +0200 - build 2864

1. Disable macro recording if LuaMacro plugin is not loaded.
   (M#2161: Macros malfunction if LUA dll's set is incomplete).

w17 03.10.2012 12:50:50 +0400 - build 2863

1. Loacl [x] ShowWhiteSpace broken in editor (and not only there)

drkns 02.10.2012 22:11:59 +0200 - build 2862

1. 0002165: Encoding selection cancellation

shmuel 02.10.2012 18:40:00 +0200 - build 2861

1. Erroneous rollback of changes in build 2859.

shmuel 02.10.2012 17:40:00 +0200 - build 2860

1. M#2160: Macro with Menu.Select works in Shell but not in Dialog and Editor.

svs 02.10.2012 17:43:33 +0400 - build 2859

1. Macro: Panel.Item(typePanel,Index,TypeInfo) returns true/false for
    TypeInfo = 8 (Selected) and 10 (SortGroup)

2. Macro: panel.setpath(), fexist(), beep(), Window.Scroll() return true/false

shmuel 02.10.2012 14:30:00 +0200 - build 2858

1. M#2162: FAR crash at start when used as editor for Git (perhaps because of the new macro engine).

zg 01.10.2012 16:18:35 +0200 - build 2857

1. FAR_LUA is removed completely, so is the code that was excluded by its presence.

svs 01.10.2012 16:05:34 +0400 - build 2856

1. Macro: Plugin.Exist(GUID) now returns true/false.
   Instead of
     if Plugin.Exist(GUID) > 0 then
   write
     if Plugin.Exist(GUID) then

shmuel 01.10.2012 03:25:00 +0200 - build 2855

1. Correction of 2854 for more common case.

shmuel 01.10.2012 02:05:00 +0200 - build 2854

1. Dlg.GetValue error (from Aidar).

shmuel 30.09.2012 13:50:00 +0200 - build 2853

1. Issue#13: Plugin.Menu waits for menu close instead of returning immediately after menu show.

zg 30.09.2012 03:41:42 +0200 - build 2852

1. FAR_LUA is removed from plugin.hpp.

zg 30.09.2012 03:26:20 +0200 - build 2851

1. Spring project merged (https://github.com/shmuz/Spring).
   thereby Lua 5.1 is used instead of macro language (http://www.lua.org).
   all macros are broken.

drkns 29.09.2012 15:20:18 +0200 - build 2850

1. Correction of 2844 for fields with input mask.

2. far:config crash after changes in api.

3. Projects for vs 2012.

zg 29.09.2012 13:35:44 +0200 - build 2849

1. correction of 2848: UserData.Data was not freed for elements which did not match search criterions.

zg 29.09.2012 03:30:26 +0200 - build 2848

1. correction of 2807.1: freeing UserData.Data in search and some other places.

drkns 29.09.2012 00:47:40 +0200 - build 2847

1. Finishing (I hope) this codepage related stuff. For the future, I'd appreciate proper fixes instead of monkey patching.

w17 28.09.2012 08:45:42 +0400 - build 2846

1. M#2157: Alt-F7: file content search gives no result on fresh 64-bit versions (aka 2838 continue)

w17 28.09.2012 08:09:25 +0400 - build 2845

1. GETTEXT returned L"\0"; instead of empty string

drkns 27.09.2012 22:45:22 +0200 - build 2844

1. Highlight text in dialog text field ending with spaces or tabulations.

drkns 27.09.2012 19:13:43 +0200 - build 2843

1. HANDLE hPanel removed from ProcessConsoleInputInfo.

w17 27.09.2012 11:58:13 +0400 - build 2842

1. M#2156: Shift-F4: file contents lost on save (aka 2838 continue)

w17 26.09.2012 10:49:55 +0400 - build 2841

1. another excessive one

w17 26.09.2012 10:14:11 +0400 - build 2840

1. wrong fix for a 'typo', rolling back

w17 26.09.2012 10:00:52 +0400 - build 2839

1. -typos in dialog.cpp (thnx sonar)

w17 25.09.2012 19:48:01 +0400 - build 2838

1. x64 Editor fix

svs 24.09.2012 11:32:50 +0400 - build 2837

1. Mantis#0001687: ProcessConsoleInput
   Open.
   Bugs go to new tickets.

w17 24.09.2012 10:52:12 +0400 - build 2836

1. Debug build fix

zg 23.09.2012 21:22:44 +0200 - build 2835

1. ACTL_EJECTMEDIA is removed.

zg 23.09.2012 20:56:39 +0200 - build 2834

1. from Alexey Samlyukov:
   PluginPanelItem.UserData.UserData -> PluginPanelItem.UserData.Data
   PluginPanelItem.UserData.Callback -> PluginPanelItem.UserData.FreeData

drkns 23.09.2012 20:31:24 +0200 - build 2833

1. intptr_t & DlgBuilder

2. Leave vswscanf for gcc.

zg 23.09.2012 20:03:02 +0200 - build 2832

1. vc has no vswscanf.

zg 23.09.2012 19:12:13 +0200 - build 2831

1. in API, some UINT/DWORD are replaced with uintptr_t.

zg 23.09.2012 17:19:39 +0200 - build 2830

1. int is replaced with intptr_t throughout whole API.

zg 23.09.2012 03:09:28 +0200 - build 2829

1. Reserved is added to a couple of structures.

2. StructSize field is added to the following structures:
   FarDialogEvent
   FarList

zg 23.09.2012 01:52:19 +0200 - build 2828

1. ViewerMode is redone. Wrap&WordWrap -> Flags. Hex -> Type.

zg 23.09.2012 00:37:48 +0200 - build 2827

1. PanelMode got rid of StructSize field.

2. some structures lost the Reserved field.

drkns 23.09.2012 00:00:16 +0200 - build 2826

1. A new opti "cursor at end" in editor settings, when switched on, search places the cursor to the end of found text

2. "select found" option moved from search dialog to editor settings dialog.

zg 22.09.2012 22:38:35 +0200 - build 2825

1. in InfoPanelLine, Separator is replaced with Flags. IPLFLAGS_SEPARATOR flag is added.
   all native plugins are broken.

zg 22.09.2012 21:37:30 +0200 - build 2824

1. in ECTL_SETKEYBAR/VCTL_SETKEYBAR, FarSetKeyBarTitles must be passed instead of KeyBarTitles.

zg 22.09.2012 04:39:38 +0200 - build 2823

1. From Shmuel Zeigerman: correction of 2822.

zg 22.09.2012 02:25:21 +0200 - build 2822

1. for obvious reasons, PInfo and GInfo fields in FarGetPluginInformation are made pointers.
   PCTL_GETPLUGININFORMATION functioning is unchanged.

zg 22.09.2012 01:17:59 +0200 - build 2821

1. StructSize field added to the following structures:
   FarSettingsItem
   FarSettingsEnum
   FarSettingsValue
   all native plugins are broken.

zg 21.09.2012 17:01:33 +0200 - build 2820

1. ViewerInfo got rid of FileName field, like in editor.

2. in order to obtain file name, VCTL_GETFILENAME is added, similar to ECTL_GETFILENAME.

3. correction of 2816 for ANSI plugins.

4. all native plugins are broken.

w17 21.09.2012 13:02:47 +0400 - build 2819

1. M#1870: in Show selected first, selection of the last item gets the cursor "jump" to the item

zg 21.09.2012 02:25:27 +0200 - build 2818

1. ACTL_ENABLEREDRAW is removed.

zg 21.09.2012 02:15:53 +0200 - build 2817

1. SessionBookmarkCount field is added to EditorInfo.

zg 21.09.2012 02:01:45 +0200 - build 2816

1. for ECTL_GETFILENAME the buffer size is passed in Param1.

zg 21.09.2012 00:43:26 +0200 - build 2815

1. EditorBookMarks -> EditorBookmarks. Size is the size of allocated memory as in FarGetPluginPanelItem.
   required size can be obtained with ECTL_GETBOOKMARKS/ECTL_GETSESSIONBOOKMARKS call.
   Count returns bookmarks count.

zg 20.09.2012 22:32:55 +0200 - build 2814

1. correction of 2807.1.

zg 20.09.2012 21:24:01 +0200 - build 2813

1. FSF.DeleteBuffer is removed.

2. FSF.CopyToClipboard got 1 extra parameter - the type of the block being placed to clipboard. FCT_STREAM - the streaming one. FCT_COLUMN - the vertical one.
   returned value is TRUE in case of success, FALSE otherwise.

3. FSF.PasteFromClipboard writes to Data maximum of Length characters including '\0' from the clipboard. the returned value is the required buffer size.
   if there's no requested content type in the clipboard then the returned value is 0.
   FCT_ANY - return any block.
   FCT_STREAM - return streaming block only.
   FCT_COLUMN - return vertical block only.

4. all native plugins are broken.

w17 20.09.2012 16:44:39 +0400 - build 2812

1. size_t in Read/Write

zg 20.09.2012 13:28:23 +0200 - build 2811

1. changes in ProcessPanelEventInfo by Alexey Samlyukov.
   all native plugins are broken.

2. GetVirtualFindDataInfo, FreeVirtualFindDataW and GetVirtualFindDataW are removed.

lort 19.09.2012 19:52:41 +0400 - build 2810

1. A new command ACTL_ENABLEREDRAW, Param1=1 - enable FAR window redraw, Param1=0 - disable it.
   Returned value is the previous state, to obtain the current state set Param1=-1

w17 19.09.2012 13:40:39 +0400 - build 2809

1. correction of 2794

zg 19.09.2012 00:47:09 +0200 - build 2808

1. correction of 2807.1.

zg 18.09.2012 22:33:00 +0200 - build 2807

1. 0001699: Ease the use of UserData for storing data by panel plugins
   UserData in PluginPanelItem is a structure.
   UserData is a pointer to anything.
   Callback is a function that removes UserData.
2. As plugin authors do not want UserData contain the plugin handle and demand it be passed via Callback,
   FreePluginDirList got an additional parameter.
   all native plugins are broken.

zg 17.09.2012 16:55:00 +0200 - build 2806

1. correction of 2799.

w17 17.09.2012 12:54:32 +0400 - build 2805

1. fix for 2797.1

zg 17.09.2012 03:15:55 +0200 - build 2804

1. DM_GETTEXTLENGTH & DM_GETTEXTPTR are removed.
   some native plugins are broken.

zg 16.09.2012 20:27:31 +0200 - build 2803

1. API is changed: the type for string lengths and in-string offsets is changed from int to intptr_t.
   all native plugins are broken. also, side effects are possible for x64 FAR.

2. в ViewerSelect тип BlockLen __int64.
   all native plugins are broken.

zg 16.09.2012 18:29:46 +0200 - build 2802

1. for OPEN_COMMANDLINE, pointer to OpenCommandLineInfo is passed instead of pointer to a string.
   all native plugins are broken.

zg 16.09.2012 17:12:23 +0200 - build 2801

1. StructSize field is added to the following structures:
   EditorServiceRegion
   EditorSetParameter
   EditorUndoRedo
   EditorGetString
   EditorSetString
   EditorInfo
   EditorBookMarks
   EditorSetPosition
   EditorSelect
   EditorConvertPos
   EditorSaveFile
   all native plugins are broken.

zg 16.09.2012 15:48:35 +0200 - build 2800

1. StructSize field is added to the following structures:
   ViewerSetMode
   ViewerSelect
   ViewerSetPosition
   all native plugins are broken.

zg 16.09.2012 14:35:28 +0200 - build 2799

1. StructSize field is added to the following structures:
   FarGetPluginPanelItem
   PanelRedrawInfo
   CmdLineSelect
   ActlEjectMedia
   ActlMediaType
   FarGetValue
   FarSetColors
   ProgressValue
   all native plugins are broken.

w17 12.09.2012 01:00:31 +0400 - build 2798

1. Editor [Shift]F8 and KeyBar

w17 11.09.2012 18:33:46 +0400 - build 2797

1. M#868: Text garbled when encoding changed to an "incompatible" one -- [Show] button is added

2. M#1555: When file access denied, the number of hard links is always 1

svs 07.09.2012 16:44:59 +0400 - build 2796

1. "FARCONFIGMODE" removed

2. Some help for TI:
     #9  System.CmdHistoryRule
     #27 System.ConsoleDetachKey
     #34 System.QuotedSymbols
     #50 System.QuotedName
     #38 Interface.AltF9
     #61 Dialog.CBoxMaxHeight
     #44 Editor.EditorUndoSize
     #32 Editor.CharCodeBase
     #13 Editor.BSLikeDel
     #18 Editor.EditorF7Rules
     #67 Editor.AllowEmptySpaceAfterEof
     #24 Interface.ShiftsKeyRules

3. Interface.ShowTimeoutDACLFiles and Interface.ShowTimeoutDelFiles are removed

4. Interface.RedrawTimeout is added

svs 07.09.2012 14:09:44 +0400 - build 2795

1. Some help for TI:
     #75 Panel.ShellRightLeftArrowsRule
     #43 Panel.Layout.ScrollbarMenu
     #14 Panel.CtrlFRule
     #8  Panel.CtrlAltShiftRule
     #6  Panel.RightClickRule
     #79 System.ExcludeCmdHistory
     #45 System.Executor.RestoreCP
     #49 System.Executor.UseAppPath
     #54 System.Executor.ExcludeCmds
     #74 System.Executor.FullTitle
     #78 Interface.FormatNumberSeparators
     #73 System.Executor.BatchType

2. FAR sets FARCONFIGMODE = RO variable while working with configuration bases
   in read-only mode ("/ro" switch is set).
   In normal DB operations mode, the FARCONFIGMODE variable is absent.

w17 05.09.2012 16:19:47 +0400 - build 2794

1. M#2135: typing 'shift + letter' diacritic sequence also outputs the + character
   (from Maximus)

svs 04.09.2012 20:02:31 +0400 - build 2793

1. SQLite 3.7.14

2. Mantis#0002141: $AKey malfunction in macros for MsWheelUp/MsWheelDown

3. Some help for TI:
     #12 Help.ActivateURL
     #47 Confirmations.EscTwiceToInterrupt
     #7  System.AllCtrlAltShiftRule
     #68 System.CASRule

w17 04.09.2012 19:41:42 +0400 - build 2792

1. M#2147 -- UTF7 excluded from FindFile 'AllCodepages'

drkns 27.08.2012 15:26:16 +0200 - build 2791

1. Properties could not be shown in the disk menu in old Windows versions.

drkns 25.08.2012 23:22:21 +0200 - build 2790

1. Info panel invocation could cause crash in some cases.

w17 14.08.2012 20:17:00 +0400 - build 2789

1. M#0002144: Interface.CtrlPgUp option change was not stored

w17 13.08.2012 13:40:46 +0400 - build 2788

1. continue 2787

w17 09.08.2012 17:32:48 +0400 - build 2787

1. far:config hex int editor

2. far:config BOOLEAN3 (3-state checkbox)

3. far:config help

4. other help corrections and minor code fix

w17 08.08.2012 15:51:16 +0400 - build 2786

1. M#2142: Specify the catalog for separate storage of history/cache and other settings
   UserLocalProfileDir parameter os added to Far.exe.ini, it can also ce specified in command line

w17 06.08.2012 08:23:39 +0400 - build 2785

1. correction of 2782

w17 31.07.2012 13:43:58 +0400 - build 2784

1. FileList fix
   Initializing all members, correcting the numbers of selected items on update.

w17 30.07.2012 22:12:25 +0400 - build 2783

1. VMENU_WRAPMODE is used again for DI_LISTBOX
   If the flag is present then wrap-stop, else wrap-none :)

w17 29.07.2012 13:54:09 +0400 - build 2782

1. M#2139: inconsistent error message when trying to create a file with same name as existing directory

w17 28.07.2012 22:39:24 +0400 - build 2781

1. 2754 again

w17 28.07.2012 19:35:45 +0400 - build 2780

1. another correction for 2766

w17 25.07.2012 17:59:51 +0400 - build 2779

1. M#2138 Shift-F1 does not work for archiver change

w17 25.07.2012 15:52:30 +0400 - build 2778

1. more of 2766 - not all checks were switched off

w17 25.07.2012 14:31:47 +0400 - build 2777

1. correction of wrap-stop for 'custom' with DN_GETVALUE.

w17 25.07.2012 13:20:38 +0400 - build 2776

1. once more, correction of 2754

w17 25.07.2012 12:56:49 +0400 - build 2775

1. continuation of 2766
   VMENU_WRAPMODE is ignored - all lists (custom with DN_GETVALUE too) are in 'wrap-stop' mode.
   if there is no objections, VMENU_WRAPMODE is pending for full removal.

w17 25.07.2012 00:57:48 +0400 - build 2774

1. M#0002137: VCTL_GETINFO returns true even if there's no viewers opened

w17 24.07.2012 12:36:10 +0400 - build 2773

1. keyboard.cpp - removed useless(?) piece of code

w17 23.07.2012 13:36:10 +0400 - build 2772

1. Launcher and Opt.Clock

drkns 20.07.2012 13:32:50 +0200 - build 2771

1. Correction in the launcher.

w17 20.07.2012 01:10:43 +0400 - build 2770

1. correction of 2675

drkns 19.07.2012 23:35:49 +0200 - build 2769

1. If volume free size could not be obtained, show "?" in panel status line instead of "0".

zg 14.07.2012 16:42:43 +0200 - build 2768

1. file corruption when copying files of size over 4gb when system copy routine is off.

w17 13.07.2012 22:29:29 +0400 - build 2767

1. correction of 2766

w17 13.07.2012 18:10:04 +0400 - build 2766

1. M#0001841, behavior changed for VMENU_WRAPMODE.
   On Maximus' proposal -- http://forum.farmanager.com/viewtopic.php?f=3&t=6563&p=85042&hilit=wrap#p88298

w17 11.07.2012 13:18:34 +0400 - build 2765

1. correction of 2754.
   check if something fixed for M#2128 has been broken.

2. correction of 2764.

w17 09.07.2012 13:32:49 +0400 - build 2764

1. 'plugincache.db' name depends on CPU arch.
   x86: plugincache32.db, x64: plugincache64.db, IA64: plugincacheIA64.db

w17 09.07.2012 07:59:11 +0400 - build 2763

1. The clock is not working in Far 3 Viewer

w17 09.07.2012 06:50:52 +0400 - build 2762

1. more correction on 2757

w17 08.07.2012 17:22:26 +0400 - build 2761

1. correction of correction of 2757 (10x Denis)

w17 08.07.2012 16:50:44 +0400 - build 2760

1. correction of 2757 (from Shmuel)

drkns 05.07.2012 21:37:04 +0200 - build 2759

1. 0002132: If FAR has started at directory junction, privilege elevation does not work

w17 05.07.2012 17:33:42 +0400 - build 2758

1. M#2130: Active panel contents disappear when info panel on the other panel is opened.

w17 05.07.2012 11:43:50 +0400 - build 2757

1.M#2129: After FAR startup, ".." in the root of a network share is missing.

w17 04.07.2012 12:16:35 +0400 - build 2756

1. Editor can read and write files with 2-byte encodings (932, 936, ...)
   Thus, there is no need to hide them in dialogs for ShiftF2/ShiftF4.

svs 03.07.2012 13:37:10 +0400 - build 2755

1. SQLite 3.7.13

w17 03.07.2012 12:05:08 +0400 - build 2754

1. M#2128: Folders containing more than 128 files at network share cannot be viewed

w17 28.06.2012 17:15:04 +0400 - build 2753

1. continuation of continuation of 2751

w17 28.06.2012 16:02:33 +0400 - build 2752

1. continuation of 2751

w17 28.06.2012 14:21:36 +0400 - build 2751

1. endless loop in editor replace reverse search
   replacement of, say, ';' to ';+' never finished...


w17 27.06.2012 21:44:29 +0400 - build 2750

1. another correction of 2748 - avoid code duplication

w17 27.06.2012 16:45:39 +0400 - build 2749

1. correction of 2748

w17 27.06.2012 15:43:12 +0400 - build 2748

1. "Use case sensitive sort" is renamed
   Better variants are welcome.

2. M#0821: "Save file position" option also affects the storing of the current encoding
   The encoding may be saved with no position (re)stored, the opposite is inaccessible.

3. M#0011: wrap/wwrap/unwrap saved in history
   Two more options in viewer settings for storing the encoding and word wrapping mode.

drkns 24.06.2012 16:21:55 +0200 - build 2747

1. Correction of 2738.

w17 23.06.2012 21:30:59 +0400 - build 2746

1. M#1632: Correction of click position for codepages and Goto
   ViewMode is clickable

w17 22.06.2012 17:48:01 +0400 - build 2745

1. M#1607: time setting error when copying to own share
   M$ surprise workaround

w17 22.06.2012 01:38:30 +0400 - build 2744

1. 2471 again - building the sorting table with the use of CompareString standard sorting

w17 21.06.2012 15:23:20 +0400 - build 2743

1. another correction of 2741

w17 21.06.2012 15:15:05 +0400 - build 2742

1. correction of 2741

w17 21.06.2012 14:53:36 +0400 - build 2741

1. EXPERIMENTAL. M#1343,2019 Alternative sort mode for 'Use case sensitive sort'
   It is not quite what it was in the old FAR, the more correct name is Uppercase First

drkns 20.06.2012 20:47:54 +0200 - build 2740

1. Correction of unknown reparse points displaying.

w17 20.06.2012 21:43:35 +0400 - build 2739

1. FileList::Find -- case sensitive/insetsitive compare logic fixed

drkns 17.06.2012 22:01:04 +0200 - build 2738

1. /i key (Set icon for FAR console window) moved to interface settings.
   Also, there is a possibility of setting of separate icon when launched under admin account.

drkns 17.06.2012 18:36:59 +0200 - build 2737

1. Search malfunction in ADS.

drkns 17.06.2012 13:10:15 +0200 - build 2736

1. Crash at start if access to start directory is denied.

drkns 16.06.2012 16:03:01 +0200 - build 2735

1. Panel.CtrlFRule (TI#14) is off by default.

drkns 16.06.2012 01:36:09 +0200 - build 2734

1. Correction of 2733.

drkns 15.06.2012 23:09:58 +0200 - build 2733

1. elevation: OpenVirtualDisk support and some makeup.

w17 15.06.2012 15:30:17 +0400 - build 2732

1. EXPERIMENTAL. M#2103: This version of %1 is not compatible with the version of Windows you're running

svs 14.06.2012 12:58:15 +0400 - build 2731

1. Mantis#0002068: Bug displaying panels size after a command (for example "pause")

drkns 13.06.2012 09:15:54 +0200 - build 2730

1. cppcheck warnings.

2. In 2724, displaying of speed of copying to nul was broken.

3. Using more common [u]intptr_t instead of <INT|LONG|DWORD>_PTR.

drkns 11.06.2012 16:18:00 +0200 - build 2729

1. With "auto save setup", highlighting groups were stored incorrectly.

drkns 09.06.2012 19:34:06 +0200 - build 2728

1. Endless search for all matches of /^$/m regex

zg 09.06.2012 18:44:36 +0200 - build 2727

1. 0002125: Errors with highlighting in editor

drkns 09.06.2012 14:02:57 +0200 - build 2726

1. Minor fixes in elevation and copier.

2. DialogBuilder did not support negative numbers input.

drkns 08.06.2012 15:36:03 +0200 - build 2725

1. Third state of checkboxes was not stored in settings.

w17 08.06.2012 09:51:35 +0400 - build 2724

1. M#1666: information about copying multiple files
	If [ ] show total size and [x] show time then current file copying speed is shown

w17 07.06.2012 13:35:13 +0400 - build 2723

1. M#2124: /$/m regex "non-standard" behavior

w17 05.06.2012 21:27:50 +0400 - build 2722

1. M#0000228: Save "delete file on close" flag in viewer/editor after F6

2. FileViewer(__int64 ViewerStartPos)

3. help invoked with far /ro [/rw]

svs 04.06.2012 16:21:07 +0400 - build 2721

1. A typo for Debug

2. SQLite 3.7.12.1

drkns 02.06.2012 14:54:41 +0200 - build 2720

1. Completion with CtrlSpace did not work.

drkns 02.06.2012 00:32:29 +0200 - build 2719

1. More on %pathext% + a couple of issues.

drkns 01.06.2012 14:56:00 +0200 - build 2718

1. Correction of privileges check.

drkns 01.06.2012 14:15:50 +0200 - build 2717

1. F4 and CtrlH processing is added to far:config.

drkns 01.06.2012 13:05:50 +0200 - build 2716

1. %pathext% variable was not expanded in mask groups.

drkns 01.06.2012 08:05:48 +0200 - build 2715

1. Forgotten debug code in 2702 :)

drkns 01.06.2012 00:09:33 +0200 - build 2714

1. Continuation of 2707.

drkns 31.05.2012 08:18:28 +0200 - build 2713

1. gcc build, a better way does exist.

w17 31.05.2012 01:08:59 +0400 - build 2712

1. gcc build (a better way may exist ?)

drkns 30.05.2012 20:57:08 +0200 - build 2711

1. Correction of 2131.2.

drkns 30.05.2012 19:27:12 +0200 - build 2710

1. A typo in 2707.

w17 30.05.2012 20:16:33 +0400 - build 2709

1. 1108: Wher Wipe (Alt-del) is used on a folder, the operation (and whole FAR) freezes
   far3 does not, but the problem can be reproduced partially.

2. viewer's minimal changes after 2707

drkns 30.05.2012 18:20:05 +0200 - build 2708

1. Correction of 2707.1.

drkns 30.05.2012 14:35:00 +0200 - build 2707

1. Configuration is reworked.
   - generalconfig.db is written only changes now.
   - far:config has got bool instead of int where it is needed.
   - the default key for console detach is now CtrlShiftTab.

2. Macro: PanelItem is removed, use Panel.Item.

3. printf elimination is continuing.

4. "/w-" key is added - "window mode" forced switching off.

w17 30.05.2012 05:51:52 +0400 - build 2706

1. 2122: Incorrect comparison of catalogs from menu item Commands - Compare Folders

w17 29.05.2012 13:30:08 +0400 - build 2705

1. 2115: Unable to view files found with a search in temporary panel

drkns 25.05.2012 08:35:25 +0200 - build 2704

1. Correction of 2702.2.

drkns 25.05.2012 00:34:44 +0200 - build 2703

1. Correction of 2702.1.

drkns 25.05.2012 00:06:38 +0200 - build 2702

1. 0002113: Viewer does not switch between files in search result list

2. 0002116: A message pops up when volume selection dialog is invoked.

drkns 24.05.2012 20:38:20 +0200 - build 2701

1. In some cases, file panel refresh could crash FAR.

drkns 24.05.2012 10:59:24 +0200 - build 2700

1. 0002112: Command line autocompletion does not work after commands history dialog use

w17 23.05.2012 09:54:59 +0400 - build 2699

1. Fix for 2679.1

w17 23.05.2012 05:08:42 +0400 - build 2698

1. Correction of 2676.1

drkns 21.05.2012 23:06:13 +0200 - build 2697

1. Some reduction of ImportedFunctions code.

w17 21.05.2012 13:19:37 +0400 - build 2696

1. 2679.4 - after Esc, the scan results are shown without a delay

drkns 21.05.2012 10:12:45 +0200 - build 2695

1. Correction of 2601.

w17 20.05.2012 12:08:44 +0400 - build 2694

1. 2107: Crash while copying

drkns 19.05.2012 23:08:50 +0200 - build 2693

1. Continuation of 2690.

drkns 18.05.2012 16:02:47 +0200 - build 2692

1. Continuation of 2689.

drkns 18.05.2012 15:24:56 +0200 - build 2691

1. Continuation of 2690.

drkns 18.05.2012 14:21:09 +0200 - build 2690

1. Completion can be fine-tuned via far:config.
   Interface.Completion.Use???? options, 1 - use always, 2 - with manual call only.

drkns 18.05.2012 13:48:24 +0200 - build 2689

1. Transition to paths like cd \\?\GLOBALROOT\Device\Harddisk0\Partition1, \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3 etc. did not work

drkns 18.05.2012 13:32:43 +0200 - build 2688

1. History settings are accessible via far:config.

2. Correction of 2683.

w17 18.05.2012 12:50:35 +0400 - build 2687

1. 2679.3 - after interrupting with Esc, the result of incomplete directory scanning is shown anyway

drkns 18.05.2012 09:49:36 +0200 - build 2686

1. Continuation of #0002102: ULF_UNIQUE without ULF_SORT could lead to incorrect order of items.

svs 18.05.2012 10:39:11 +0400 - build 2685

1. Mantis#0001491: CtrlStartPosChar does not work with the first line (caption does not count)
   NearTopicFound was not reset to 0 in the line next to fixed area.

2. SQLite 3.7.12

drkns 17.05.2012 20:42:33 +0200 - build 2684

1. Correction of 2683.

drkns 17.05.2012 20:18:36 +0200 - build 2683

1. UserDefinedList refactored. Now there is an unlimited number of separators, consecutive delimiters are not an error.
   Also 0002102: Path environment variable not processed correctly isf it contains empty strings between semicolons

w17 17.05.2012 13:38:16 +0400 - build 2682

1. 2679.2 - WIN key does not interrupt directory scan

w17 17.05.2012 13:12:53 +0400 - build 2681

1. 2679.1 - tilde

drkns 16.05.2012 21:45:11 +0200 - build 2680

1. Do not switch the autocompletion on while messages remain in console message queue.

w17 16.05.2012 13:58:29 +0400 - build 2679

1. M#2101: "quick search" may be cancelled with any key
   Color indication whether directory scan was aborted

2. 2676 - 'far /rw'

w17 16.05.2012 11:37:29 +0400 - build 2678

1. correction of 2676

svs 16.05.2012 10:04:17 +0400 - build 2677

1. Mantis#0002096: Navigation on text in search results menu
   (from DAtaMan)

   - if "Select found" is on then the search results are selected after Enter is pressed :)
   - Ctrl-Enter sets the cursor on the found text and selects it if "Select found" is on
   - F5 switches the menu size
   - Ctrl-Up/Down scrolls the editor text
   - Add sets the stacked bookmark
   - RCtrl-(0-9) - set the bookmark 0..9 in the current position, LCtrl-(0-9) - go to bookmark 0-9


w17 15.05.2012 19:31:43 +0400 - build 2676

1. M#2100: Problems with FAR 3 start from write protected volumes
   work with configuration databases unchanged.
   'far -ro' or 'ReadOnlyConfig=1' in far.exe.ini, no autodetection

2. gcc -warning

w17 14.05.2012 14:17:56 +0400 - build 2675

1. 2673 continuation...
   identification of FAT, an option for disabling the panel catalog monitoring feature on focus lose

svs 14.05.2012 13:54:16 +0400 - build 2674

1. Correction of build 2672
   API: add MPEC_BREAK_OTL

2. Mantis#0002059: Macro functions for accessing editor lines by their index
   For Editor.SetStr(), cursor positioning functionality is removed. Appropriate functions are intended for this

w17 12.05.2012 19:24:42 +0400 - build 2673

1. M#2098: File created by an external program did not appear in the active panel

svs 12.05.2012 14:00:53 +0400 - build 2672

1. Macro: "$break" operator is added - $rep and $while loops termination.

2. Correction of TVar::operator--() and TVar::operator++()

svs 11.05.2012 11:53:32 +0400 - build 2671

1. Mantis#0001891: Right-aligned extesions
   (from samlyukov)

svs 11.05.2012 11:34:27 +0400 - build 2670

1. Mantis#0002097: VF_ENABLE_F6 does not work
   (from Denis)
   Viewer.SetEnableF6() call took place later than planned.

2. Mantis#0001736: akey(1,0)==akey(1,1) Far 3.0.1931 far2.0.1807
   "rat race".

svs 10.05.2012 20:55:52 +0400 - build 2669

1. Adding isNumber() to TVar - is it a number? (Integer/Real/StrNumber)

2. Mantis#0002059: Macro functions for accessing editor lines by their index
   Now Line may be a "number" (Integer/Real/StrNumber), not only integer.
   Cast:
     Integer       -> Integer
     Real          -> Integer
     StrNumber     -> Integer
     Not StrNumber -> error (editor.[get|set|ins|del]str do not work)

   Also, if S was not specified it was equal to "0".

drkns 10.05.2012 16:16:31 +0200 - build 2668

1. And once more.

drkns 10.05.2012 16:12:43 +0200 - build 2667

1. Correction of 2666.1.

drkns 10.05.2012 15:26:08 +0200 - build 2666

1. Autocompletion issues:
   - affected elements match the condition %path%\<something>.%pathext% or mentioned in App Paths (DIF_EDITPATHEXEC/FIB_EDITPATHEXEC in api);
   - manual call moved from CtrlShiftEnd to CtrlSpace;
   - mode "without menu" is redone, now the sequential scan is used.

w17 10.05.2012 16:09:01 +0400 - build 2665

1. FAR crash after ShiftDel in cmdline autocompletion menu on file items

2. Don't show disabled UTF-7 line in encoding selection menu in viewer and editor

svs 10.05.2012 15:06:25 +0400 - build 2664

1. Mantis#0002059: Macro functions for accessing editor lines by their index
   (from DAtaMan)

    - Editor.GetStr works even if the editor is locked
    + after Editor.SetStr the cursor position is unchanged

svs 10.05.2012 12:06:11 +0400 - build 2663

1. Mantis#0002059: Macro functions for accessing editor lines by their index
   (from DAtaMan)

   1. Editor::GetStringByNumber minor optimization

   2. Added macro commands:

     N=Editor.DelLine([Line])
     S=Editor.GetStr([Line])
     N=Editor.InsStr([S[,Line]])
     N=Editor.SetStr([S[,Line]])

     when Line is not given, the functions process the current line.

   A text macro - empty lines removal:

     $If(Selected)
       %StartLine=Editor.Sel(0, 0);
       %EndLine=Editor.Sel(0, 2);
     $Else
       %StartLine=1;
       %EndLine=Editor.Lines;
     $End

     %Count=%EndLine-%StartLine+1;
     %i=%StartLine;
     Editor.Undo(0);
     $Rep(%Count)
       $If(Len(Trim(Editor.GetStr(%i)))==0)
         Editor.DelLine(%i);
       $Else
         %i=%i+1;
       $End
     $End
     Editor.Undo(1);

svs 05.05.2012 16:18:15 +0400 - build 2662

1. Mantis#0002095: Crash on history-guided transition to a plugin
   (from Maximus)

svs 04.05.2012 23:11:07 +0400 - build 2661

1. Correction of 2660

svs 04.05.2012 12:55:16 +0400 - build 2660

1. Mantis#0001879: FAR ignores the absence of EOL specified by a plugin
   (from Maximus)
   ANSI plugins...

2. Mantis#0002094: Duplication of Enter on Eval call (from a macro)
   Highly experimental.
   It needs checking.
   incl. callplugin etc...

drkns 04.05.2012 11:11:26 +0200 - build 2659

1. SetErrorMode was set later than necessary.

2. A couple of minor issues.

svs 03.05.2012 15:03:42 +0400 - build 2658

1. Mantis#0001879: FAR ignores the absence of EOL specified by a plugin
   (from Maximus)
   without DropModified.diff

2. Some help for editor option "Show white space"

svs 03.05.2012 10:04:23 +0400 - build 2657

1. Mantis#0001743: History switch off capability
   Correction of build 2338.

drkns 02.05.2012 21:30:43 +0200 - build 2656

1. Monitoring changes in folders opened in panels only if FAR has a focus.

drkns 02.05.2012 18:23:04 +0200 - build 2655

1. Continuation of 2655 - "Use Ctrl-PgUp to change drive" switch now has 3 positions.

drkns 02.05.2012 18:01:04 +0200 - build 2654

1. 0002093: Ctrl-PgUp shows volumes list only

svs 02.05.2012 10:25:17 +0400 - build 2653

1. Mantis#0002089: Crash on plugins menu call attempt in the macro editing dialog.

   endless loop in dialog.cpp#2782 at:
   return FrameManager->ProcessKey(Key);

   0. FrameManager->ProcessKey(KEY_F11); ==>
   1. Dialog::ProcessKey(KEY_F11) ==>
   2. Manager::ProcessKey(KEY_F11); here goes "if (!IsProcessAssignMacroKey)" and the whole block is skipped ==> CurrentFrame->ProcessKey(KEY_F11);
   4. goto 1

   There's no need for plugins in macro parameters changing dialog.
   But if you wish them here, then:
   1) Roll this patch back (remove "if (!IsProcessAssignMacroKey)" in Dialog::ProcessKey in processing of F11)
   2) in Manager::ProcessKey, move processing of KEY_F11 before "if (!IsProcessAssignMacroKey)"

   But then, IMHO, we'll get the "loop" again if processing of KEY_F11 in Manager::ProcessKey will be "closed" come day (see changelog for build 1360)

drkns 29.04.2012 16:19:25 +0200 - build 2652

1. 0002090: FAR crash at DIF_USELASTHISTORY

w17 29.04.2012 12:30:17 +0400 - build 2651

1. M#2091: Home button does not work in menu (M#2083)
   (from Maximus)

2. minimal 2605 correction

zg 28.04.2012 21:02:12 +0200 - build 2650

1. Problems with history while working with several FAR instances.

2. gcc warnings.

svs 28.04.2012 09:46:51 +0400 - build 2649

1. "far:config" check is now case independent.

2. Mantis#0001810: elevation request in Info panel ignores the configuration
   See the "Show CD drive parameters" option in "InfoPanel settings" dialog.
   It is on by default.

svs 27.04.2012 18:06:47 +0400 - build 2648

1. Mantis#0001876: The name of the edited/viewed file in the beginning of the window caption

   In Far:Config (so far), "Interface" and TEXT parameters "EditorTitleFormat" and "ViewerTitleFormat" are searched.
   The default format is: "%Lng %File".
   Here go the templates: "%File" - the file name, "%Lng" - a line from the lng file ("edit" or "view")
   Don't forget that there's the "TitleAddons" template appended to the caption.

drkns 27.04.2012 13:46:30 +0200 - build 2647

1. Correction of 2646.1.

drkns 26.04.2012 20:35:56 +0200 - build 2646

1. Misc on far:config.

t-rex 26.04.2012 19:44:06 +0200 - build 2645

1. far:config showed System.BoxSymbols with garbage.

svs 26.04.2012 17:50:01 +0400 - build 2644

1. Mantis#0001620: Full names in the keybar
   "To play around".
   "Stem|suffix1|suffix2|suffix3" variant is implemented.
   It depends on available length (for optimal fill).

   Consider "Bearb|eit|eiten". Depending on the width of the label one of 3 variants is chosen:
   "Bearb"         = "Bearb"
   "Bearb" + "eit" = "Bearbeit"
   "Bearb"+"eiten" = "Bearbeiten"
   i.e. the stem remains anyway.

   The memory for the label is dynamically allocated (there is no 16 characters limit).

   Before you rush for editing farlang.templ.m4 in order to adjust the labels for this kind of behavior,
   here's how you can practice:

   <?xml version="1.0" encoding="UTF-8" ?>
   <farconfig>
       <generalconfig>
           <setting key="KeyBarLabels.English.Shell" name="AltF4" type="text" value="Edit|..|Ext| Extern| External" />
           <setting key="KeyBarLabels.English.Shell" name="F4" type="text" value="Edit| File" />
       </generalconfig>
   </farconfig>

2. A help topic on volume selection configuration dialog is added.

3. Mantis#0002013: "cd ~" behavior

   "cd ~" is legalized - now it can be configured in command line configuration dialog.
   It if on by default and points to %FARHOME%.

w17 26.04.2012 17:39:15 +0400 - build 2643

1. Viewer CRCRLF (as in the editor)

2. continuation of 2605

drkns 26.04.2012 00:34:11 +0200 - build 2642

1. And once more.

drkns 26.04.2012 00:10:19 +0200 - build 2641

1. Correction of 2640.1.

drkns 25.04.2012 20:34:13 +0200 - build 2640

1. "To play around" - far:config in command line shows an internal browser-style configuration editor.
   Keep in mind that many of the settings require restart.

svs 25.04.2012 18:33:36 +0400 - build 2639

1. Correction of build 2626 on returning info about a macro.

zg 25.04.2012 15:13:51 +0200 - build 2638

1. a fix of gcc build with the use of winapi from mingw.org.

w17 25.04.2012 15:46:58 +0400 - build 2637

1. M#2087: Incorrect Esc processing in copy error dialog
   (from Maximus)

2. Removing a 'secret' key Help.FollowMouse

3. changelog -typos

svs 25.04.2012 11:57:18 +0400 - build 2636

1. Mantis#0000651: No link creation item in FAR menu

w17 25.04.2012 00:12:34 +0400 - build 2635

1. CtrlPgUp did not work in plugin panels if the Interface.CtrlPgUp option was off
   and the current directory in the file panel, which the plugin panel had been opened from, was the volume root.

drkns 24.04.2012 21:18:03 +0200 - build 2634

1. More correction on 2632.

svs 24.04.2012 17:44:04 +0400 - build 2633

1. Correction of 2632

svs 24.04.2012 17:16:28 +0400 - build 2632

1. Mantis#0001357: Show all types of Reparse Points in panels

   Recognizing:
    IO_REPARSE_TAG_MOUNT_POINT  0xA0000003L = Directory Junction or Volume Mount Point
    IO_REPARSE_TAG_SYMLINK      0xA000000CL = Directory or File Symbolic Link
    IO_REPARSE_TAG_DFS          0x8000000AL = Distributed File System
    IO_REPARSE_TAG_DFSR         0x80000012L = Distributed File System Replication
    IO_REPARSE_TAG_HSM          0xC0000004L = Hierarchical Storage Management
    IO_REPARSE_TAG_HSM2         0x80000006L = Hierarchical Storage Management2
    IO_REPARSE_TAG_SIS          0x80000007L = Single Instance Storage
    IO_REPARSE_TAG_WIM          0x80000008L = Windows Imaging Format
    IO_REPARSE_TAG_CSV          0x80000009L = Cluster Shared Volumes

   {
     Other tags are shown as ":XXXXXXXX" (X is a hex digit).
     As the info is too specific, it is not displayed by default.
     To display it, set the "Panel.Layout\ShowUnknownReparsePoint" parameter to 1:
      <?xml version="1.0" encoding="UTF-8" ?>
      <farconfig>
          <generalconfig>
              <setting key="Panel.Layout" name="ShowUnknownReparsePoint" type="qword" value="0000000000000001" />
          </generalconfig>
      </farconfig>
   }

   An option is added to panel settings: "Determine Volume Mount point".
   It allows specitying "Junction" in "size" field for directories (either "Junction" or "Volume").
   The option if off by default for panels because of its slow execution (especially on network volumes).

   Links info is not shown in QView if the file object is inaccessible, because of apiGetFileAttributes() failure.

2. The links field does exist in attributes settings dialog, but it is RO in case of unsuccessful obtaining of the info and 'Reparse'.

3. Macro: panel.item(XX,XX,23) returns ReparseTag

drkns 22.04.2012 02:16:36 +0200 - build 2631

1. Drive menu was not invoked if '@:' drive had been opened in the panel.

svs 20.04.2012 13:36:55 +0400 - build 2630

1. Mantis#0001687: ProcessConsoleInput
   (from Maximus)

svs 20.04.2012 12:10:58 +0400 - build 2629

1. Mantis#0002069: rep(n,string)
   Macro: S=StrPad(V,Cnt[,Fill[,Op]]) function is added
     v     - original expression, if not specified or has a zero length then it is considred as an empty line
     cnt   - result size
             if negative or 0 then V is returned
             if V is specified and cnt is less than V length then V is returned
     Fill  - value to fill with
     Op    - how to fill: 0 - from the right, 1 - from the left, 2 - centered.


w17 19.04.2012 15:45:53 +0400 - build 2628

1. gcc -warning

2. farlang minimal correction

w17 18.04.2012 18:27:12 +0400 - build 2627

1. And 2605 once more

svs 18.04.2012 18:06:58 +0400 - build 2626

1. Macro: keys limit is removed:

     <macro area="Shell" key="printFooBar"><text>print("FooBar")</text></macro>
     <macro area="Shell" key="CtrlP" flags="DisableOutput"><text>eval("printFooBar",2)</text></macro>

   "printFooBar" cannot be removed interactively.

svs 18.04.2012 17:18:43 +0400 - build 2625

1. Mantins#0002077: QView crash in a plugin panel
   (from Maximus)

drkns 18.04.2012 16:16:13 +0200 - build 2624

1. Correction of 2597.1.

w17 18.04.2012 16:53:54 +0400 - build 2623

1. 2605 once more

drkns 18.04.2012 10:30:09 +0200 - build 2622

1. The screen was not redrawn after an external editor/viewer call.

2. A couple of minor issues in usermenu.

svs 18.04.2012 10:18:49 +0400 - build 2621

1. Mantis#0002070: ProcessConsoleInputInfo processing error
   (from Maximus)

drkns 17.04.2012 10:11:45 +0200 - build 2620

1. 0002074: Show and modify Owner SID in Attributes dialog

2. 0002078: FAR crash with an incorrect lng file

svs 16.04.2012 19:20:40 +0400 - build 2619

1. Macro: correction of the "engine".

2. Correction of KeyMacro::GetPlainText(). Debugging.

w17 16.04.2012 18:20:39 +0400 - build 2618

1. Correction of 2605

drkns 16.04.2012 14:33:05 +0200 - build 2617

1. 2616 build failure.

2. 0002076: Transition to network shares of a CentOS-5.4 system did not work

svs 16.04.2012 10:54:54 +0400 - build 2616

1. Macro: correction of the "engine".

2. Optimization of TVarSet class - removing the TAbstractSet intermediate class.

3. Correction of TVar class.

zg 15.04.2012 14:20:58 +0200 - build 2615

1. correction of 2603.

w17 15.04.2012 10:55:54 +0400 - build 2614

1. M#1183: On Reload, codepage storing must take place before reading

w17 14.04.2012 10:21:14 +0400 - build 2613

1. Correction of 2607

zg 13.04.2012 19:36:08 +0200 - build 2612

1. Far.Cfg.Get returns public settings only.

zg 13.04.2012 01:29:20 +0200 - build 2611

1. PCTL_FINDPLUGIN returns nullptr, PCTL_GETPLUGININFORMATION returns 0 for just deleted plugins.

zg 12.04.2012 20:36:52 +0200 - build 2610

1. 0002071: Regexps processing error - \x00

drkns 12.04.2012 15:39:48 +0200 - build 2609

1. AltF4 in usermenu now opens a real file, not a temporary one.

2. An option for control of displaying ".." in the root.

drkns 12.04.2012 09:55:30 +0200 - build 2608

1. Correction of 2601.2.

2. Correction of 2604.1.

w17 12.04.2012 03:11:29 +0400 - build 2607

1. M#1773: Let enable AutoDetect item in Shift-F8 menu
   ACHTUNG: CP_AUTODETECT is renamed to CP_DEFAULT

2. M#1775: Shift-F4: Possibility of repeated automatic definifion of encoding of an opened file

w17 12.04.2012 02:52:21 +0400 - build 2606

1. Correction of 2605

w17 11.04.2012 23:14:16 +0400 - build 2605

1. 0002065: Mouse cursor position interferes with keyboard cursor control in help system.
   Just to try, ACHTUNG: the behaviour has changed : links are NOT highlighted on mouse move.

drkns 11.04.2012 20:37:03 +0200 - build 2604

1. 0002067: Unexpected reaction to mouse wheel in vertical menus

2. Some more of 2597.1.

zg 11.04.2012 17:38:32 +0200 - build 2603

1. 0002004: Commands history is not saved within the session.

2. gcc warning.

w17 11.04.2012 15:39:21 +0400 - build 2602

1. rollback of 2599.2

drkns 11.04.2012 14:14:33 +0200 - build 2601

1. 0002020: 'One level up' transition disappeared from network panel
   and another couple of bugs in 2597.1

2. Experimental - ".." is now displayed in root directories too.

w17 11.04.2012 14:32:17 +0400 - build 2600

1. M#2066: Long file name overwritten with the short one

w17 10.04.2012 23:47:54 +0400 - build 2599

1. execute.cpp: fix image subsystem detection (from Maximus5)

2. open-as... for incorrectly given name (from Maximus5)

drkns 10.04.2012 21:58:06 +0200 - build 2598

1. Correction of 2597.1.

drkns 10.04.2012 20:51:51 +0200 - build 2597

1. Inner paths parser is reworked slightly. Root detection must have improved and various minor bugs fixed. Well, or bigger ones may appear, it depends :)

2. Once again on 0002061: Date wrong in Attributes dialog.

w17 10.04.2012 20:21:20 +0400 - build 2596

1. More restrictions on SEE_MASK_INVOKEIDLIST - off for .exe files

w17 10.04.2012 19:30:17 +0400 - build 2595

1. !~ was replaced with 1st letter of short name in associations

svs 10.04.2012 18:38:40 +0400 - build 2594

1. Mantis#0002064: A bug in HiText2Str

w17 06.04.2012 23:27:23 +0400 - build 2593

1. FSF.sprintf() fix for gcc 4.6+

drkns 06.04.2012 14:09:49 +0200 - build 2592

1. 0002061: Date wrong in Attributes dialog

zg 05.04.2012 02:36:51 +0200 - build 2591

1. fix for visual inconsistency after ECTL_SELECT if the cursor was set to an incorrect place for vertical blocks.

zg 05.04.2012 01:53:27 +0200 - build 2590

1. fix for visual inconsistency after ECTL_SELECT if the cursor was set to an incorrect place for stream blocks.

2. ECTL_SETPOSITION and ECTL_SETSTRING do not reset block selection flag at once, but only if continuing selection shows the cursor positioned in incorrect place.

zg 04.04.2012 23:02:53 +0200 - build 2589

1. correction of 2589.

zg 04.04.2012 21:49:33 +0200 - build 2588

1. ECTL_SETPOSITION updates LeftPos to the correct value at once. else ECTL_GETINFO could get incorrect data.

zg 04.04.2012 19:25:15 +0200 - build 2587

1. highly experimental. invoking other FCTL_* does not lead to FCTL_CLOSEPANEL cancellation.

zg 04.04.2012 18:11:47 +0200 - build 2586

1. ECF_TABMARKCURRENT misbehaved with non-zero LeftPos in editor.

w17 04.04.2012 18:22:17 +0400 - build 2585

1. gcc 4.7.0 warnings, +build x64 far / x86 gcc

zg 04.04.2012 15:06:12 +0200 - build 2584

1. correction of 2584. if an archive was opened bypassing AnalyseW then the cursor was not positioned after exit on FCTL_CLOSEPANEL.

zg 03.04.2012 17:12:52 +0200 - build 2583

1. if FCTL_CLOSEPANEL was given an empty Param2 then the transition moved to the previous file panel, if it had existed, instead of fixed file panels.

zg 02.04.2012 13:53:24 +0200 - build 2582

1. 0002060: Technical information on plugins in the disk menu

drkns 01.04.2012 15:09:54 +0200 - build 2581

1. Transition to upper directory did not work for UNC paths.

zg 01.04.2012 15:02:04 +0200 - build 2580

1. PFLAGS_SHORTCUT is added. it reflects OPIF_SHORTCUT's state.

2. FCTL_GETPANELDIRECTORY always returns info on the current directory. You can learn whether it is safe to use by checking the presence of PFLAGS_SHORTCUT.

3. warning.

svs 29.03.2012 14:03:42 +0400 - build 2579

1. For Macro.Keyword(XXX,1), "Funcs","Consts","Vars" are unavailable because these are reserved words and they are indirectly related to macro areas.

2. Macro.var|const parameters were misplaced and the response to "0" was not implemented (it gets the number of "objects")

w17 28.03.2012 23:45:50 +0400 - build 2578

1. output 'set prefix>file' and 'set prefix | command' to cmd.exe

2. warning

svs 28.03.2012 19:59:45 +0400 - build 2577

1. Processed type is added (the second parameter) for Macro.Const() and Macro.Var()
    Type:
      2 - return the numeric value of the constant/variable type (0,1,2,3)
      3 - return the name of the constant/variable type ("unknown","integer","text","real")

2. For Macro.Keyword, Type=4 is added - the function returns the constant/variable type (for example, "unknown","integer","text","real")

svs 28.03.2012 17:39:50 +0400 - build 2576

1. Mantis#0002056: Error in returning from plugin.call / callplugin
   (from Maximus)

2. Macro: Plugin.Cmdline is renamed to Plugin.Command

3. Macro: MacroArea 'variable' is renamed to Macro.Area

4. Macro: macro functions are added that allow getting information about some macro language elements:

     S=Macro.Keyword(Index[,Type])
       Returns a keyword indexed with Index (starting from 1). If Index=0 then the number of words is returned (numeric).
       Type:
         0 (by default) - Far Keywords (those from MKeywords array, for example, Far.Width, PPanel.OPIFlags etc.)
         1 - Area (those from MKeywordsArea array, for example, Shell, MainMenu etc.)
         2 - Macro Flags (those from MKeywordsFlags array, for example, DisableOutput, NoPluginPanels etc.)
         3 - Macro Operation (those starting from '$', for example, $if, $SelWord etc.)

     S=Macro.Func(Index[,Type])
       Returns information about a function indexed with Index (starting from 1). If Index=0 then the number of registered macro functions is returned (numeric).
       Type:
         0 (by default) - name
         1 - syntax
         2 - GUID of a plugin providing the function

     S=Macro.Const(Index[,Type])
       Returns information about a constant indexed with Index (starting from 1). If Index=0 then the number of constants is returned (numeric).
       Type:
         0 (by default) - the constant name
         1 - the value

     S=Macro.Var(Index[,Type])
       Returns information about a variable indexed with Index (starting from 1). If Index=0 then the number of variables is returned (numeric).
       Type:
         0 (by default) - the variable name
         1 - the value

5. Macro: "$Text" is removed, use "print"
   Double-quoted text is temporarily left.


6. In intMacroFunction array, the names of the functions are made CaseMixed...



   <ACHTUNG>

   Check your macros against these issues:
     1) Plugin.Cmdline -> Plugin.Command
     2) MacroArea -> to Macro.Area
     3) "$Text" is removed, use "print"

   </ACHTUNG>


w17 28.03.2012 16:27:50 +0400 - build 2575

1. Mantis#1506: Regexps cannot be used in backwards search

drkns 26.03.2012 13:20:06 +0200 - build 2574

1. A typo in 2453.1

zg 25.03.2012 20:59:15 +0200 - build 2573

1. when processing shift-f2, OPM_TOPLEVEL was returned earlier for the first file, and OPM_TOPLEVEL|OPM_SILENT for the next ones.
   now there is plugin-wise separation. OPM_SILENT is added starting from the second file being processed by a particular plugin.

zg 25.03.2012 19:11:55 +0200 - build 2572

1. OpenW returns NULL if the panel is not created. PANEL_STOP - if the panel is created but further processing has to be cancelled. (HANDLE)-2 is not processed intentionally.
   all native plugins are broken.

2. AnalyseW returns NULL if the format has not been recognized. INVALID_HANDLE_VALUE is also considered as a recognized format now.
   all native plugins are broken.

zg 25.03.2012 17:30:47 +0200 - build 2571

1. FSF::qsort is removed. FSF::qsortex is renamed to FSF::qsort and __cdecl is replaced with WINAPI.
   all native plugins are broken.

2. FSF::bsearch is changed. __cdecl is replaced with WINAPI. additional 'user' parameter is passed to the compare function.
   all native plugins are broken.

3. FSF::Reserved is removed.
   all native plugins are broken.

zg 25.03.2012 14:58:20 +0200 - build 2570

1. correction of 2567.

drkns 25.03.2012 14:15:24 +0200 - build 2569

1. warning.

2. api: constant CURRENT_EDITOR == -1 for EditorControl.

zg 25.03.2012 04:17:02 +0200 - build 2568

1. DM_LISTINFO implementation is fixed in the wrapper.

zg 25.03.2012 02:23:52 +0200 - build 2567

1. StructSize field is added to the following structures:
   FarListUpdate
   FarListInsert
   FarListGetItem
   FarListPos
   FarListFind
   FarListDelete
   FarListInfo
   FarListItemData
   FarListTitles
   FarDialogItemColors
   FarDialogItemData
   OpenDlgPluginData
   FarGetDialogItem
   all native plugins are broken.

svs 23.03.2012 17:09:23 +0400 - build 2566

1. Mantis#0000881: Incorrect $AKey functioning.

drkns 23.03.2012 13:57:12 +0200 - build 2565

1. Correction of 2564.

2. Warnings.

svs 22.03.2012 16:08:04 +0400 - build 2564

1. a minor fix to get rid of calling GeneralCfg

2. ReadConfig() call is moved "higher".

3. sqlite 3.7.11

svs 22.03.2012 14:24:38 +0400 - build 2563

1. Mantis#0002053: Some <RCtrl + LAlt + key> combinations malfunction

svs 22.03.2012 12:35:09 +0400 - build 2562

1. Preparing to the tree file storing theme - new dialog "Tree settings".

2. "Auto change folder" option moved from "Panel settings" to the new dialog "Tree settings".

3. The tree is now stored in tree3.far file (its "structure" is unchanged so far), and the cache is in tree3.cache directory.

4. tree3.cache directory is now placed in LocalProfilePath (earlier in %FARHOME%)

svs 20.03.2012 13:31:49 +0400 - build 2561

1. Fix for 2557 (regarding syslog.cpp)

2. Mantis#0001483: Make Dlg.GetValue() parameters optional

   Dlg.GetValue()==Dlg.GetValue(-1)

3. Mantis#0001903: Plugin.Menu(guid,menuGuid)

   <ACHTUNG>

   Plugin.Prefix is renamed to Plugin.Cmdline

   </ACHTUNG>

svs 20.03.2012 11:17:53 +0400 - build 2560

1. Fix for 2557

zg 20.03.2012 03:51:54 +0200 - build 2559

1. ECTL_TURNOFFMARKINGBLOCK is removed. required actions are taken automatically for all ECTL_* changing anything in the editor.

zg 20.03.2012 02:51:44 +0200 - build 2558

1. rollback of 2551.

2. KMFLAGS_SAVEMACRO is removed.

zg 20.03.2012 02:36:49 +0200 - build 2557

1. Private field in PluginStartupInfo.

zg 19.03.2012 19:43:07 +0200 - build 2556

1. shortcuts and plugin history processing is redone.
   now following a shortcut of a history item always causes OpenW(OPEN_SHORTCUT,...). Data points to OpenShortcutInfo.
   in order to plugin folders get to history and shortcuts, it is necessary to specify OPIF_SHORTCUT flag in OpenPanelInfo.Flags.
   FCTL_GETPANELDIRECTORY for a plugin panel without OPIF_SHORTCUT flag returns 0.

drkns 19.03.2012 14:01:43 +0200 - build 2555

1. Mantis#0002051: Error in copying to a CentOS-5.4 system's network share.

2. A couple of issues in the copier.

zg 18.03.2012 01:23:01 +0200 - build 2554

1. FAR also closes plugin panel automatically if OpenPlanelInfo.CurDir==L"\\".

2. correction of 2553.

svs 17.03.2012 15:17:38 +0400 - build 2553

1. Since Mantis#1840, global variables and constants are written to DB.
   Global variables must get to the "storage" in 2 ways only:
    a) via farconfig file
    b) via msave() macrofunction.

   http://forum.farmanager.com/viewtopic.php?p=89561#p89561 п.1

   The code of the KeyMacro::WriteVarsConsts() function is "hidden" so far.

svs 17.03.2012 13:43:33 +0400 - build 2552

1. Macro: bug $SelWord
   macro:post ShiftF4 t e s t Enter t e s t $SelWord msgbox("","Not selected") Space Left $SelWord msgbox("","Selected")

   http://forum.farmanager.com/viewtopic.php?p=89561#p89561  п.5

zg 16.03.2012 20:06:10 +0200 - build 2551

1. OPM_SHORTCUT is added. it is passed to AnalyseW when following a shortcut or a history item.

svs 16.03.2012 10:56:28 +0400 - build 2550

1. Mantis#0001483: Make Dlg.GetValue() parameters optional

   V=Dlg.GetValue([Pos[,InfoID]])

   If the parameter(s) are not specified then it is implied that:
     Pos - returns values from the current focused item
     InfoID - the item value (0)

svs 15.03.2012 10:20:11 +0400 - build 2549

1. Far.Cfg.Get("System.KnownIDs", "Network")
   returns garbage
   If the field is GeneralConfig::TYPE_BLOB and this is not "System.KnownIDs", then Far.Cfg.Get() sets Far.Cfg.Err error (macro constant) to 1

zg 15.03.2012 04:15:06 +0200 - build 2548

1. in 2351, transition to file panel from history was broken.

zg 15.03.2012 02:17:13 +0200 - build 2547

1. in 2036, transition to nearest accessible folder in folder links was broken.

zg 14.03.2012 23:16:28 +0200 - build 2546

1. the following options available to plugins: FSSF_INTERFACE/"ShowMenuBar", FSSF_DIALOG/"EditBlock", FSSF_DIALOG/"EULBsClear", FSSF_DIALOG/"DelRemovesBlocks", FSSF_PANELLAYOUT/"ColumnTitles", FSSF_PANELLAYOUT/"StatusLine", FSSF_PANELLAYOUT/"SortMode".

svs 13.03.2012 15:12:25 +0400 - build 2545

1. Help updated

2. Restoring a lost option (on drag&drop) in confirmations dialog...

3. Help for MaskGroupsSettings

zg 13.03.2012 12:20:04 +0200 - build 2544

1. FSSF_SCREEN/"KeyBar" option available to plugins.

svs 13.03.2012 11:16:01 +0400 - build 2543

1. DMODE_NOPLUGINS is added to PluginManager::CallPlugin and PluginManager::CallPluginItem

2. Macro: renamed: Plugin.Call -> Plugin.Menu, Plugin.Int -> Plugin.Call

3. Macro: N=Plugin.Exist(Guid) macrofunction is added
   Returns: 0 - there's no plugin with Guid identifier, 1 - there is such a plugin.

zg 13.03.2012 01:52:57 +0200 - build 2542

1. FSSF_CONFIRMATIONS/"RemoveConnection" option available to plugins.

zg 13.03.2012 01:09:42 +0200 - build 2541

1. As it had been promised, ACTL_GETSYSWORDDIV, ACTL_GETSYSTEMSETTINGS, ACTL_GETPANELSETTINGS, ACTL_GETINTERFACESETTINGS,
   ACTL_GETCONFIRMATIONS, ACTL_GETDESCSETTINGS, ACTL_GETPLUGINMAXREADDATA ACTL_GETDIALOGSETTINGS are removed.
   plugins not prepared to this in time may be broken.

svs 12.03.2012 21:30:41 +0400 - build 2540

1. Mantis#0001903: Plugin.Menu(guid,menuGuid)
   (from Maximus)

     N=Plugin.Call(Guid[,MenuGuid])
       Similar to plugin call from plugins menu with F11 with no hotkeys definition or plugin search needed in the list.
     N=Plugin.Config(Guid[,MenuGuid])
       Similar to plugin call from "Plugin parameters" menu with no hotkeys definition or plugin search needed in the list.
       Panels only.
     N=Plugin.Prefix(Guid,Command)
       Similar to plugin call with a prefix from panels with no storing/clearing/restoring current command line contents needed.
     N=Plugin.Int(Guid[,Item])
       an alias for callplugin

   mmode(3) doen not influence to these functions (except for Plugin.Int)

   <ACHTUNG>

   Debugging in process...

   </ACHTUNG>

2. mmode(3) is on by default!

zg 12.03.2012 14:02:00 +0200 - build 2539

1. a new flag is added, WIF_MODAL. ACTL_GETWINDOWINFO also returns information on modal windows. ACTL_GETWINDOWCOUNT is the summary windows count.

zg 12.03.2012 05:30:07 +0200 - build 2538

1. EditorControl(RealId,...) did not work for modal editors.

w17 12.03.2012 00:04:46 +0400 - build 2537

1. correction of 2536

2. M#2049: Autocompletion does not work if the folder name contains spaces

w17 11.03.2012 14:38:39 +0400 - build 2536

1. M#2048: Search in directories containing ";"

w17 09.03.2012 11:31:30 +0400 build - 2535

1. M#2045 - Win+Up does not maximize the FAR window

w17 07.03.2012 23:39:00 +0400 build - 2534

1. the cause of crash is formally eliminated. what the code doe is a secret for me

drkns 07.03.2012 15:06:24 +0200 - build 2533

1. Now GuardLastError class also stores ntstatus.

w17 07.03.2012 09:12:30 +0400 - build 2532

1. correction in 2531

drkns 06.03.2012 19:31:53 +0200 - build 2531

1. A workaround for a bug in ShellExecuteEx.

zg 06.03.2012 17:53:49 +0200 - build 2530

1. if the cursor was hidden, alt-up could be broken beyond lines and in tabulation spaces.

2. correction of 2525 for vertical blocks old behaviour.

zg 06.03.2012 17:31:05 +0200 - build 2529

1. rollback of 2524.

drkns 06.03.2012 15:07:46 +0200 - build 2528

1. From Tim Sobolev: search in mask groups menu.

w17 06.03.2012 14:50:05 +0400 - build 2527

1. Unicode .hlf file reading error

drkns 06.03.2012 10:46:25 +0200 - build 2526

1. In some cases the necessary width of messages was calculated incorrectly.

zg 06.03.2012 04:46:05 +0200 - build 2525

1. correction of 2357.1. the width of vertical block is calculated correctly. take into account it can be inexisting even if the vertical selection exists in the current line.

zg 06.03.2012 04:05:03 +0200 - build 2524

1. vertical blocks redone. now block is bound to symbols instead of screen position.

zg 05.03.2012 20:23:08 +0200 - build 2523

1. Cannot select zero width vertical block with editor.sel.

zg 05.03.2012 16:18:48 +0200 - build 2522

1. 0002043: Editor.Sel(1,1) does not work in the editor in described situation

svs 05.03.2012 12:30:56 +0400 - build 2521

1. Variables moved from Options into the separate ExecuteOptions structure
   strExcludeCmds and strHomeDir (cd ~) are added to ExecuteOptions

2. Getting rid of GeneralCfg->GetValue() in execution code

svs 05.03.2012 11:48:02 +0400 - build 2520

1. Mantis#0002041: DN_LISTHOTKEY - incorrect functioning in combo boxes
    Incorrect positioning is observed in dialogs when an item is chosen with a hotkey in a combo.
    The main problem is caused with the following one:
    "Modal::ExitCode = -1;" in "VMenu::DisplayObject()"

    Being chosen with a hotkey, ExitCode is set to a needed value in VMenu::CheckKeyHiOrAcc() function, then EndLoop loop finish flag is set.
    The plugin gets DN_LISTHOTKEY notification from VMenu::ProcessKey(). As the plugin has normally returned 'false', the code setting the position back into
    its previous value does not execute.
    After that, ExitCode is reset to -1 in VMenu::DisplayObject().
    Then, combo processing loop in Dialog::SelectFromComboBox() is finished, "Dest=ComboBox->Modal::GetExitCode();" position is acquired,
    which is already -1 ==> "ComboBox->SetSelectPos(OriginalPos,0);" is invoked (the plugin is not notified of that).

    The second problem: the plugin responded 'true' to DN_LISTHOTKEY.
    Here, the docs have to be updated, because the phrase "TRUE - plugin has processed the event." does not really clear things :-)

drkns 04.03.2012 21:22:30 +0200 - build 2519

1. Correction of 2517.

drkns 04.03.2012 16:26:41 +0200 - build 2518

1. A typo in 2453.

drkns 04.03.2012 14:08:07 +0200 - build 2517

1. Continuation of 2488 - groups can contain other groups.

drkns 02.03.2012 23:46:55 +0200 - build 2516

1. Correction of 2515.1.

drkns 02.03.2012 13:58:31 +0200 - build 2515

1. A new command in FSF.ProcessName: PN_CHECKMASK - check validity of a mask. Also, a new flag: PN_SHOWERRORMESSAGE - show error messages.

2. Microsoft has played a dirty trick by adding PS_PAUSED to shobjidl.h, so constants form PROGRESSTATE have TBPS_ prefix now.

3. MSVC 11 compatibility.

4. Rudiments of ARM build.

5. Completion of STACKBOOKMARK -> SESSIONBOOKMARK.

svs 02.03.2012 09:16:43 +0400 - build 2514

1. correction of build 2508

2. Mantis#0002037: Garbage in MCTL_GETLASTERROR

3. Mantis#0002039: Auto-starting macro recording bug

4. Mantis#0002040: Ctrl. Ctrl. <key> Yes ShiftF9 does not delete a macro

drkns 02.03.2012 00:25:26 +0200 - build 2513

1. Mantis#0002038 File panel highlighting is disabled with a clean profile

2. FSF.ProcessName(PN_CMPNAMELIST) is now "complete" and capable of all Far features.

w17 01.03.2012 22:14:13 +0400 build - 2512

1. correction of 2511 - getting rid of AI

w17 01.03.2012 19:16:09 +0400 - build 2511

1. some AI when making a decision of saving file encoding

w17 01.03.2012 18:12:05 +0400 - build 2510

1. MinGW gcc 4.5 build fixed

w17 01.03.2012 17:30:51 +0400 - build 2509

1. continuation of 2504

drkns 01.03.2012 12:42:56 +0200 - build 2508

1. from svs: correction of build 2507.

drkns 01.03.2012 11:46:15 +0200 - build 2507

1. from svs: macros stopped running if the macro sequence ended with callplugin

w17 01.03.2012 12:37:57 +0400 - build 2506

1. fixing text displaying after search for long lines/NO_WRAP/found=startline

svs 01.03.2012 09:13:01 +0400 - build 2505

1. matching editor bookmarks STACKBOOKMARK -> SESSIONBOOKMARK
   (from samlyukov)
   http://forum.farmanager.com/viewtopic.php?p=85114#p85114

w17 01.03.2012 02:24:47 +0400 build - 2504

1. if a database was not opened 'normally' Finalize() is done for each of its stmtXXXX,
   else it cannot be closed nor renamed correctly

2. show Far database names (not plugins' ones) which have been opened 'abnormally' at startup

w17 29.02.2012 17:05:06 +0400 - build 2503

1. a typo crashed the viewer when reverse search was performed

svs 29.02.2012 16:52:09 +0400 - build 2502

1. Clipboard::InternalCopy() is added.
   It copies binary data between inner and system clipboards.
   It is used in clip(3|4) macrofunction.

2. Clipboard::CopyHDROP() is given an ability of work with things other than the system clipboard.


drkns 29.02.2012 13:55:44 +0200 - build 2501

1. A couple of minor issues.

svs 29.02.2012 12:41:31 +0400 - build 2500

1. Continuation of 2498.
   Removing KeyMacros.CallPluginRules from the configuration in favor of mmode(3)

drkns 29.02.2012 09:42:16 +0200 - build 2499

1. Continuation of 2493.

svs 29.02.2012 10:53:34 +0400 - build 2498

1. Macro: mmode function is appended with Action = 3 (CallPluginEnableMacro)
   It lets enabling/disabling macros when the plugin is invoked with CallPlugin macrofunction.
     mmode(3,0) - disable
     mmode(3,1) - enable
     mmode(3,2) - switch the mode (swap)
   The previous value is returned.
   It influences the current macro sequence only.
   By default it is disabled.

   For example, let's draw in editor a small rectangle with DrawLine
   mmode(3,1) callplugin("C941E865-9C29-485C-99B3-0C710940F2D8","ShiftRight ShiftRight ShiftDown ShiftDown ShiftLeft ShiftLeft ShiftUp ShiftUp ShiftRight Esc")

drkns 28.02.2012 16:57:48 +0200 - build 2497

1. Continuation of 2493.

w17 28.02.2012 14:09:10 +0400 - build 2496

1. gcc build fix

drkns 27.02.2012 21:09:02 +0200 - build 2495

1. Continuation of 2493 - using IFileIsInUse interface (benefits: ability of switching to locking app, ability of closing the file remotely).

2. Corrections in Message dialog sizing: now buttons must be fitting the borders.

drkns 26.02.2012 23:36:01 +0200 - build 2494

1. Correction of 2493.

drkns 26.02.2012 22:28:58 +0200 - build 2493

1. If a file deletion attempt fails due to the file being locked by another process, now it is possible to find out the name of the process in some cases.

drkns 26.02.2012 10:40:09 +0200 - build 2492

1. Continuation of 2488 - a group can be a regular expression.

drkns 25.02.2012 20:10:24 +0200 - build 2491

1. A typo in 2470.

drkns 24.02.2012 21:11:56 +0200 - build 2490

1. Optimization and simplification of lng reader.

drkns 24.02.2012 14:57:54 +0200 - build 2489

1. Continuation of 2488.

drkns 24.02.2012 14:27:51 +0200 - build 2488

1. New entity: "file mask groups" (Options - Groups of file masks).
   An arbitrary amount of file masks can form a named group.
   The name of the group in angle brackets ("<name>") can be used anywhere along with masks themselves.

svs 23.02.2012 14:18:24 +0400 - build 2487

1. Correction of 2486

svs 23.02.2012 09:44:26 +0400 - build 2486

1. Mantis#0000466: Extension of macro language with plugins
   Next step.
   Quite a bit is left to completion :-)
   It is supposed that plugincache.will contain a cache for macro function names
   provided by plugin (the format is the same as for prefixes): in order to skip loading plugins having
   ProcessMacroW() at start and loading macros.

drkns 22.02.2012 22:23:30 +0200 - build 2485

1. in 1881, buffer cleaning with CopyToClipboard(0) was broken.

zg 22.02.2012 18:58:03 +0200 - build 2484

1. correction of 2458. OPEN_FROMMACRO in PluginManager::CallPlugin.

zg 22.02.2012 18:45:43 +0200 - build 2483

1. 0001410: Add a flag into OpenFilePluginW for archive operations recognition (ShiftF3)
   OPM_COMMANDS flag is added.

zg 22.02.2012 17:21:14 +0200 - build 2482

1. 0002031: Automatic indentation does not inform plugins about line changed

drkns 22.02.2012 16:58:37 +0200 - build 2481

1. Inner rearrangement.

zg 21.02.2012 19:51:28 +0200 - build 2480

1. 0001972: ShiftHome and editor.sel(0,2)

2. macro editing dialog is provided with history for sequence and description.

zg 21.02.2012 16:14:47 +0200 - build 2479

1. FSSF_EDITOR is added. with "WordDiv" one can get the system's list of separators.
   ACTL_GETSYSWORDDIV will be deleted in the nearest future.

zg 21.02.2012 04:40:45 +0200 - build 2478

1. continuation of 2328. now the names of the settings match those in DB.
   FSSF_SYSTEM and FSSF_PANEL are added.
   one can examine what is available by now in config.cpp::CFG.
   ACTL_GETSYSTEMSETTINGS, ACTL_GETPANELSETTINGS, ACTL_GETINTERFACESETTINGS, ACTL_GETCONFIRMATIONS,
   ACTL_GETPLUGINMAXREADDATA and ACTL_GETDIALOGSETTINGS will be deleted in the nearest future.

w17 20.02.2012 23:34:49 +0400 build - 2477

1. Calling convention mismatch (yet another typo?)

drkns 20.02.2012 10:42:54 +0200 - build 2476

1. Another typo.

drkns 20.02.2012 03:15:12 +0200 - build 2475

1. A typo in 2474.

drkns 20.02.2012 02:17:59 +0200 - build 2474

1. Rolling back 2470.2 so far - there are some issues.

drkns 19.02.2012 21:52:01 +0200 - build 2473

1. And one more time.

drkns 19.02.2012 21:49:02 +0200 - build 2472

1. Correction of 2470.

drkns 19.02.2012 21:18:57 +0200 - build 2471

1. Mantis#0002028: Editor Search [All] - the menu treats ampersands as hotkeys

drkns 19.02.2012 20:23:52 +0200 - build 2470

1. All functions provided to plugins are gathered now in plugapi/pluginA, rather than scattered all over the sources.

2. Ibid - added a "protection" of calling from secondary threads to where it is disallowed.

svs 19.02.2012 14:51:36 +0400 - build 2469

1. Mantis#0002026: after clip(1,""), clipboard is not cleared

zg 17.02.2012 20:42:35 +0200 - build 2468

1. correction of 2460.1.

drkns 17.02.2012 19:36:26 +0200 - build 2467

1. Correct handling of situation of "plugin trying to unload itself".

svs 17.02.2012 15:18:14 +0400 - build 2466

1. $TextFooBar is not an error, although $FooBar is.

   The show-stopper is macro.cpp::KeyNameMacroToKey(). StrCmpNI is unnecessary there, StrCmpI is enough

drkns 17.02.2012 11:05:50 +0200 - build 2465

1. Correction of 2463.

svs 17.02.2012 09:38:04 +0400 - build 2464

1. Macro: env function got 2 optional parameters:
   S=Env(S[,Mode[,Value]])
     S - the name of an environment variable
     Mode:
        0 - get
        1 - set
     Value - the value

   For Mode=1, the previous value of S variable is returned

   Examples:
     1. Get the value of the environment variable Foo
        Env("Foo")
        Env("Foo",0)
        Env("Foo",0,whatever)
        Env("Foo",,whatever)
     2. Set the value of the environment variable Foo to "bar"
        Env("Foo",1,"Bar")
     3. Remove the environment variable Foo
        Env("Foo",1)
        Env("Foo",1,"")
     4. Set the value of the environment variable Foo to "0"
        Env("Foo",1,"0")
        Env("Foo",1,0)

drkns 16.02.2012 13:11:18 +0200 - build 2463

1. Clearer representation of colors and file highlighting in xml.

zg 16.02.2012 04:04:19 +0200 - build 2462

1. Now AnalyseW returns HANDLE. if the plugin does not accept the file, INVALID_HANDLE_VALUE must be returned. any other value tells FAR that the file is accepted.
   if eventually the plugin gets OpenW(OPEN_ANALYSE,...) then OpenAnalyseInfo.Handle will be equal to the value returned by AnalyseW.
   else CloseAnalyseW is passed, where CloseAnalyseInfo.Handle is also equal to the value returned by AnalyseW.
   plugins making use of AnalyseW will work incorrectly.

drkns 15.02.2012 22:28:03 +0200 - build 2461

1. Colors configuration moved from generalconfig.db to colors.db.

zg 15.02.2012 04:49:56 +0200 - build 2460

1. reworking of macro functions. now all parameters are optional and there's an unlimited count of parameters.
   excessive parameters are calculated but unused.

2. callplugin can accept any number of parameters. OpenMacroInfo is changed. Count is the count of passed parameters.
   Values is a pointer to the array of parameters values.
   plugins making use of OPEN_FROMMACRO will work incorrectly.

drkns 14.02.2012 13:19:07 +0200 - build 2459

1. Another correction of 2452.1.

zg 14.02.2012 03:46:37 +0200 - build 2458

1. OPEN_FROMMACRO_MASK and OPEN_FROMMACROSTRING are removed. macro area identifier in least significant word is removed, there's MCTL_GETAREA for that.
   OPEN_FROMMACRO got new meaning.
   OpenInfo.Data receives a pointer to OpenMacroInfo. accordingly, one can distinguish situation without a parameter from passing a floating point number.
   plugins making use of OPEN_FROMMACRO will work incorrectly.

zg 14.02.2012 01:32:13 +0200 - build 2457

1. gcc warnings.

drkns 13.02.2012 23:14:58 +0200 - build 2456

1. Continuation of 2455.

drkns 13.02.2012 19:45:37 +0200 - build 2455

1. Correction of white space displaying.

drkns 13.02.2012 18:35:36 +0200 - build 2454

1. Correction of 2452.1

drkns 13.02.2012 15:34:21 +0200 - build 2453

1. Eliminating printf-style format strings in language files.
   Now there are "insertions" instead: %1, %2, %3 etc.
   Insertions can be changed places (for languages with another word order in sentences).

2. "Search for all occurrences" in the editor does search from the beginning of a file.

drkns 12.02.2012 19:34:30 +0200 - build 2452

1. The search dialog in editor is provided with "All" button - search for all occurrences.

2. TechInfo #18 (EditorF7Rules) is now 0 by default.

3. Ctrl-A ("select all") combination is available in input lines.

zg 12.02.2012 15:26:20 +0200 - build 2451

1. correction of 2443.

drkns 11.02.2012 20:13:59 +0200 - build 2450

1. A couple of typos in 2449.

zg 11.02.2012 15:12:15 +0200 - build 2449

1. DM_GETDLGITEM returns the history and mask name copies, instead of the reference to inner data.

2. DM_SETDLGITEMSHORT does not set the history name and the mask.

3. DM_GETDLGITEMSHORT does not return the history name and the mask.

4. DN_EDITCHANGE/DN_DRAWDLGITEM accepts the copy of dialog item information in Param2.

zg 09.02.2012 21:01:34 +0200 - build 2448

1. experimental: ECTL_INSERTTEXT is aware of '\n'. the line is added taking "Auto indent" setting into account, as opposed to '\r'.

drkns 09.02.2012 16:45:52 +0200 - build 2447

1. In 2432, empty files copying was broken.

2. Mantis#0002017: FAR does not display the contents of WM "common folders"

3. Restoring the command line after CtrlG.

drkns 08.02.2012 20:15:12 +0200 - build 2446

1. Correction of plugins unloading.

drkns 08.02.2012 18:45:54 +0200 - build 2445

1. Correction of plugins unloading.

drkns 08.02.2012 16:43:20 +0200 - build 2444

1. Correction of plugins unloading.

zg 08.02.2012 02:03:12 +0200 - build 2443

1. In the case of plugin statically importing dll located in %FARHOME%, %FARHOME% absent in %PATH% and FAR launched from another folder, the plugin was not loaded.

zg 07.02.2012 02:49:54 +0200 - build 2442

1. correction of 2439.1 and 2439.2 for the wrapper.

2. ProcessViewerEvent and ProcessEditorEvent of ANSI plugins are passed only those events that exist in FAR 1.

zg 07.02.2012 01:20:05 +0200 - build 2441

1. continuation of 2435. the screen was not always redrawn.

zg 06.02.2012 23:05:23 +0200 - build 2440

1. correction of 2439.1 and 2439.2.

zg 06.02.2012 22:39:15 +0200 - build 2439

1. ProcessEditorEventInfo is appended with EditorID field.
   accordingly, EE_GOTFOCUS, EE_KILLFOCUS and EE_CLOSE have Param equal to NULL.
   plugins using these events will work incorrectly.

2. в ProcessViewerEventInfo is appended with ViewerID field.
   accordingly VE_GOTFOCUS, VE_KILLFOCUS and VE_CLOSE have Param equal to NULL.
   plugins using these events will work incorrectly.

3. correction of 2438.

zg 06.02.2012 21:16:55 +0200 - build 2438

1. EE_CHANGE event is added for the editor. It is sent when text is changed in the editor. Param is the pointer to EditorChange.
   EditorChange.Type - the type of the event: the line has changed, added or removed.
   EditorChange.StringNumber - the number of changed/added/removed line.
   EditorControl called from this event returns FALSE.

drkns 06.02.2012 15:56:52 +0200 - build 2437

1. Correction of 2428.

2. "[ ] Clear R/O attribute from CD files" option is removed, the attribute is always reset. FSS_CLEARROATTRIBUTE is removed too.

w17 06.02.2012 16:23:04 +0400 - build 2436

1. debug build recovered

2. cosmetic

zg 06.02.2012 01:56:06 +0200 - build 2435

1. EEREDRAW_CHANGE and EEREDRAW_LINE events are removed. EEREDRAW_ALL is always sent.

drkns 04.02.2012 23:56:49 +0200 - build 2434

1. More stuff on crashes when unloading plugins.

drkns 04.02.2012 17:37:35 +0200 - build 2433

1. As it turned out, plugin unloading on exception always crashed FAR.
   On the side, crashes at unloading plugins opened on a panel must have been fixed.

2. Mantis#0002011: Cannot open a shared client volume in a terminal session.

drkns 03.02.2012 21:43:07 +0200 - build 2432

1. "Correct" wiping of sparse files - allocated parts are the only ones wiped.

2. In connection with #1, - simplification of similar code in the copier. It needs checking whether nothing is broken :)

w17 02.02.2012 12:44:18 +0400 - build 2431

1. Continuation of Mantis#1953

2. Fixed 'set /?'

drkns 01.02.2012 20:20:46 +0200 - build 2430

1. In 2427, EOL glyphs were misplaced.

2. Warnings.

zg 01.02.2012 12:58:16 +0200 - build 2429

1. rollback of 2427.1 because ACTL_GETWINDOWINFO and WindowInfo.Id already exist.

drkns 31.01.2012 22:22:18 +0200 - build 2428

1. Correct console mode is forced after plugin functions calls.

drkns 31.01.2012 13:32:28 +0200 - build 2427

1. Mantis#0001179: API needed for obtaining the handle of the current dialog.
   ACTL_GETCURRENTWINDOW command is added. If a dialog is opened then its handle is returned, 0 otherwise.

2. "[ ] Show white space" checkbox in editor settings is 3-state now: [?] - show spaces, tabulation and EOF, [x] - show also EOL.
   In API - EOPT_SHOWLINEBREAK, ESPT_SHOWWHITESPACE(1|2)

w17 28.01.2012 23:07:20 +0400 - build 2426

1. Mantis#2000 - XML Error (0,0) -- half step back

t-rex 28.01.2012 19:03:49 +0200 - build 2425

1. PCTL_FINDPLUGIN with PFM_MODULENAME can work with relative paths now.

drkns 27.01.2012 22:21:21 +0200 - build 2424

1. Correction of PCTL_GETPLUGININFORMATION.

drkns 27.01.2012 19:46:03 +0200 - build 2423

1. Mantis#0002002: Far3 cannot enter folders on CD-ROM discs.

drkns 27.01.2012 17:01:23 +0200 - build 2422

1. Mantis#0002005: Network shares are inaccessible.

svs 27.01.2012 18:17:51 +0400 - build 2421

1. Removing dependency of plugin.hpp and frame.hpp (WTYPE_* and MODALTYPE_*)

2. Mantis#0001999: Delegate FileSizeToStr() function to plugins
   FSF is appended with FormatFileSize() function
   (analogous to Size2Str in macros)

   size_t WINAPI FormatFileSize(unsigned __int64 Size, int Width, FARFORMATFILESIZEFLAGS Flags, wchar_t *Dest, size_t DestSize);

   Here:
     Size       - formatting size
     Width      - required width. -1 - "as much as possible". negative value allows left indentation
     Flags      - one of the following values defined in FARFORMATFILESIZEFLAGS:
         FFFS_COMMAS            Insert the separator between thousands
         FFFS_FLOATSIZE         Show file size Windows Explorer style (i.e. 999 bytes are shown as 999, while 1000 bytes are shown as 0.97 K)
         FFFS_SHOWBYTESINDEX    Show B,K,M,G,T,P,E suffixes
         FFFS_ECONOMIC          Economy mode, a space before file size suffix is not shown (i.e. 0.97K)
         FFFS_THOUSAND          Use 1000 divisor instead of 1024
         FFFS_MINSIZEINDEX      Minimal index allowed at formatting
                                The index is specified in the least significant byte and can take values 0, 1, 2 or 3 (K,M,G,T),
                                For example, 1 - "size is at least in megabytes"
     Dest       - destination buffer
     DestSize   - how many characters "fits" in Dest

   The function returns the size (with trailing 0) of the resulting string.
   Set Dest = nullptr or DestSize = 0 to get the required size.

drkns 27.01.2012 15:01:22 +0200 - build 2420

1. Mantis#0002000: Far.exe /export creates a file with 0A lines separator.

drkns 27.01.2012 09:58:17 +0200 - build 2419

1. PCTL_[FORCED]LOADPLUGIN now return the handle of a loaded plugin or 0 on error, as before.

svs 27.01.2012 09:15:50 +0400 - build 2418

1. Macro: a new macrofunction for number formatting (for example, the size of a file) - on Mantis#0001999

    S=Size2Str(Size,Flags[,Width])

   here:

    Size  - what has to be formatted
    Flags - formatting options
            0x0010000000000000 - S2S_SHOWBYTESINDEX
                                 Show suffixes:
                                    B - for bytes (also without a suffix)
                                    K - for kilobytes
                                    M - for megabytes
                                    G - for gigabytes
                                    T - for terabytes
                                    P - for petabytes
                                    E - for exabytes
            0x0800000000000000 - S2S_COMMAS
                                 Insert thousands separator
                                 "Interface/FormatNumberSeparators" configuration value is used
                                 or Windows LOCALE_STHOUSAND & LOCALE_SDECIMAL if FormatNumberSeparators is unspecified.
            0x0080000000000000 - S2S_FLOATSIZE
                                 Show file size in Windows Explorer style
                                 (i.e. 999 bytes are shown as 999, while 1000 bytes are shown as 0.97 K)
            0x0040000000000000 - S2S_ECONOMIC
                                 Economy mode, a space before file size suffix is not shown (i.e. 0.97K)
            0x0400000000000000 - S2S_THOUSAND
                                 Use 1000 divisor instead of 1024
            0x0020000000000000 - S2S_MINSIZEINDEX
                                 Minimal index allowed at formatting
                                 For example, 0x0020000000000001 - "the size is at least in megabytes"
                                 It can take values 0, 1, 2 or 3 (K,M,G,T)
    Width - formatting width (unused if 0 or unspecified)
            negative values allow left indentation:
            Size2Str(123,0, 5) ==> '  123'
            Size2Str(123,0,-5) ==> '123  '

2. Macro: a new function for text "formatting": StrWrap.
     Formatting a text to given width with the use of the separator (breaking to lines with left indentation).

     S=StrWrap(Text,Width[,Break[,Flags]])

   here:

     Text  - text to be formatted
     Width - width
     Break - separator ('\n' if empty or omitted)
     Flags - additional "formatting options
             0x1 - the line is always wrapped to given width even if there is a longer word
                  (in this cases, it is split into pieces).

   If flag 0x1 is unspecified and there is a long word then the word takes space longer than given Width.

   Examples:
      StrWrap("The example of a text split into several lines.", 6)
   returns:
       1234567
      +------+
      |The
     >|example
      |of a
      |text
      |split
      |into
     >|several
      |lines.
      +------+

   adding a flag of 1
      StrWrap("The example of a text split into several lines.", 6,,1)
   returns:
       123456
      +------+
      |The
      |exampl
      |e of a
      |text
      |split
      |into
      |severa
      |l
      |lines.
      +------+

      StrWrap("The line containing a vvvvvvvveeeeeeeerrrrrrryyy long word", 9,,0x1)
   returns:
       123456789
      +---------+
      |The line
      |containin
      |g a
      |vvvvvvvve
      |eeeeeeerr
      |rrrrryyy
      |long
      |word
      +---------+


drkns 26.01.2012 23:03:50 +0200 - build 2417

1. Support for detection and switching off virtual CDs in Windows 8.

drkns 26.01.2012 19:37:11 +0200 - build 2416

1. Mantis#0002001: Incorrect displaying of path to virtual volume file in drive selection dialog.

drkns 26.01.2012 19:11:04 +0200 - build 2415

1. On Mantis#01914:

     PCTL_GETPLUGINS: get the plugins' handles.
     Param2 - pointer to the buffer, Param1 - the size of the buffer.
     Passing 0 as Param1 or Param2 returns required size.

2. Warnings.

drkns 26.01.2012 16:11:41 +0200 - build 2414

1. On Mantis#01914:

     PCTL_FINDPLUGIN: returns the plugin's handle by name (Param2==PFM_MODULENAME) or GUID (Param2==PFM_GUID).

     PCTL_GETPLUGININFORMATION - obtain plugin's summary.
     Handle - the plugin's handle obtained with PCTL_FINDPLUGIN.
     Param1 - the size of the buffer receiving information.
     Param2 - buffer containing FarGetPluginInformation structure at its beginning.

2. PCTL_UNLOADPLUGIN is changed - now Handle must be passed a handle received with PCTL_FINDPLUGIN, Param1 and Param2 are ignored.

drkns 26.01.2012 09:46:46 +0200 - build 2413

1. Getting EMenu be callable to from disk menu.

2. Warnings.

drkns 25.01.2012 09:57:40 +0200 - build 2412

1. Wrong formatting of "short" and "named" date in panel modes.

drkns 24.01.2012 19:42:05 +0200 - build 2411

1. The identifiers of plugins known to FAR (so far, those are Network and EMenu) are stored in DB and can be changed if needed.

drkns 22.01.2012 14:19:41 +0200 - build 2410

1. Correction of 2381.

svs 21.01.2012 13:43:11 +0400 - build 2409

1. Mantis#0001998: MCTL_ADDMACRO is broken
   (from Maximus)

drkns 19.01.2012 21:09:33 +0200 - build 2408

1. Angle brackets (<>) around "Up", "Folder", "Symlink", "Junction" list items moved to the language files.

drkns 19.01.2012 12:58:47 +0200 - build 2407

1. Mantis#0001995: During file editing some data was lost.

2. Correction of 2405.

svs 19.01.2012 13:52:00 +0400 - build 2406

1. Macro: KMFLAGS_SAVEMACRO fag is added.
   If the flag is specified then a macro added with MCTL_ADDMACRO command is stored in the storage (in DB).
   Note that the storage does not contain the ecomponents of MacroAddMacro structure: Callback and Id.

drkns 19.01.2012 09:07:54 +0200 - build 2405

1. closeconsolerule is gone.

t-rex 18.01.2012 21:35:50 +0200 - build 2404

1. And some more refactoring in configdb.

t-rex 18.01.2012 17:34:22 +0200 - build 2403

1. Making the same hotkeys for RegExp in editor and viewer search dialogs.

drkns 17.01.2012 23:24:42 +0200 - build 2402

1. Refactoring of configdb.

t-rex 17.01.2012 23:07:03 +0200 - build 2401

1. Plugins can store their settings in localprofile too.
   SettingsControl(SCTL_CREATE, PSL_LOCAL)

2. shortcuts settings moved to localprofile.
   Copy shortcuts.db from %FARPROFILE% to %FARLOCALPROFILE%.

svs 17.01.2012 16:16:32 +0400 - build 2400

1. Mantis#0001988: EF_CREATENEW does not work

svs 17.01.2012 12:09:27 +0400 - build 2399

1. Mantins#0001992: Crash on F4 in F11/AltShiftF9 if all item strings are filtered out
   (from Maximus)

zg 17.01.2012 03:18:47 +0200 - build 2398

1. 0001990: DE-locale: cannot press *.

drkns 17.01.2012 00:54:25 +0200 - build 2397

1. Warnings.

drkns 17.01.2012 00:19:46 +0200 - build 2396

1. sqlite 3.7.10.

zg 16.01.2012 23:44:52 +0200 - build 2395

1. 0001991: Parameters of AnalyzeW. OpenInfo->Data for OPEN_ANALYSE contains a pointer for AnalyseInfo.

2. In gcc build, sqlite.c moved to the beginning so that C files are compiled before C++ ones.
   It gives compile speedup when 'make -j' is used.

drkns 16.01.2012 19:08:55 +0200 - build 2394

1. History didn't work in macros.

svs 16.01.2012 11:30:20 +0400 - build 2393

1. Correction of Mantis#0001972

svs 15.01.2012 21:51:12 +0400 - build 2392

1. Mantis#0001989: Add Description field to Macro Settings dialog

drkns 15.01.2012 19:42:10 +0200 - build 2391

1. Folder shortcuts can be named.

drkns 15.01.2012 19:16:05 +0200 - build 2390

1. In some cases, folder shortcuts were not stored.

t-rex 15.01.2012 17:28:01 +0200 - build 2389

1. And 2384 once more. Now an empty line is shown in the list too.

2. ClearType configuration is on by default.

drkns 15.01.2012 17:18:52 +0200 - build 2388

1. Mouse wheel did not work in plugin menus.

t-rex 15.01.2012 13:53:19 +0200 - build 2387

1. Gosh, another error in 2384.

t-rex 15.01.2012 13:42:54 +0200 - build 2386

1. More "consequences" of Mantis#1801 - http://forum.farmanager.com/viewtopic.php?p=88686#p88686.

2. Also, some unused code is removed.

t-rex 15.01.2012 13:09:07 +0200 - build 2385

1. Error in 2384.

t-rex 15.01.2012 12:53:32 +0200 - build 2384

1. Dialogs history remembers an empty last item.

drkns 15.01.2012 11:31:09 +0200 - build 2383

1. Calling EMenu on [Shift]RightClick in a tree.

drkns 15.01.2012 11:07:08 +0200 - build 2382

1. Continuation of 2381: calling emenu in panels and on [Shift]Apps.

t-rex 15.01.2012 00:18:34 +0200 - build 2381

1. On RighClick or ShiftRightClick, the EMenu plugin is automatically called for a file in panels.
   On other combinations like CtrlRightClick there is selection as before.

drkns 14.01.2012 19:30:10 +0200 - build 2380

1. Fixing 2377.1 :)

2. MacroAddMacro structure is placed in more optimal way in x64.

t-rex 14.01.2012 12:53:19 +0200 - build 2379

1. Mantis#1985: Incorrect memory calculation for MCTL_GETLASTERROR.

t-rex 14.01.2012 11:37:20 +0200 - build 2378

1. Not all needed StructSize were filled in the wrapper.

t-rex 13.01.2012 20:17:07 +0200 - build 2377

1. Making "set | command" and "set > file" be passed to comspec.

2. Only first macro in xml was imported.

t-rex 13.01.2012 19:20:54 +0200 - build 2376

1. A minor change in API:
   MacroCheckMacroText is removed, MSSC_CHECK expects MacroSendMacroText.
   And a new command, MCTL_GETLASTERROR ->  Param1=size, Param2=MacroParseResult*.
   Needed size is returned.

2. Due to 1, potential heap corruption in the wrapper is fixed.

svs 13.01.2012 17:47:47 +0400 - build 2375

1. Get InfoList safe from the case when a plugin calls Info.PanelControl(FCTL_REDRAWPANEL) from
   ProcessViewerEventW in response to VE_READ which causes stack overflow :-(
   The scheme is following.
   VE_READ is fairly passed to the plugin once, but because InfoPanel is constantly recreating the viewer (if diz file exists),
   then multiple VE_READ appears with all those consequences.

w17 13.01.2012 17:45:10 +0400 - build 2374

1. gcc build recovered

drkns 13.01.2012 14:24:42 +0200 - build 2373

1. Adding some StructSize checks here and there.

svs 13.01.2012 16:18:16 +0400 - build 2372

1. Mantis#0001982: Get FAR settings in a macro: Far.Cfg.Get
   Macro: added
    a function allowing to get common settings...
      V=Far.Cfg.Get(Key,Name)
    macro constant
      Far.Cfg.Err = 0, there was no errors after Far.Cfg.Get call.
                  = 1, an error (key or name don't exist or an internal error)

   So far, not all values can be obtained using Far.Cfg.Get(), config.cpp has to be redone.

2. Again on "batteries" (see b.2297)
   Info panel automatic update is added in the case if it is visible and displaying of power state is on and visible.
   Automatic update on charge amount per cent is available in Vista and upper.

3. SysLog is slightly updated

t-rex 12.01.2012 20:22:49 +0200 - build 2371

1. Correction of 2368.

drkns 12.01.2012 20:04:46 +0200 - build 2370

1. Correction of 2369.

drkns 12.01.2012 19:00:38 +0200 - build 2369

1. Fix "far /? > file" and "far > file".

svs 12.01.2012 18:09:11 +0400 - build 2368

1. Import diagnostics (constant, variable, macro)
   For example,

      Constant (5,13): <name> is empty or not found

svs 12.01.2012 16:26:01 +0400 - build 2367

1. Mantis#0001655: Incorrect error message at macro parsing.
   Achtung: Don't forget that strings in macros are C-style.
           This means FAR expect control character after '\'.
           Also remember to use verbatim strings for paths
           (with '@' character before opening double quote) or duplicate '\'.

     Error  : panel.setpath(0,"HKEY_CURRENT_USER\Software")
     Correct: panel.setpath(0,"HKEY_CURRENT_USER\\Software")
     Correct: panel.setpath(0,@"HKEY_CURRENT_USER\Software")

drkns 11.01.2012 22:46:51 +0200 - build 2366

1. After elevation, ntstatus is received from a child process together with lasterror.

t-rex 11.01.2012 22:25:49 +0200 - build 2365

1. RegExp: \/ was not searched (if / was exactly the last character in the search line).

drkns 11.01.2012 21:50:32 +0200 - build 2364

1. A couple of things in Message:
   - for messages with MSG_ERRORTYPE, F3 can show an additional error information ( win32 error code and text, nt status code and text)
   - on CtrlC the message content is copied into clipboard (header + lines + buttons) as for winapi MessageBox.

2. Ibid: text replacement is removed for some types of errors.

t-rex 11.01.2012 21:53:39 +0200 - build 2363

1. No 'action's accepted. Something common for all the import has to be invented.
   Empty-means-deletion is simplest and most logical, drop any other variants.
   For vars, consts and macro there's the 'text' tag now, it may be CDATA, if it's absent
   then deletion takes place.
     <variable name="%NAME%" type="%TYPE%"><text>%VALUE%</text></variable>
     <constant name="%NAME%" type="%TYPE%"><text>%VALUE%</text></constant>
     <macro area="%AREA%" key="%KEY%"><text>%SEQUENCE%</text></macro>

svs 11.01.2012 22:17:46 +0400 - build 2362

1. Mantis#0001949: Macro call with AutoCompletion on
   Change in API!!!

   struct MacroAddMacro is appended with the Area field
   Now MCTL_ADDMACRO can add into areas other than 'common'

2. In xml, "macro" element is renamed to "macros"
   http://forum.farmanager.com/viewtopic.php?p=88391#p88391

3. Import/Export of macro variables, constants and sequences.
   action = "add|delete|ignore" is added
     <variable name="%NAME%" type="%TYPE%" action="%ACTION%">%VALUE%</variable>
     <constant name="%NAME%" type="%TYPE%" action="%ACTION%">%VALUE%</constant>
   if action is not given, "add" is implied
   "ignore" - the object is skipped at importing
   "delete" - the object is deleted from DB at importing
   %VALUE% may be CDATA

4. The beginning of diagnostics in import.
   So far in macros - detection of an error cancels importing of macros into the database.

5. Correction of TranslateKeyToVK.
   Internal INTERNAL_KEY_BASE_2 are translated to
   MENU_EVENT, FOCUS_EVENT and WINDOW_BUFFER_SIZE_EVENT

svs 11.01.2012 11:35:08 +0400 - build 2361

1. Mantis#0001915: Indication of errors in macros at eval
   Macro: eval(,3) checks the macro sequence and returns a string value:
      1) an empty string - no errors
      2) 4 strings separated with '\n' explaining the error:
         1: line and position in the string (for example <Line 1, Pos 1>
         2: error message text (for example <Unrecognized keyword 'foo'>)
         3: the erroneous sequence snippet (for example <"foo">)
         4: arrow - the character with code \x2191

   msgbox with flag 8 (left align) is recommended for displaying the lines
     msgbox(,eval("blahblahblah",3),8)

2. Some replacement of BOOL to bool

t-rex 11.01.2012 01:32:22 +0200 - build 2360

1. Mantis#1968: Do not save settings if unchanged.
   Now it's only generalconfig.db which is always written.

drkns 10.01.2012 16:41:31 +0200 - build 2359

1. Correction of 2327.

svs 10.01.2012 15:51:05 +0400 - build 2358

1. Mantis#0001923: Crash at attempt of filter (CtrlI) editing after filter applied (CtrlAltF)
   (from Maximus)

2. Mantis#0001921: Unreal lags in ECTL_ADDCOLOR
   (from Maximus)

3. Mantis#0001917: Far crash with CurPos called for DI_LISTBOX
   (from Maximus)

svs 10.01.2012 15:31:57 +0400 - build 2357

1. Mantis#0001945: Cannot move vertical block with the end of the line
   CurLine->GetSelection(...) is unapplicable to vertical blocks :-)

svs 10.01.2012 15:12:03 +0400 - build 2356

1. Mantis#0001198: Bugs in Editor.Set
   Bugs in 12-th ("Word separators") and 16-th ("Allow editing files opened for writing") options.

svs 10.01.2012 12:58:46 +0400 - build 2355

1. Mantis#0001972: ShiftHome and editor.sel(0,2)
   Returning ShiftHome behaviour as it had been before 1.7x build 1541.
   Now ShiftHome does not reset selection if the cursor is positioned to the beginning of the line.

2. Macro: editor.sel(0,3) returned values from 0 (must be 1)

drkns 09.01.2012 17:14:54 +0200 - build 2354

1. Mantis#0001975: FAR3 user menu eats hotkeys

w17 09.01.2012 17:15:14 +0400 build - 2353

1. Mantis#1723,1927: CPU load when idle on VM
   (originated by sezal)

svs 07.01.2012 22:34:28 +0400 - build 2352

1. Macro: Shell.AutoCompletion did not work, returning Dialog.AutoCompletion all the way

t-rex 07.01.2012 13:43:07 +0200 - build 2351

1. Minor corrections of history.

w17 03.01.2012 23:23:11 +0400 build - 2350

1. Mantis#1964: Viewer cannot find a text in UTF8 file
   This is not related to UTF-8, just a bug in text search

w17 03.01.2012 22:13:00 +0400 build - 2349

1. Mantis#1966: Error in search displaying.

drkns 02.01.2012 22:26:12 +0200 - build 2348

1. In 2214, mouse wheel handling in menu was broken.

2. Warnings.

3. Lng generator v1.3.

drkns 02.01.2012 15:48:46 +0200 - build 2347

1. FSF.InputBox's int DestLength is replaced with size_t DestSize.

svs 31.12.2011 12:30:32 +0400 - build 2346

1. Mantis#0001959: Error loading macros via MCTL_ADDMACRO

zg 31.12.2011 01:12:13 +0200 - build 2345

1. infinite recursion when calling from GetOpenPluginInfo, for example, opening an archive with Multiarc.

t-rex 30.12.2011 14:25:35 +0200 - build 2344

1. Mantis#1965: "A+" regular expression does not work.
   It didn't work just for capital letters.

2. Debug build failure.

zg 30.12.2011 03:46:41 +0200 - build 2343

All native plugins that use FCTL_SETPANELDIR/FCTL_GETPANELDIR do not work.

1. FCTL_GETPANELDIR->FCTL_GETPANELDIRECTORY. Param1 is the size of Param2. Param2 is a pointer to FarPanelDirectory.
   the result is the required size.

2. FCTL_SETPANELDIR->FCTL_SETPANELDIRECTORY. Param1 is 0. Param2 is a pointer to FarPanelDirectory.
   non-zero value is returned if successful.

drkns 30.12.2011 00:54:46 +0200 - build 2342

1. Alternative solution of 2335.1.

drkns 29.12.2011 19:43:12 +0200 - build 2341

1. You've got the idea.

drkns 28.12.2011 13:15:35 +0200 - build 2340

1. Fixing the broken.

drkns 27.12.2011 23:38:44 +0200 - build 2339

1. Fixing the broken.

drkns 27.12.2011 21:24:05 +0200 - build 2338

1. Summarizing http://forum.farmanager.com/viewtopic.php?t=5390, return History.Disable().

drkns 27.12.2011 16:03:21 +0200 - build 2337

1. Mantis#0001961: Cannot open CentOS-5.4 network share

drkns 27.12.2011 11:19:34 +0200 - build 2336

1. Fixing the broken.

drkns 26.12.2011 23:56:59 +0200 - build 2335

1. Another bug in the copier. I'm curious of what will fail this time.

2. Stripping trailing space characters in sources.

t-rex 26.12.2011 17:00:10 +0200 - build 2334

1. Mantis#1957: Associations choice menu.
   Only descriptions are shown (if any), descriptions are not truncated by length in edit menu.

2. xml -> farconfig

drkns 26.12.2011 16:31:23 +0200 - build 2333

1. Corrections in InfoPanel.

zg 26.12.2011 14:47:18 +0200 - build 2332

1. System.Executor\ExcludeCmds malfunction.

t-rex 25.12.2011 23:41:38 +0200 - build 2331

1. No, we'd better return the old input mode, it has ever been that.

t-rex 25.12.2011 23:32:34 +0200 - build 2330

1. Out of 2324, a bug showed up: console mode does not recover for output handles after external console apps start.
   Some apps zero them, which leads to hilarious bugs when next console programs are run.
   Also, more correct mode is set for the input handle, just in case.

drkns 25.12.2011 19:28:52 +0200 - build 2329

1. QuickView: allocated size is correctly calculated for several hard links inside the directory. Experimental.

zg 25.12.2011 14:48:29 +0200 - build 2328

1. experimental obtaining of confirmation settings via SettingsControl(...,SCTL_GET,...).
   Root - FSSF_CONFIRMATIONS, Name - L"CopyOverwrite", L"MoveOverwrite" etc.

drkns 25.12.2011 14:17:13 +0200 - build 2327

1. "packed size" replaced with more correct "allocated size".
2. In connection with #1, the changes in QuickView: real size == allocated size, the MFT stored files size is taken correctly.

zg 25.12.2011 13:43:10 +0200 - build 2326

1. experimental obtaining of dialogs history via SettingsControl. it is similar to other types of history,
   except that the root is requested in this way:
     FarSettingsValue value={0,L"NewFolder"};
     root=Info.SettingsControl(Settings,SCTL_OPENSUBKEY,0,&value);

drkns 24.12.2011 23:50:51 +0200 - build 2325

1. Mistype in 2324.

drkns 24.12.2011 21:39:08 +0200 - build 2324

1. Mantis#0001953 - the 2nd attempt.

drkns 24.12.2011 19:34:24 +0200 - build 2323

1. For "out of the box" plugins, Far 1/2 compatible default hotkeys are set in drive menu (once).

t-rex 24.12.2011 19:15:47 +0200 - build 2322

1. Mantis#1955: Editing of macros.

drkns 24.12.2011 19:03:54 +0200 - build 2321

1. GlobalInfo structure excessive zeroing (Mantis#0001956).

drkns 24.12.2011 18:53:03 +0200 - build 2320

1. Rollback of Mantis#0001953.

svs 24.12.2011 20:18:35 +0400 - build 2319

1. Mantis#0001953: cmd.exe excessive call
   (from Maximus)

svs 24.12.2011 19:22:19 +0400 - build 2318

1. Corrections of several places that have seemed unacceptable to the analyzer...

2. set USE_ANALYZE=1 switches the analyzer on (adds /analyze).

3. Mantis#0001951: Incorrect InputRecord in DN_CONTROLINPUT event
   Correction: Bug: "Ctrl+A means CtrlShift+A"

svs 24.12.2011 15:33:15 +0400 - build 2317

1. Mantis#0001951: Incorrect InputRecord in DN_CONTROLINPUT event

drkns 24.12.2011 12:59:03 +0200 - build 2316

1. Mantis#0001954: copying a directory to "admin" folder fails

t-rex 24.12.2011 11:50:29 +0200 - build 2315

1. BOOL -> bool in several places.

2. Let's make vc10wrapper.cpp usable in plugins without copying.

drkns 23.12.2011 23:43:51 +0200 - build 2314

1. vc10.asm redesign - <En|De>codePointer are replaced with stubs only if they are missing in OS.

t-rex 23.12.2011 12:49:15 +0200 - build 2313

1. Mantis#1201: Far 2 does not open an URL.

2. BOOL -> bool in several inner functions.

t-rex 23.12.2011 10:12:31 +0200 - build 2312

1. Mantis#1952: Safe removal with Shift-Del does not work.

svs 22.12.2011 23:55:28 +0400 - build 2311

1. Mantis#0001949: Macro call with AutoCompletion switched on
    1. Fixing <akey(1,0) returns a "smiley" instead of ShiftEnter>
    2. Removing "AutoCompletion" section, adding 2 others: "Shell.AutoCompletion" and "Dialog.AutoCompletion".

t-rex 22.12.2011 18:20:50 +0200 - build 2310

1. RCtrl and RAlt were passed incorrectly in ANSI plugins panel.

w17 22.12.2011 16:50:49 +0400 build - 2309

1. mistype in string constructor

svs 22.12.2011 16:29:40 +0400 - build 2308

1. InfoPanel: Ctrl-digit combinations are removed.
   Define them with macros using Ctrl-F12 menu

drkns 22.12.2011 13:37:44 +0200 - build 2307

1. More on info panel.

drkns 22.12.2011 11:04:18 +0200 - build 2306

1. Correction of displaying of common size at copying.

2. InfoPanel: computer info (if available), user info (if available), user access level (guest/user/admin).

t-rex 21.12.2011 21:24:04 +0200 - build 2305

1. A couple of minor issues.

drkns 21.12.2011 20:58:55 +0200 - build 2304

1. One more correction regarding to skipping of "." and ".." reading a directory.

drkns 21.12.2011 20:33:19 +0200 - build 2303

1. Inner functions are partly refactored from 'const wchar_t*' to 'const string&' because string.CPtr() is already passed almost everywhere.
   This should reduce wcslen usage etc.

2. Elevation works in encryption/decryption.

w17 21.12.2011 17:12:54 +0400 build - 2302

1. 0001950: Erroneous switching to Dump mode on Unicode files

w17 15.12.2011 22:40:32 +0400 build - 2301

1. Mantis #1235: Incorrect Shift-Del functioning on storage devices with more than 1 partition
   (from Arty)

svs 15.12.2011 21:39:07 +0400 - build 2300

1. Correction of build 2297

w17 15.12.2011 19:04:57 +0400 build - 2299

1. Mantis #1944 - fix

drkns 14.12.2011 13:20:46 +0200 - build 2298

1. Mantis#0001944: FAR crashes at creation a symbolic link to a file or a directory

svs 13.12.2011 21:39:00 +0400 - build 2297

1. Mantis#0001943: Correction of some flaws in Message function
   (from shmuel)

2. InfoPanel:
   - sections can be hidden (Ctrl0..Ctrl9 or via Ctrl-F12 menu)
   - (experimental) "Power Info" section is added - the power state (shown via settings)
   - changes in help

zg 13.12.2011 17:39:38 +0200 - build 2296

1. rollback of 2286 b-f.

drkns 12.12.2011 15:20:01 +0200 - build 2295

1. Mantis#0001461: In Drive Menu, ShiftEnter on CD/DVD drive without a disc causes a black screen

w17 09.12.2011 14:37:30 +0400 build - 2294

1. Mantis #1151: Incorrect destination path after choosing "Retry" when copying a folder with files to a Flash drive

w17 09.12.2011 07:13:09 +0400 build - 2293

1. Mantis #1937 - Editor RCtrl+Alt+...

svs 08.12.2011 21:40:53 +0400 - build 2292

1. Mantis#0001940: Builtin macro editor
   Place "Change" button between "Yes" and "No".

svs 08.12.2011 19:59:48 +0400 - build 2291

1. Mantis#0001940: Builtin macro editor
   On deletion, the "Change" button appears, invoking the macro settings dialog.

2. macros.db is redone.
   Instead of plugin_functions table, there's "functions", likewise in XML, 'plugin' is replaced with 'function'.

   The previous database must be deleted (export then import to keep data).

w17 08.12.2011 12:26:58 +0400 build - 2290

1. #1938: After ECTL_DELETESTRING, blocks in the editor cease working

w17 08.12.2011 00:07:18 +0400 build - 2289

1. Mantis #514 - continuation
   console buffer scrolling is functional if the current mode is neither the editor nor the viewer. ScrollLock is not checked.

w17 07.12.2011 23:53:06 +0400 build - 2288

1. Mantis #1939 Viewer - searching progress state in the taskbar

svs 07.12.2011 16:15:27 +0400 - build 2287

1. On importing to DB, a macro sequence is stripped all leading and trailing space characters.

2. macros.db is redone.
   constants & variables are appended with 'type' field - the type of 'value' field contents.
   This is a string value, it can be one of the following ones:

    "unknown"  - undefined
    "integer"  - (__int64)
    "text"     - string
    "real"     - floating-point (double)

   'value' is still stored as a string, it is converted to a given type at startup.
   if 'type' differs from those listed, it is considered as a string in the core.
   If the type is specified as "unknown" in DB then the value is previously converted into "integer" (not regarding to errors) and forcingly assigned the vtUnknown type.

   Examples in XML:

        <constants>
            <constant name="ACTIVEPANEL" value="0" type="integer"/>
            <constant name="PI" value="3.14159265358979323846" type="real"/>
        </constants>
        <variables>
            <variable name="%%PI" value="3.14" type="text"/>
        </variables>


   The previous database must be deleted (export then import to keep data).

   TODO: error diagnostics at import!

w17 07.12.2011 12:59:31 +0400 build - 2286

1. Mantis #514 - block selection in editor.
   Changes:
   a) scrolling of console buffer for 'far /w' is functional only with ScrollLock on
   b) Ctrl-Shift/Alt-Up/Down == Shift/Alt-Up/Down
   c) Copying to clipboard does not reset selection
   d) Per-line wrapping for [Ctrl-]Shift-Left/Right
   e) Cursor moving with Ctrl-Shift/Alt-Left/Right is same as with Ctrl-Left/Right except special cases -- 'anchor' crossing resets the selection at first;
      moving beyond the line to the left through the end of the line
   f) Beyond the line, Ctrl-Alt-Right == Alt-Right == move 1 position to the right

drkns 07.12.2011 08:16:57 +0200 - build 2285

1. Correction of 2284.

svs 06.12.2011 16:13:24 +0400 - build 2284

1. New macros.db format.
   'area', 'key' and 'flags' fields are now stored as a text
   (in order to avoid future problems caused by changing them inside Far)

   The previous database must be deleted (export then import to keep data).

drkns 05.12.2011 18:56:56 +0200 - build 2283

1. More on Mantis#0001221.

drkns 05.12.2011 17:05:29 +0200 - build 2282

1. Mantis#0001935: when importing from xml, variables are placed into constants section

1. More on Mantis#0001221.

drkns 05.12.2011 13:21:32 +0200 - build 2281

1. Changes of macro description format in xml. The new one is: <macro area="%AREA%" key="%KEY%" flags="%FLAGS%" description="%DESC%">%SEQUENCE%</macro>

drkns 04.12.2011 15:46:27 +0200 - build 2280

1. Macros can be deleted when importing xml. This is done by leaving 'sequence' attribute empty or unspecified.

drkns 04.12.2011 00:49:21 +0200 - build 2279

1. Continuation of 2278.

drkns 04.12.2011 00:11:58 +0200 - build 2278

1. Mantis#0001933: macro settings are not restored with far.exe /import

drkns 03.12.2011 19:38:39 +0200 - build 2277

1. Mantis#0001221: hard link coloring in panels

2. Mantis#0001932: cannot delete a macro

drkns 03.12.2011 01:01:16 +0200 - build 2276

1. Correction of 2274.1.

w17 03.12.2011 02:30:31 +0400 - build 2275

1. fixing gcc 64 build

drkns 02.12.2011 22:08:21 +0200 - build 2274

1. It's finally done, Far does not store settings in the registry.
  - Mantis#0001840: Macro && DB. Something could go wrong, be careful.

2. AltEnter (+modifiers) is available is OS's which do not support hardware fullscreen mode.

drkns 30.11.2011 21:41:38 +0200 - build 2273

1. Plugin settings databases got descriptions.

drkns 27.11.2011 23:32:27 +0200 - build 2272

1. Incorrect handling of the packed size obtaining error.

2. Support for privilege elevation when obtaining the packed size.

w17 24.11.2011 00:13:34 +0400 build - 2271

1. Mantis #1925, #1326: Editor replace string selection fix.

drkns 19.11.2011 23:35:25 +0200 - build 2270

1. Incorrect processing of FMSG_MB_* flags in the wrapper.

w17 17.11.2011 02:55:35 +0400 build - 2269

1. Continuation of 2268

w17 16.11.2011 13:43:39 +0400 build - 2268

1. Common code is taken out of makefile_gcc in order to use it for building plugins.

drkns 13.11.2011 00:51:23 +0200 - build 2267

1. Using SetUnhandledExceptionFilter.

drkns 10.11.2011 16:28:04 +0200 - build 2266

1. The default file highlighting was not applied if highlight.db was opened in memory.

svs 10.11.2011 12:29:47 +0400 - build 2265

1. Mantis#0001198: Bugs in Editor.Set
   The following options have become RW for Editor.Set(): 8, 12, 13, 14, 17, 18

2. Mantis#0001912: The macrofunction to assign the input focus to the dialog item which had been focused before the current one.
   Additions:
    1. Dlg.PrevPos - previous focused item number (in addition to Dlg.CurPos)
    2. N=Dlg.SetFocus([ID]) - set the focus to the item with number ID
       If ID is not given, it returns the focused item number
       Return:
         -1 - inner error or the function is called outside a dialog
          0 - an attempt to position to an unfocused item
         >0 - previous focused item number

svs 09.11.2011 06:42:02 +0400 - build 2264

1. SQLite 3.7.9

2. Correction of build 2246

w17 07.11.2011 22:30:08 +0400 build - 2263

1. HOSTTYPE is Windows by default, Cygwin != Unix

drkns 07.11.2011 09:41:27 +0200

1. HOSTTYPE is Windows by default.

w17 07.11.2011 11:30:15 +0400 build - 2262

1. 2252 - Vstudio build repaired

w17 07.11.2011 03:58:15 +0400 build - 2261

1. 2252 one more time - the return of -O3

w17 05.11.2011 01:02:42 +0400 build - 2260

1. gcc #pragma for 4.6 only

w17 04.11.2011 21:49:00 +0400 build - 2259

1. Again, a fix for 2252 - msys mingw fix

w17 04.11.2011 20:09:02 +0400 build - 2258

1. A fix for 2257.2 (__GNUC_MINOR__)

w17 04.11.2011 20:05:17 +0400 build - 2257

1. Correction of 2252.2

2. nullptr for gcc < 4.6.1

drkns 04.11.2011 14:10:46 +0200 - build 2256

1. An attempt of UnicodeString speeding up with the use of a stack buffer.

2. Minor things.

w17 04.11.2011 14:53:20 +0400 build - 2255

1. Correction of 2252.2

w17 04.11.2011 14:14:30 +0400 build - 2254

1. Correction of 2252.2

w17 04.11.2011 14:10:35 +0400 build - 2253

1. Correction of 2252.1

w17 04.11.2011 11:14:20 +0400 build - 2252

MinGW gcc build
   The following ones are supposed to be functional:
    Windows builds with tdm-gcc 32/64, including far32 build with tdm64;
    Cygwin/Linux builds with MinGW 32/64 cross compiler, 32-32 and 64-64 only;

   The checked ones are MinGW 4.5.2 (gcc header file must be edited), 4.6.1, 4.6.2

   ACHTUNG!
   -mno-cygwin flag is removed, MinGW does not need it, cygwin gcc does not support it since 1.7.6

drkns 31.10.2011 13:24:03 +0200 - build 2251

1. Correction of 2224.1.

drkns 27.10.2011 13:08:21 +0300 - build 2250

1. Mantis#0001918: FAR crash on "Standard association" choice

drkns 25.10.2011 20:14:28 +0200

1. Far.exe.ini -> Far.exe.example.ini

w17 25.10.2011 17:09:29 +0400 build - 2249

1. Viewer - errors are fixed, scroll bar drawing is normalized.

2. Viewer - Simplification of previous mode saving logic in Goto dialog (AltF8)

drkns 24.10.2011 15:07:04 +0300 - build 2248

1. Continuation of 2247.1.

drkns 24.10.2011 12:05:37 +0300 - build 2247

1. Mantis#0001916: Far silent crash on sqlite format incompatibility.
   Now "at incompatibility" we try old database backup and create a correct one, if this also fails, the base is opened in memory.

zg 24.10.2011 00:38:08 +0200 - build 2246

1. human readable names for structures and their fields connected with DN_GETVALUE.

2. FarSettingsHistoryPlugin.->FarSettingsHistory.PluginId.

3. FARMACROVARTYPE is numbered from 0.

zg 23.10.2011 21:11:21 +0200 - build 2245

1. when replacing "folder shorcuts" from plugin's one to real path, not all fields were cleared.

zg 23.10.2011 20:56:26 +0200 - build 2244

1. obtain information on "folder shorcuts" in the same manner as for histories.

zg 23.10.2011 19:47:51 +0200 - build 2243

1. additional parameters are returned for histories.

zg 22.10.2011 23:54:52 +0200 - build 2242

1. alignment of data returned by FCTL_GET*PANELITEM.

zg 22.10.2011 03:52:53 +0200 - build 2241

1. correction of 2240.2 for capital letters.

zg 22.10.2011 03:17:46 +0200 - build 2240

1. input of RAlt+character was broken in 2127.

2. ibid, CtrlRAlt started adding to characters typed in with RAlt.

3. KEY_CTRLALTSHIFTPRESS does not arrive when RAlt or RCtrl is pressed.

zg 21.10.2011 23:56:07 +0200 - build 2239

1. SavePluginFoldersHistory option is removed.

2. plugins are always added to history and if a plugin behaves correctly then jump from history is available.
   old history.db must be deleted.

3. fix for a crash when jumping from inside a file with a folder shortcut into another file processed with the same plugin.

zg 21.10.2011 09:36:48 +0200 - build 2238

1. Folder Shortcuts stores Guid for plugins, not a module name.

zg 20.10.2011 17:25:55 +0200 - build 2237

1. correction of 2232.1. return time in UTC and the lock flag.

zg 20.10.2011 15:58:27 +0200 - build 2236

1. tdm64-gcc build: make DIRBIT=64 -f makefile_gcc.

drkns 20.10.2011 14:15:52 +0300 - build 2235

1. Before codepage change, conversion correctness check is performed.

drkns 20.10.2011 09:40:46 +0300 - build 2234

1. If codepage change in editor has messed up the text, do not remember the codepage.

w17 20.10.2011 09:49:18 +0400 build - 2233

1. Makeup for #1905

zg 20.10.2011 01:33:55 +0200 - build 2232

1. experimental obtaining of FAR settings via SettingsControl. History only so far.
   id must be set to FarGuid, the command is SCTL_ENUM, Root must be set to one of
   FARSETTINGS_SUBFOLDERS values.

w17 19.10.2011 22:36:30 +0400 build - 2231

1. Mantis #1905 again

zg 19.10.2011 17:15:15 +0200 - build 2230

1. DM_ADDHISTORY crashed for created but not shown dialog.

w17 19.10.2011 18:02:30 +0400 build - 2229

1. 1905: viewer dump mode

zg 19.10.2011 14:50:58 +0200 - build 2228

1. wrapper: correction of DM_LISTGETDATA and DM_LISTSETDATA.

drkns 19.10.2011 08:39:52 +0300 - build 2227

1. [x] Clock in viewer and editor

drkns 18.10.2011 19:17:20 +0200 - build 2226

1. Waiting cancellation possibility for "far /v -".

drkns 18.10.2011 19:03:32 +0200 - build 2225

1. Correction of 2224.1.

drkns 18.10.2011 14:33:06 +0300 - build 2224

1. Now synchronous I/O operations can be interrupted (hello goes to Network plugin). Ctrl-Break.

w17 16.10.2011 12:39:32 +0400 build - 2223

1. Mantis#1791: "Cannot find the file" on F5 after Ctrl+Tab from a file saved in editor

drkns 14.10.2011 18:30:56 +0200 - build 2222

1. "Inactivity time" option no longer exists.

w17 14.10.2011 18:01:33 +0400 - build 2221

1. Mantis#1823: Viewer auto-update on flash drives

svs 13.10.2011 17:44:03 +0400 - build 2220

1. Mantis#0001882: Enable "hooking" of Dlg.GetValue and ItemCount/CurPos macrofunctions in dialogs.

   Correction of DN_GETVALUE

   ACHTUNG!
      Indices in macros start with 1, opposed to 0 in API.

   In macros: dlg.getvalue(Index,TypeInf)

     If (Index > 0  && Index <= DlgItemCount)
     {
        see dlg.getvalue description (just consider that the plugin receives Index-1)
        /*
           DlgItemCount is got via dlggetvalueFunc(0,0)
        */
        It returns to the macro exactly what the plugin has returned.
        /*
          Here the plugin can return FMVT_INTEGER/FMVT_UNKNOWN or FMVT_DOUBLE or FMVT_STRING.
        */
     }

     If (Index > DlgItemCount)
     {
        1) the plugin receives (DN_GETVALUE,Index-1,{FMVT_INTEGER,TypeInf}) in its dialog procedure.
           /*
              FMVT_INTEGER - exactly, in order to simplify the description :-)
           */
        2) The macro receives exactly what the plugin has returned.
           /*
             Here the plugin can return FMVT_INTEGER/FMVT_UNKNOWN or FMVT_DOUBLE or FMVT_STRING.
           */
     }

     If (Index == 0) // this is about the dialog
     {
        If (TypeInf is 0 to 6)   // "6" - so far, may be expanded in the future :-)
        {
           see dlg.getvalue description (just consider that the plugin receives Index-1, i.e. -1)
           The macro receives exactly what the plugin has returned.
           /*
             Here the plugin can return FMVT_INTEGER/FMVT_UNKNOWN or FMVT_DOUBLE or FMVT_STRING.
           */
        }
        Else
        {
           the dialog procedure receives the value {FMVT_UNKNOWN, 0} (the plugin gets Index-1, i.e. -1)
        }
     }

     If (the current domain is not a dialog) or (Index < DlgItemCount and an inner error has taken place)
     {
        the plugin does not get DN_GETVALUE.
     }


svs 13.10.2011 15:23:12 +0400 - build 2219

1. Mantis#0001595: Problems with mmode(1,0) in editor
    mmode(1,0) enables screen displaying.
    Nevertheless, in some cases it's been the case of the editor stay uncolored.

   Catching bugs so far ;-)

svs 12.10.2011 11:38:10 +0400 - build 2218

1. Info panel was not updated after changes made in info panel settings dialog.

w17 11.10.2011 13:49:00 +0400 - build 2217

1. Mantis#1901: Position saved on F6 switching (editor/viewer)

2. Mantis#1766: viewer new version
   Removal of artifacts when searched text gets into WWrap area

svs 10.10.2011 17:21:48 +0400 - build 2216

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName  problem
   (from Maximus)

svs 09.10.2011 15:29:43 +0400 - build 2215

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from shmuel)
   "...broken input with Russian keyboard layout in a plugin..."

svs 06.10.2011 16:08:21 +0400 - build 2214

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from Maximus)

drkns 06.10.2011 13:33:04 +0200 - build 2213

1. And more.

drkns 05.10.2011 16:46:24 +0200 - build 2212

1. More on #1899.

svs 05.10.2011 11:40:27 +0400 - build 2211

1. Mantis#0001899: Show information on plugin (GUID etc.) in F11/F4
   (from Maximus)
   F3 invokes a dialog containing technical information on the plugin.

svs 04.10.2011 10:07:48 +0400 - build 2210

1. Mantis#0001766: Viewer new version
   (from 2useven10)

svs 03.10.2011 12:02:41 +0400 - build 2209

1. Mantis#0001529: Incorrect action of setposidx macrofunction

2. SQLite updated to "3.7.8"

3. In the wake of "0001897: cannot build Far 3.0 with gcc" - "Include".

svs 01.10.2011 10:20:58 +0400 - build 2208

1. Mantis#0001677: Set "starting" key code with MCMD_POSTMACROSTRING on macro start

svs 30.09.2011 15:09:04 +0400 - build 2207

1. Mantis#0001898: bugs in editor drawing after macro finish
   (from Maximus)

svs 29.09.2011 09:49:28 +0400 - build 2206

1. Mantis#0001766: Viewer new version
   (from 2useven10)

drkns 27.09.2011 21:38:14 +0200 - build 2205

1. Mantis#0001894: Plugin list display inaccuracy.

drkns 26.09.2011 08:58:57 +0200 - build 2204

1. Correction of types in plugin.hpp

drkns 25.09.2011 19:11:11 +0200 - build 2203

1. FarListTitles.TitleLen => FarListTitles.TitleSize,
   FarListTitles.BottomLen => FarListTitles.BottomSize.

svs 23.09.2011 10:29:38 +0400 - build 2202

1. Mantis#0001888: [A|P]Panel.Format

2. Mantis#0001887: FCTL_GETPANELPREFIX
   Panel API: added FCTL_GETPANELPREFIX

drkns 22.09.2011 11:03:59 +0200 - build 2201

1. Mantis#0001883: Spaces generated in editor when using numeric keypad.

drkns 20.09.2011 11:28:28 +0200 - build 2200

1. Console color is restored after applications launch.

svs 19.09.2011 09:48:39 +0400 - build 2199

1. Mantis#0001882: Enable "interception" of Dlg.GetValue and ItemCount/CurPos macrofunctions in dialogs.

   A new notification message for dialog procedures is added: DN_GETVALUE (=4118)
   DN_GETVALUE is sent to the dialog procedure each time when Dlg.GetValue(), ItemCount and CurPos occur in macros.

     Param1 = dialog item number
     Param2 = pointer to TFarGetValue structure (filled in)

     The plugin returns:
       0 - macro engine ignores it
       1 - Param2 contains modified data - macro engine takes the data.

     Here TFarGetValue is:

      struct FarMacroValue
      {
      	enum FARMACROVARTYPE type;
      	union
      	{
      		__int64  i;
      		double   d;
      		const wchar_t *s;
      	} Value;
      };

     the type of the variable:

      enum FARMACROVARTYPE
      {
      	FMVT_UNKNOWN                = -1,
      	FMVT_INTEGER                = 0,
      	FMVT_STRING                 = 1,
      	FMVT_DOUBLE                 = 2,
      };

   Dlg.GetValue() call is done for any dialog item.
   ItemCount and CurPos - for ListBox, opened Combobox and usercontrol only.
   Macro engine "calculates" needed data at first, then asks the dialog procedure
   for confirmation "is it right? if it isn't then correct it". In case of positive answer (!= 0)
   it places data returned by the dialog procedure into the stack.

2. Macro: For Dlg.GetValue(), Type = 11 is added for ListBox and opened Combobox:
    Number, "return list items number".

svs 13.09.2011 15:28:38 +0400 - build 2198

1. Mantis#0001785: A problem with launch if the command line contains "="
   (from 2useven10)

svs 12.09.2011 14:35:48 +0400 - build 2197

1. Mantis#0001873: Highlighted keys in Options - System settings
   (from Raistlin)

2. Some corrections in lng (translation, hotkeys)

drkns 12.09.2011 13:23:34 +0200 - build 2196

1. In some cases, console output could be lost partially after applications run.

svs 12.09.2011 09:46:52 +0400 - build 2195

1. Mantis#0001766: Viewer new version
   (from 2useven10)

   "...started noticing the last viewer version incorrectly display
   first lines when '[x] Save view and edit history' is on.
   i'm watching it in changelog, i.e. watch the current revision, then
   do "svn up" in a few days, open changelog in viewer -
   first lines float all over the screen in some incomprehensible manner.
   After Home and reopen it settles down..."

svs 09.09.2011 17:32:26 +0400 - build 2194

1. Mantis#0000698: Fast search improvement
   The first approximation. So far, it is not included into main compilation (until Mantis_698 define is specified)
   Fast search is implemented for all visible fields.

svs 05.09.2011 19:46:49 +0400 - build 2193

1. Mantis#0001869: panel.select(0,1,2,clip(0)) does not mark files with names containing a comma
   <ACHTUNG>

      For Items string values in panel.select():
      Elements must be separated with Lf ("\n") or CrLf ("\r\n").

   </ACHTUNG>

svs 05.09.2011 19:05:38 +0400 - build 2192

1. Mantis#0001871: Drawing bug in editor

drkns 05.09.2011 09:11:02 +0200 - build 2191

1. A new flag in EDITORCOLORFLAGS: ECF_TABMARKCURRENT. It is similar to ECF_TAB1, but instead of first TAB character, the one matching to editor's cursor horizontal coordinate is colored.

2. ECF_TAB1 is renamed to ECF_TABMARKFIRST.

zg 04.09.2011 14:40:56 +0200 - build 2190

1. ACTL_WAITKEY: Param1=0, Param2 - pointer to INPUT_RECORD or NULL for any other key.

zg 03.09.2011 13:06:29 +0200 - build 2189

1. FarMenuItem.AccelKey now has FarKey type.

svs 02.09.2011 09:26:36 +0300 - build 2188

1. Correction of build 2187

svs 01.09.2011 22:03:43 +0300 - build 2187

1. Mantis#0001743: Possibility of switching the history off
   prompt() - if non-empty `history` is given, then force history setting (at the time of calling this function).

svs 01.09.2011 17:34:54 +0300 - build 2186

1. debug compilation minor issues

2. Command line keys /clearcache, /export and /import are included in the help

drkns 01.09.2011 15:07:03 +0200

1. Correction of 2185.2 - manual synchronization.

drkns 01.09.2011 14:15:09 +0200 - build 2185

1. Include\DlgBuilder.hpp is now generated like other headers.

2. On svn_tag_build.bat run a headers synchronization attempt is done in ..\plugins\common\unicode too.

drkns 31.08.2011 15:55:08 +0200 - build 2184

1. ECTL_PROCESSKEY is removed.

svs 30.08.2011 10:43:11 +0300 - build 2183

1. Mantis#0001866: Make all prompt() parameters optional
   correction of build 2182

svs 30.08.2011 10:16:23 +0300 - build 2182

1. Mantis#0001863: Omitted string as the parameter of a function

   !!!Highly experimental, tested on `prompt` and `msgbox` only!!!

   Now parameters can be skipped :-)

   For example,
     prompt("Title","Text",0x08,,"History")
   works the same way as
     prompt("Title","Text",0x08,"","History")

2. Mantis#0001866: Make all prompt() parameters optional


svs 29.08.2011 14:39:57 +0300 - build 2181

1. Mantis#0001864: Debug version crash when executng a written macro

2. Mantis#0001856: bringing to common UserData
   (from samlyukov)

drkns 29.08.2011 08:42:09 +0200 - build 2180

1. Correction of 2179.2.

drkns 28.08.2011 17:57:54 +0200 - build 2179

1. Mantis#0001865: initialization of the colors array in dialog.cpp

2. A couple of minor issues.

svs 28.08.2011 15:26:06 +0300 - build 2178

1. Mantis#0001766: Viewer new version
   (from 2useven10)
   Automatic scroll optimization for Win7.
   The cache is not reset if the file is just growing.
   On XP, the effect is negligible.

2. Mantis#0001846: Incorrect reaction to mouse click in F1

drkns 27.08.2011 16:40:43 +0200 - build 2177

1. Warnings.

2. The structures are redone again, now for x86 too.

drkns 27.08.2011 11:28:44 +0200 - build 2176

1. Correction of 2175.1.

drkns 26.08.2011 16:54:08 +0200 - build 2175

1. ClearStruct() and ClearArray() templates for zero filling structures and arrays, which set the correct size automatically.
   <ACHTUNG>Use them instead of memset.</ACHTUNG>

2. The size was not always filled in PluginInfo.

zg 25.08.2011 23:22:28 +0200 - build 2174

1. Mantis#0001864: Debug version crash on recorded macro run.

drkns 25.08.2011 22:47:06 +0200 - build 2173

1. Warnings.

2. Some structures are changed for more optimal layout in x64. The plugins must be rebuilt.

svs 25.08.2011 16:22:47 +0300 - build 2172

1. Mantis#0001858: Return 0 on prompt() dialog close with Esc

svs 25.08.2011 16:01:01 +0300 - build 2171

1. Keyboard engine being rewritten. The beginning.

   Macro::ProcessKey(int) -> Macro::ProcessEvent(FAR_INPUT_RECORD)

    struct FAR_INPUT_RECORD
    {
      DWORD IntKey;
      INPUT_RECORD Rec;
    };
    if IntKey == 0, then looking to Rec, else IntKey is containing KEY_

drkns 25.08.2011 11:48:38 +0200 - build 2170

1. Mistype in 2169.

drkns 25.08.2011 11:36:00 +0200 - build 2169

1. Mantis#0001862: Static analysis of the code.

svs 25.08.2011 11:32:30 +0300 - build 2168

1. Mantis#0001861: "File selection" chapter
   (from Maximus)
   "File selection" is updated.

2. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from Maximus)
   Right CtrlShiftDot was broken in macro recording.

drkns 25.08.2011 10:05:45 +0200 - build 2167

1. Mantis#0001833: File search is not thread safe.

drkns 25.08.2011 09:54:06 +0200 - build 2166

1. Mantis#0001860: In CtrlL, text labels from plugin are drawn with the border color.

drkns 24.08.2011 23:47:55 +0200 - build 2165

1. A critical section instead of a mutex in PluginSynchro.

2. A couple of minor issues.

svs 24.08.2011 17:15:00 +0300 - build 2164

1. FSF.FarNameToInputRecord returns TRUE even if a non-existing key name is passed, for example, "foobar".

zg 23.08.2011 22:43:26 +0200 - build 2163

1. macros added with MCTL_ADDMACRO are always checked in the same order.

zg 23.08.2011 22:11:33 +0200 - build 2162

1. MCTL_ADDMACRO: correction for several macros bound to the same key.

2. correction of deallocation of memory occupied by macros on FAR exit.

svs 23.08.2011 21:49:44 +0300 - build 2161

1. Mantis#0001858: Return 0 when closing the prompt() dialog with Esc
   - 0x01 flag is forced, i.e. prompt returns an empty string when Enter is hit on the empty input line
   - for Esc, numeric 0 is returned instead of a string (implemented in build 2160 :-)

zg 23.08.2011 19:43:46 +0200 - build 2160

1. correction of 2159.3.

zg 23.08.2011 17:33:27 +0200 - build 2159

based on Mantis#0001486

1. MacroControl first parameter is the plugin's GUID.

2. MCTL_ADDMACRO: new API for adding a macro into "memory".
   Param1 - 0
   Param2 - MacroAddMacro pointer.
   MacroAddMacro:
     Flags - flags as in MCTL_SENDSTRING.
     AKey - key which the macro is bound to.
     SequenceText - the text of the macro.
     Description - the description of the macro.
     Id - an identifier which is unique throughout the plugin.
     Callback - a function called before the macro is run. the first parameter is the macro ID. it may check something and return TRUE, meaning whether to run the macro, or FALSE - not to run.
   all macros are added into the Common area.

3. MCTL_DELMACRO delete a macro.
   Param1 - 0
   Param2 - Id of the macro.


drkns 23.08.2011 15:46:49 +0200 - build 2158

1. In editor status line, the character index is displayed in addition to the column index.

2. Now AltF8 in editor jumps to line/character instead of line/column.

drkns 23.08.2011 10:41:13 +0200 - build 2157

1. Mistype in 2155.

2. Correction of 2105 - Menu() second parameter was mandatory.

svs 22.08.2011 17:53:53 +0300 - build 2156

1. Now all enum's in plugin.hpp contain explicit values of public constants (everything inside FAR_USE_INTERNALS is an exception).

   <ACHTUNG>

     Set explicit constant values when adding them into plugin.hpp!

   </ACHTUNG>

   PS.
     Now one can group the constants meaningfully in bounds of a single enum (for instance, in FARMESSAGE)

drkns 22.08.2011 14:04:40 +0200 - build 2155

1. imports.?pp refactoring

2. Other minor issues.

svs 22.08.2011 11:33:37 +0300 - build 2154

1. Mantis#0001792: Add FAR Process ID to info panel and window header

   "%PID" variable is added to the header template (Options -> Interface settings -> Far window title addons) containing
   the process ID of Far Manager current instance.

2. Macro: Far.PID variable is added, containing the process ID of Far Manager current instance.

drkns 17.08.2011 15:43:18 +0200 - build 2153

1. Smart ARRAYSIZE() for gcc.

2. C++0x warnings.

3. makefile_gcc can work without msys.

svs 16.08.2011 14:08:31 +0300 - build 2152

1. Mantis#0001843: Panel displaying error on menu.show
   (from DAtaMan)

     macro:post menu.Show("AAA\r\nBBB")
     while the menu is active, change something in the folder that is opened on the panel
     the panel is reread, updated and overwrites the menu partially (over the panel)

svs 16.08.2011 12:50:50 +0300 - build 2151

1. Mantis#0001848: The macro area is corrupted after return from modal editor

svs 16.08.2011 11:17:45 +0300 - build 2150

1. Mantis#0001852: Timer macro command
   (DAtaMan + svs)
   "Far.UpTime" variable is added - how much time (in milliseconds) the Far Manager instance has been running.

drkns 15.08.2011 14:46:13 +0200 - build 2149

1. File highlighting storage format is changed. The old highlight.db must be deleted.

2. A couple of corrections in processing of console closing.

drkns 14.08.2011 21:42:30 +0200 - build 2148

1. Folder Shortcuts have got new default behavior.

drkns 14.08.2011 16:12:58 +0200 - build 2147

1. Continuation of 908.1 - now it also works with gcc.

drkns 12.08.2011 18:55:54 +0200 - build 2146

1. In 2127, folder shortcuts were broken.

drkns 12.08.2011 15:28:28 +0200 - build 2145

1. A couple of new options in panel settings: "Highlight column separators", "Double global column separators".

svs 12.08.2011 09:36:55 +0300 - build 2144

1. Mantis#0001849: Hotkeys do not work in user menu (F2)
   (from Maximus)
   Any hotkey causes one level up transition if the last (empty) item is selected in F2

svs 12.08.2011 09:32:28 +0300 - build 2143

1. Mantis#0001766: Viewer new version
   (from 2useven10)
    Another correction for automatic scrolling.
    'Excessive' code has proved to be useful.
    Thanks to Dzirt2005 for diagnostics.
    The problem took part when batch file output was redirected to the file being viewed.

drkns 11.08.2011 16:06:20 +0200 - build 2142

1. Mantis#0001851: "Transparent" flag does not work with default colors for markers in files highlighting.

drkns 11.08.2011 13:44:23 +0200 - build 2141

1. Mantis#0001850: "Transparent" flag state is not saved for marking character in files highlighting.

2. Warnings.

svs 09.08.2011 23:18:26 +0300 - build 2140

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from Maximus)
   "Left-side" macro was run in Common area instead of "right-side" one

drkns 08.08.2011 11:37:13 +0200 - build 2139

1.Mantis#0001589: Displaying of file extension in panel column or "Align file extensions"

drkns 08.08.2011 10:51:58 +0200 - build 2138

1. And more.

drkns 07.08.2011 00:19:21 +0200 - build 2137

1. Another couple of corrections in color processing.

drkns 06.08.2011 15:58:22 +0200 - build 2136

1. Correction of file highlighting load/save.

drkns 06.08.2011 13:02:39 +0200 - build 2135

1. Dependencies & warnings.

drkns 06.08.2011 11:42:59 +0200 - build 2134

1. Mantis#0001844: Exclusion masks do not work

drkns 05.08.2011 15:10:25 +0200 - build 2133

1. Warnings.

svs 05.08.2011 12:08:57 +0300 - build 2132

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from Maximus)
   1. now it can also be bound to the right button
   2. some formatting
   3. unused KeyMacro::GetRecordSize is commented out with "#if 0"

drkns 05.08.2011 10:11:19 +0200 - build 2131

1. Crash if there was no write access to databases with WAL Journaling Mode (plugin history/cache).

2. Privilege elevation requests are suppressed on volume change.

drkns 04.08.2011 23:43:18 +0200 - build 2130

1. FarColor.ForegroundColor and FarColor.BackgroundColor - COLORREF. If FCF_<F|B>G_4BIT  flag is not mentioned, then 0xAABBGGRR formatted color is expected.

2. Generated headers (farcolor.hpp, plugin.hpp) are now compiled during build process (as С and С++) in order to discover possible problems at an earlier stage.

drkns 04.08.2011 12:17:52 +0200 - build 2129

1. And once more.

drkns 04.08.2011 09:17:17 +0200 - build 2128

1. Correction of 2125.1.

svs 04.08.2011 02:55:52 +0300 - build 2127

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from Maximus)
   Next...
   - if "right-hand" combinations were not assigned to any reserved actions earlier then FAR acts on them as on "left-hand" ones.
   - RightCtrlLeftAlt+something are not processed in any special way (meaning Right->Left replacement).
   - In macros, as anywhere else, if nothing is assigned to "right-hand" combination, then handle it like the "left-hand" one.

   svs> 255 is changed to 65535

drkns 03.08.2011 23:57:15 +0200 - build 2126

1. external rendering support:
   - the values of some FCF_ flags are changed;
   - console.dll -> extendedconsole.dll;
   - selected text in editor retains its extended attributes.

drkns 03.08.2011 12:12:12 +0200 - build 2125

1. "Non-4 bit" colors are cast to standard console palette more or less adequately.

drkns 02.08.2011 21:00:36 +0200 - build 2124

1. Mantis#0001603: Autocompletion in the middle of the line works incorrectly in dialogs

2. All `Reserved` in plugin.hpp are pointer-sized.

drkns 02.08.2011 10:55:14 +0200 - build 2123

1. Mantis#0001842: incorrect buffer read in Execute.cpp

svs 01.08.2011 15:43:24 +0300 - build 2122

1. Mantis#0001832: FarNameToInputRecord / FarInputRecordToName problem
   (from Maximus + skirda)
   The next iteration...

drkns 01.08.2011 11:02:24 +0200 - build 2121

1. Correction of extended color attributes handling in files highlighting.

drkns 31.07.2011 16:34:12 +0200 - build 2120

1. Correction for default highlighting of files.

drkns 31.07.2011 16:23:27 +0200 - build 2119

1. Correction of 2118.1.

drkns 31.07.2011 16:09:11 +0200 - build 2118

1. Inner changes in color processing.

2. Experimental support for external rendering of FAR window.

drkns 28.07.2011 19:46:22 +0200 - build 2117

1. Wipe progress bar is now shown.

2. Wrapper can be switched off at compile time.

drkns 25.07.2011 19:15:39 +0200 - build 2116

1. DM_LISTSETMOUSEREACTION no longer exists. Desired list behavior is set with DIF_LISTTRACKMOUSE/DIF_LISTTRACKMOUSEINFOCUS flags at dialog creation.
   By default the flags are not set for new plugins (the list does not track the mouse), DIF_LISTTRACKMOUSE is set for ANSI plugins (track always).

svs 24.07.2011 10:17:29 +0300 - build 2115

1. Mantis#0001751: Menu creation in a macro
   (from DAtaMan)
   + additional key combinations are added to Menu.Show:
      Ctrl-Multiply - inversion of selection
      Ctrl-A - adjust the height of the menu
   - if Esc was pressed, "0" was returned. Now it is the empty string (or 0 if the result is an index)

2. Mantis#0001793: Enable macro interruption with CtrlBreak during "visual" functions
   (from Maximus)
   After next patching of macro interruption drawing was broken at mmode(1,0)

drkns 21.07.2011 21:28:51 +0200 - build 2114

1. Correction of 2113.1.

drkns 21.07.2011 10:15:15 +0200 - build 2113

1. Now Far processes `set <var>` command by itself.

drkns 20.07.2011 13:13:51 +0200 - build 2112

1. More correct message about starting error for the case of comspec use.

drkns 12.07.2011 11:07:16 +0200 - build 2111

1. Inner changes in color processing.

drkns 11.07.2011 21:29:12 +0200 - build 2110

1. Continuation of 2109.

drkns 11.07.2011 20:59:48 +0200 - build 2109

1. Refactoring of Edit / EditControl.

zg 10.07.2011 21:53:31 +0200 - build 2108

1. correction of 2106.1. MacroSendMacroText.AKey type is INPUT_RECORD because the mouse buttons may be AKey too.

zg 10.07.2011 16:02:13 +0200 - build 2107

1. a second parameter is added to PluginStartupInfo.InputBox, the GUID of the created dialog.

zg 10.07.2011 15:43:54 +0200 - build 2106

1. MacroSendMacroText.AKey type is now FarKey.

zg 10.07.2011 03:08:53 +0200 - build 2105

1. now menus also can have a GUID. accordingly, a second parameter is added, PluginStartupInfo.Menu - the GUID of the created menu.

2. Menu.Info.Id state is added to the macro language, which is the string representation of the current menu ID.

3. a second parameter is added to PluginStartupInfo.Message, the GUID of the created dialog.

drkns 09.07.2011 14:58:46 +0200 - build 2104

1. Rollback of 1771.2.

drkns 09.07.2011 02:05:28 +0200

1. farkeys.hpp is no longer in API. KEY_* constants are for inner use only.

zg 09.07.2011 01:10:01 +0200 - build 2103

1. dropped FarInputRecordToKey and FarKeyToInputRecord.

2. FarKeyToName is replaced with FarInputRecordToName.

3. FarNameToKey is replaced with FarNameToInputRecord.

drkns 08.07.2011 12:40:30 +0200 - build 2102

1. #0001830 once more.

drkns 07.07.2011 19:55:23 +0200 - build 2101

1. Mantis#0001830: elevation on attempt to copy a file from network to nul

drkns 07.07.2011 12:31:47 +0200 - build 2100

1. DM_SETHISTORY event did not work.

drkns 07.07.2011 10:43:36 +0200 - build 2099

1. VMenu.UserData still reminds of itself.

drkns 04.07.2011 21:44:34 +0200 - build 2098

1. Another portion of size_t in API.

drkns 04.07.2011 16:15:32 +0200 - build 2097

1. Correction of 2090.2.

drkns 04.07.2011 13:49:58 +0200 - build 2096

1. Correction of 2062.1. As a consequence, Mantis#0001824: Excessive elevation in Drive menu.

drkns 04.07.2011 08:26:08 +0200 - build 2095

1. Mantis#0001672: visual bugs after dialog close and Autocompletion

drkns 03.07.2011 21:00:12 +0200 - build 2094

1. Mantis#0001822: grabber is broken

drkns 02.07.2011 13:47:03 +0200 - build 2093

1. Switching low-fragmentation heap on only wherre is is actual.

drkns 01.07.2011 22:03:37 +0200 - build 2092

1. Mantis#0001820: Panel drawing error with OPIF_DISABLEHIGHLIGHTING

drkns 01.07.2011 13:08:33 +0200 - build 2091

1. %FARPROFILE%, %FARLOCALPROFILE%.

drkns 01.07.2011 09:06:56 +0200 - build 2090

1. Mantis#0001818: ANSI wrapper error.

2. "personal plugins path" setting and TI#2 no longer exist, "personal" plugins are loaded from <profile>\plugins.

3. Due to #2, plugins' *.db moved to <profile>\PluginsData.

4. Local (UseSystemProfiles=0) path to settings storage is %farhome%\Profile by default.

5. Bugs in filestr.

svs 30.06.2011 13:53:47 +0300 - build 2089

1. Mantis#0001751: Menu creation in macro
   (from DAtaMan)
   bugfixes:
     - CtrlAdd/CtrlSubtract processing was broken
     - more correct empty lines parsing
     - with an empty Title, the caption was "0"
     + automatic numeration takes place after duplicates sorting/deletion
     + separators are skipped on duplicates sorting/deletion

2. SQLite: updated to 3.7.7.1
   (http://www.sqlite.org/releaselog/3_7_7_1.html)

drkns 29.06.2011 11:26:35 +0200 - build 2088

1. Some debugging junk in 2087.

drkns 29.06.2011 11:12:33 +0200 - build 2087

1. Functional under win2k again.

drkns 29.06.2011 08:28:07 +0200 - build 2086

1. Mantis#1801 consequences.

drkns 29.06.2011 00:43:46 +0200 - build 2085

1. Mantis#0001816: Error in ANSI wrapper dialog colors.

drkns 28.06.2011 22:38:49 +0200 - build 2084

1. Correction of 2080.1.

drkns 28.06.2011 22:09:23 +0200 - build 2083

1. Correct GUID for Network plugin.

2. Mantis#0001766: Viewer new version.

drkns 28.06.2011 17:43:08 +0200 - build 2082

1. Parameters are changed in ClosePanelW, ConfigureW, ProcessDialogEventW, ProcessEditorEventW, ProcessPanelEventW, ProcessPanelInputW, ProcessSynchroEventW, ProcessViewerEventW.

drkns 28.06.2011 11:21:36 +0200 - build 2081

1. Mantis#0001815: Error in ACTL_GETARRAYCOLOR

2. Another gcc headers inadequacy.

3. Rollback of 2079.2.

drkns 27.06.2011 15:23:38 +0200 - build 2080

1. On elevation, basic and auxiliary processes are bound to one job object.

drkns 27.06.2011 11:59:49 +0200 - build 2079

1. Mantis#0001809: Incorrect console scrolling on exit.

2. Endless loop on tree creation for directories "." and "..".

drkns 25.06.2011 18:20:20 +0200 - build 2078

1. Mantis#0001812: Editor highlighting is broken

drkns 24.06.2011 21:31:25 +0200 - build 2077

1. Mantis#0001807: Freeze after CtrlAltPgUp/CtrlAltPgDn key press

drkns 23.06.2011 16:46:50 +0200 - build 2076

1. Mantis#0001801: process full PluginPanelItem.FileName content in filter

2. Mantis#0001805: Mistypes in English help file

3. Mantis#0001806: Vertical blocks cannot be selected with CursorBeyondEOL switched off

4. Mantis#0001807: Freeze after CtrlAltPgUp/CtrlAltPgDn key press

drkns 21.06.2011 21:51:58 +0200 - build 2075

1. ACTL_GETSYSWORDDIV expects the buffer size in Param1.

2. More changes on 2070.

drkns 21.06.2011 20:14:06 +0200 - build 2074

1. And more.

drkns 21.06.2011 19:06:45 +0200 - build 2073

1. And once more.

drkns 21.06.2011 14:17:17 +0200 - build 2072

1. Correction of 2070.

drkns 21.06.2011 10:53:36 +0200 - build 2071

1. Continuation of 2070.
   API uses FAR_CHAR_INFO instead of CHAR_INFO.

drkns 20.06.2011 23:22:12 +0200 - build 2070

1. Hello rainbow: using FarColor everywhere inside.
   Changes in API:
   - FarColor* is passed as Param2 in DN_CTLCOLORDIALOG, it must be changed at once.
   - FarDialogItemColors* is passed as Param2 in DN_CTLCOLORDLGITEM, FarDialogItemColors.Colors must be changed as follows: Colors[0] == lwlb, Colors[1] == lwhb, Colors[2] == hwlb, Colors[3] == hwhb.
   - FarDialogItemColors* is passed as Param2 in DN_CTLCOLORDLGLIST, the rest is unchanged.
   - ACTL_GETCOLOR, ACTL_GETARRAYCOLOR, ACTL_SETARRAYCOLOR work with FarColor.
   - DIF_SETCOLOR no longer exists, the color must be given in the handler.

   Color storage format is changed, generalconfig.db and highlight.db must be deleted.

drkns 18.06.2011 20:39:57 +0200 - build 2069

1. Mantis#0001800: CPU idle load.

drkns 17.06.2011 08:17:00 +0200 - build 2068

1. Completion list separators have got captions now.

2. Inner changes in color processing.

drkns 16.06.2011 19:44:44 +0200 - build 2067

1. Dialog invocation after DM_CLOSE caused FAR crash.

2. Directory read optimization.

3. Corrections in plugin.hpp.

svs 10.06.2011 13:33:43 +0300 - build 2066

1. Mantis#0001793: Enable interrupting of a macro with CtrlBreak during "visual" functions
   Another correction...

2. Mantis#0001789: A function to control fast filtering in lists (CtrlAltF)
   (from Maximus)
   Macro functions are added:
     1) Perform filtering operations (CtrlAltF)
        N=Menu.Filter([Action[,Mode])
     2) Perform filter string operations (CtrlAltF)
        S=Menu.FilterStr([Action[,S]])

svs 07.06.2011 14:04:54 +0300 - build 2065

1. Mantis#0001795: Add Plugin.Load, Plugin.Unload functions
   2 new macro functions:
      N=Plugin.Load(DllPath[,ForceLoad])   - load a plugin
      N=Plugin.Unload(DllPath)             - unload a plugin
      they return 1 if successful, 0 otherwise

svs 06.06.2011 18:08:55 +0300 - build 2064

1. Mantis#0001793: Enable macro interrupting with CtrlBreak during "visual" functions
   While MsgBox, Prompt or Menu.Show are being shown, the macro cannot be interrupted with CtrlBreak.

t-rex 05.06.2011 21:47:13 +0200 - build 2063

1. From Maximus: Mantis#1794: If CtrlAltF filtering removes all items from a list, then it is not redrawn.

drkns 03.06.2011 15:38:45 +0200 - build 2062

1. Start of Windows Explorer with "." + ShiftEnter did not work at the root of a volume.

2. Xlat settings are saved at exit to avoid detection of Russian keyboard layout at every run.

3. Other makeup.

svs 03.06.2011 09:15:08 +0300 - build 2061

1. Mantis#0001766: New viewer version
   (from 2useven10)
   long lines fix (fixed errors + MaxLineSize: Min=100, Def=10000, Max=100000)

2. Mantis#0001790: Switch XLat on by default if Russian keyboard layout is installed in the system
   (from Maximus)

drkns 31.05.2011 18:23:46 +0200 - build 2060

1. Mantis#0001787: ANSI wrapper error (ACTL_GETWINDOWINFO).

svs 28.05.2011 15:19:55 +0300 - build 2059

1. Mantis#0001786: Problems with network drives connection
   (from Maximus)

svs 28.05.2011 10:56:14 +0300 - build 2058

1. Mantis#0001782: Selection error when TABs are present

t-rex 28.05.2011 02:22:22 +0200 - build 2057

1. Mantis#0001784: Plugin cache bugs (continued).

drkns 27.05.2011 09:34:24 +0200 - build 2056

1. On new file creation, the codepage was set incorrectly.

drkns 27.05.2011 09:15:37 +0200 - build 2055

1. Mantis#0001784: Plugin cache bugs

svs 26.05.2011 16:17:09 +0300 - build 2054

1. In explanation of comments to Mantis#0001782.
   Macro: Prohibit block selection (Editor.Sel()) beyond the line if "[ ] Cursor beyond end of line"
   (attempt No.1)

2. Mantis#0001766: Viewer new version
   (from 2useven10)
   About 30% of code is rewritten...

   Guts:
    - search is completely redone
    - caching of carriage returns is added
    - Unicode files are now as other ones (say no to size in characters!)
    - HexView is redone
    - search dialog is revised

   Functions:
    - regular expressions search is added (line-by-line both directions)
    - next search is always looped up to search start or direction change
    - possibility of variable maximal line length is added ("Viewer.MaxLineSize:TYPE_INTEGER" parameter)
       the minimal value is    80
       the default value is  2048
       the maximal value is 16384
    - an option is added ("Viewer.SearchEditFocus:TYPE_INTEGER"), allowing input field automatic focusing
      after search parameters change. By default it is switched off (=0)

drkns 26.05.2011 14:35:27 +0200 - build 2053

1. Just in case, situation "UID obtained from cache does not match the one received from the plugin" is taken into account.

drkns 26.05.2011 14:11:16 +0200 - build 2052

1. Correction of 2050.

drkns 26.05.2011 08:52:56 +0200 - build 2051

1. More correct solution for M#1783.

drkns 25.05.2011 16:40:51 +0200 - build 2050

1. Continuing the wrapper abstraction.

2. Mantis#0001783: Garbage in console caption when copying files

drkns 25.05.2011 12:15:20 +0200 - build 2049

1. Continuing the wrapper abstraction.

drkns 24.05.2011 23:49:08 +0200 - build 2048

1. Continuation of 1978.
   - wrapper partial abstraction: PluginW is simply Plugin now, PluginA is inherited from it.
   - some more copy&paste is eliminated.

2. Warnings.

drkns 23.05.2011 21:31:52 +0200 - build 2047

1. Wrong dialogs centering in some cases.

svs 23.05.2011 16:38:21 +0300 - build 2046

1. Mantis#0001755: Cannot change the focus in RadioButton click handler
   (from 2useven10)

2. EF_DISABLESAVEPOS flag is added to API: do not save the position.
   also, EF_LOCKED flag is restored: lock editing on file open.

3. Mantis#0001183: On Reload, codepage memorizing must take place before read
   (from 2useven10)

svs 23.05.2011 12:13:01 +0300 - build 2045

1. Mantis#0001775: Shift-F4: Possibility of repeated automatic codepage detection at file open
   (from 2useven10)

zg 21.05.2011 20:32:05 +0200 - build 2044

1. Storing of z-positions of color regions with equal priorities. but it is better to use the different ones.

2. gcc warnings in sqlite.c.

t-rex 21.05.2011 13:06:02 +0200 - build 2043

1. EDITOR_COLOR_ANSI_PRIORITY -> EDITOR_COLOR_NORMAL_PRIORITY

2. Since Priority is unsigned then SortColors() must be corrected.

3. sqlite 3.7.6.3

4. tinyxml 2.6.2

drkns 21.05.2011 13:00:29 +0200 - build 2042

1. Mantis#0001771: structure size in DM_GETDIALOGINFO is checked incorrectly

2. Mantis#0001778: Display Title instead of ModuleName in plugin selection list

zg 20.05.2011 21:25:11 +0200 - build 2041

1. Two fields are appended to EditorColor: Owner and Priority.
   Owner is the GUID of the color region owner.
   Priority is the color region's priority. the more is the value, the higher is the color region.
2. deletion magic with ECTL_ADDCOLOR is removed. Now there are ECTL_DELCOLOR and EditorDeleteColor for that.
   only areas which owner equals to EditorDeleteColor.Owner are deleted.

svs 20.05.2011 17:44:06 +0300 - build 2040

1. Mantis#0001774: Possibility of creation of codepages 'black list' for codepages autodetection
   (from 2useven10)
   A strNoAutoDetectCP text parameter is added to configuration, it can contain codepages to be excluded
   from UCD autodetection, separated with commas.

   the listed codepages are excluded from automatic detection with nsUniversalDetectorEx.
   unicode pages autodetection does not depend on it, therefore UTF-8 is detected even if
   65001 is listed here. If UniversalDetector returns a page from this list, it is replaced with
   the default ANSI or OEM, depending on settings.

   if strNoAutoDetectCP is:
     "" -- no UCD autodetection filtration (this is by default like now)
       "-1" -- only ACP, OEMCP and favorites are passed if Ctrl-H is on (otherwise there is no filtering)
     "cp1,cp2,..." -- the listed ones are rejected

   an example: "1250,1252,1253,1255,855,10005,28592,28595,28597,28598,38598,65001" - these
           codepages will be excluded from detection

2. Mantis#0001768: testfolder(): incorrect return code for an empty directory
   ...another attempt :-(

drkns 20.05.2011 15:02:43 +0200 - build 2039

1. At folder creation, it is possible to add its reparse point.

2. A couple of minorities

svs 20.05.2011 11:13:13 +0300 - build 2038

1. Mantis#0001776: automatic scrolling of the appended file was broken
   (from 2useven10)

2. Mantis#0001736: akey(1,0)==akey(1,1) Far 3.0.1931 far2.0.1807
   Continuation of the saga.

     The macro on CtrlShifF1:
         msgbox(akey(1,0),akey(1,1))
         works fine:
         +- CtrlShiftF1 -+
         |  CtrlShiftF1  |
         although:
         CtrlO msgbox(akey(1,0),akey(1,1))
         works incorrectly (Shift modifier is lost) :
         +-- CtrlF1 ---+
         | CtrlShiftF1 |
         and if the macro looks like this:
         msgbox() msgbox(akey(1,0),akey(1,1))
         then there's no modifiers at all:
         +---- F1 -----+
         | CtrlShiftF1 |

         The macro on MsWheelDown:
         msgbox(Akey(0),MsWheelDown)
         +- 196609 -+
         |  131076  |

    Here, we create artificial environment for MsWheelXXX - let's use 4 positions after VK_F24 (they seem to be unused anyway)

     VK_F24+1 == KEY_MSWHEEL_DOWN
     VK_F24+2 == KEY_MSWHEEL_UP
     VK_F24+3 == KEY_MSWHEEL_LEFT
     VK_F24+4 == KEY_MSWHEEL_RIGHT

    (in case of problems it would be necessary to "move" these values to the wVirtualKeyCode's most significant byte, and set the least significant byte to FF)

    Reason: this is a mouse event, and we need a keyboard one. It has been changed before, but Rec was just a stub.

    Also, in all places where CalcKeyCode was used aside from GetInputRecord, now it is necessary to
    use ShieldCalcKeyCode. This function "protects" FarKeyboardState of "main process".

3. Mantis#0001768: testfolder(): incorrect return code for an empty directory
   TSTFLD_ERROR is still returned for files


drkns 20.05.2011 09:07:19 +0200 - build 2037

1. ExitInfo structure is passed to ExitFARW (for the future).

svs 19.05.2011 18:11:44 +0300 - build 2036

1. Mantis#0001768: testfolder(): incorrect return code for an empty directory

   ACHTUNG!!!

   testfolder() function return codes have been changed:

       2 the folder is not empty
       1 the folder is empty
       0 the folder does not exist
      -1 access denied
      -2 an error (incorrect parameter or inner problems with memory allocation)

      If > 0 - it exists and is accessible
      If = 0 - it doesn't exist, but one can try to create it
      If < 0 - the function doesn't report anything encouraging

2. Mantis#0001773: giving an opportunity of enabling AutoDetect menu item on Shift-F8
   addition to the editor
   (from 2useven10)

svs 19.05.2011 14:25:38 +0300 - build 2035

1. Mantis#0001772: Minor makeup in CacheRead code and its use in the viewer
   minor code cleanup
   (from 2useven10)

svs 19.05.2011 14:07:17 +0300 - build 2034

1. Mantis#0001773: giving an opportunity of enabling AutoDetect menu item on Shift-F8
   Just a parameter is added to make this usable (so far, this is available in the viewer only)
   (from 2useven10)

drkns 17.05.2011 23:00:00 +0200 - build 2033

1. VMenu.UserData still recalls itself.

2. ConsoleTitle refactoring.

drkns 16.05.2011 20:41:14 +0200 - build 2032

1. Handle leak at virtual volumes detach.

2. Mantis#0001769: Error in DM_EDITUNCHANGEDFLAG(id,-1)

t-rex 15.05.2011 20:10:24 +0200 - build 2031

1. OpenW(OPEN_ANALYSE) may return -2 as before in OpenFilePluginW.

drkns 14.05.2011 18:06:52 +0200 - build 2030

1. Crash at processing a filter in the history.

2. GCC.

svs 14.05.2011 14:53:18 +0300 - build 2029

1. Mantis#0001687: ProcessConsoleInput
   The next correction

2. Macro: A bug in Editor.Sel() - TAB characters were not taken into account...
   (the report is from fardev@googlegroups.com newsgroup)

drkns 11.05.2011 20:49:34 +0200 - build 2028

1. Some minor changes.

svs 11.05.2011 17:44:58 +0300 - build 2027

1. ProcessEditorInputW - the parameter is changed:
    now this is a pointer to the structure
      struct ProcessEditorInputInfo
      {
        size_t StructSize;
        INPUT_RECORD Rec;
      };

2. Renaming: ProcessKeyW -> ProcessPanelInputW

3. and... the parameter is changed in ProcessPanelInputW:
    a pointer to the structure
      struct ProcessPanelInputInfo
      {
        size_t StructSize;
        INPUT_RECORD Rec;
      };

4. Mantis#0001759: ProcessKeyW is called twice
   ...since now, for A-plugins only. Preprocessing, see Mantis#0001687

5. Mantis#0001687: ProcessConsoleInput
   "At the beginning..."
   (the code is still "sealed" with MANTIS_0001687 #define)

6. Mantis#0000466: Macro language extension with plugins
   "...continuation..."
   (the code is still "sealed" with MANTIS_0000466 #define)

7. A minor addition in the form of DEFUSERFLAGS in makefile_vc file
   ...for purposes similar to 5 and 6.

svs 10.05.2011 09:29:07 +0300 - build 2026

1. Mantis#0001760: FSF.FarInputRecordToKey modifies inner FAR variables

drkns 08.05.2011 16:37:54 +0200 - build 2025

1. Mantis#0001622: Not a very nice look of the file search results window

2. Mantis#0001763: Far 3.0 gcc build error (incorrect character case in an include)

3. Another couple of minorities.

drkns 04.05.2011 12:24:24 +0200 - build 2024

1. And more.

drkns 04.05.2011 12:06:23 +0200 - build 2023

1. And once more.

drkns 04.05.2011 11:19:21 +0200 - build 2022

1. Continuation of 2021.

drkns 04.05.2011 10:15:20 +0200 - build 2021

1. VMenu.UserData again: DM_LISTGETDATA now always returns a pointer to data.

drkns 03.05.2011 15:27:09 +0200 - build 2020

1. Correction of the previous build.

drkns 03.05.2011 12:41:45 +0200 - build 2019

1. For FCTL_GETPANELITEM, FCTL_GETSELECTEDPANELITEM, FCTL_GETCURRENTPANELITEM, the FarGetPluginPanelItem structure must be passed as Param2:

   struct FarGetPluginPanelItem
   {
     size_t Size;
     PluginPanelItem* Item;
   };

   Item - a pointer to an input data buffer
   Size - the size of the buffer.

   The buffer will be written with data only if its size is big enough.

   The returned value: required buffer size.

2. For DM_GETDLGITEM, the FarGetDialogItem structure must be passed as Param2. The principle is the same as for FCTL_GET*PANELITEM

drkns 30.04.2011 16:28:33 +0200 - build 2018

1. warnings.

2. makeup in BaseFormat.

drkns 29.04.2011 23:55:55 +0200 - build 2017

1. GСС warnings.

2. A couple of minorities.

t-rex 29.04.2011 21:06:02 +0200 - build 2016

1. Instead of SCTL_SUBKEY, there is SCTL_CREATESUBKEY now (open the existing one or create if none exist) and SCTL_OPENSUBKEY (open the existing one).

2. Mantis#1757: SettingsControl(SCTL_CREATE) called from ExitFARW returns NULL.

t-rex 29.04.2011 03:57:23 +0200 - build 2015

1. Each plugin's settings are stored in a separate base in %appdata%\Far Manager\Profile\Plugins.
   This eliminates the possibility of locking of the whole base with a buggy plugin.
   pluginsconfig.db may be removed.

2. Export/import for 1.

t-rex 29.04.2011 00:42:27 +0200 - build 2014

1. pluginhotkeys export/import. In common, the history is only left, but I still think that it does not need to.

2. Far.exe /clearcache [Custom location for Far configuration files - overrides Far.exe.ini]
   Plugins cache cleaning.

t-rex 28.04.2011 21:44:56 +0200 - build 2013

1. Useless code was forgotten.

t-rex 28.04.2011 21:33:34 +0200 - build 2012 future

1. Import from XML for HierarchicalConfig.

2. panelmodes settings moved to HierarchicalConfig, old panelmodes.db is likely to be removed.

3. A minor change in xml format - the main key is farconfig.

drkns 28.04.2011 14:16:24 +0200 - build 2011

1. A couple of minorities on paths initialization.

drkns 28.04.2011 13:52:23 +0200 - build 2010

1. For some reason, the copier did some magic like "if the filter is on then move files as copy + delete".
   It must have been fixed by now. Some testing is needed, just in case.

drkns 28.04.2011 08:51:32 +0200 - build 2009

1. Unicode support in xml file names.

t-rex 28.04.2011 02:08:28 +0200 - build 2008

1. Incorrect creation of xml with non-English file name.

t-rex 28.04.2011 01:57:57 +0200 - build 2007

1. HierarchicalConfig bases export capability (import will be done later).
   I.e. pluginsconfig, filters, highlight, shortcuts.

t-rex 27.04.2011 23:34:03 +0200 - build 2006

1. Associations export/import capability.
   Before the import, all current associations are deleted (if "associations" tag exists in xml).

t-rex 27.04.2011 21:16:21 +0200 - build 2005

1. Moved db/xml dependent code from main.cpp to configdb.cpp.

t-rex 27.04.2011 20:35:54 +0200 - build 2004

1. Far.exe /export <out.xml> [Custom location for Far configuration files - overrides Far.exe.ini]
   Far.exe /import <in.xml> [Custom location for Far configuration files - overrides Far.exe.ini]
   So far, it works for generalconfig only.

drkns 27.04.2011 15:48:21 +0200 - build 2003

1. ucd, sqlite and tinyxml build is redone.

t-rex 27.04.2011 14:35:14 +0200 - build 2002

1. Continuing playing with xml.

drkns 27.04.2011 11:36:52 +0200 - build 2001

1. Plugin which exported ProcessDialogEvent and created dialogs in SetStartupInfo caused far recursion.

svs 27.04.2011 10:11:51 +0300 - build 2000

   Millennium! :-)

1. Mantis#0001751: Menu creation in a macro

t-rex 27.04.2011 01:40:51 +0200 - build 1999

1. Initial stage of xml settings import/export implementation.
   tinyxml is added to the project.

t-rex 26.04.2011 22:54:14 +0200 - build 1998

1. Minor changes in plugin settings API.
   SCTL_SET doesn't accept FST_SUBKEY any more because this is meaningless and it is done by SCTL_SUBKEY.

2. For the documentation - SCTL_SET with FST_STRING defines a description to a key if FarSettingsItem.Name==NULL.
   It does not work if Root==0 because the description is set by FAR in this case (it is the name of the plugin).

t-rex 26.04.2011 00:40:52 +0200 - build 1997

1. Minor changes in plugin settings API.
   For SCTL_DELETE, if FarSettingsValue.Value==NULL then FarSettingsValue.Root key is deleted.
   Otherwise, Value only is deleted (even when a key with the same name exists).

t-rex 25.04.2011 22:36:30 +0200 - build 1996

1. An addition in DlgBuilder.

t-rex 25.04.2011 21:26:05 +0200 - build 1995

1. Additions in DlgBuilder.

drkns 24.04.2011 13:38:27 +0200 - build 1994

1. Once again, the epic about VMenu.UserData.

t-rex 24.04.2011 04:06:00 +0200 - build 1993

1. Forum: FAR crashes at exit with F10.

2. Forum: crash at an attempt to call anything from the user menu.
   Continuing the saga of VMenu.UserData.

3. UserProfileDir default value was incorrect.

t-rex 23.04.2011 12:10:43 +0200 - build 1992

1. For the future, "System.Exception.FarEvent.svc" setting is renamed to "System.Exception.FarEventSvc".

t-rex 23.04.2011 02:04:07 +0200 - build 1991

1. Unused code is removed.

t-rex 23.04.2011 00:44:55 +0200 - build 1990

1. Done, FAR looks for nothing but macros in the registry now.
   The settings have moved again, now they are here:
   %APPDATA%\Far Manager\Profile
   %LOCALAPPDATA%\Far Manager\Profile

2. /u is not actual now - it now affects only ANSI plugins (well, also macros so far).

3. /s key for manual specification of a folder containing the configuration (the folder will be created if it does not exist).

4. New parameters in Far.exe.ini:
   UseSystemProfiles=2
   UserProfileDir
   TemplatePluginsPath
   DefaultLanguage

5. Various fixes in help.

t-rex 22.04.2011 19:39:06 +0200 - build 1989

1. poscache in sqlite is done. it is cleared with the same method as the history.
   In common, detaching from the registry is completed, what has been left is a decision what to do with macros.
   Who will take it?

drkns 22.04.2011 16:16:16 +0200 - build 1988

1. ACTL_GETCOLOR, ACTL_SETCURRENTWINDOW, ACTL_SETPROGRESSSTATE, ACTL_WAITKEY use Param1.

drkns 22.04.2011 15:44:44 +0200 - build 1987

1. All *Control functions now return INT_PTR.

2. Param2 is now void* everywhere.

3. gcc warnings.

t-rex 22.04.2011 15:11:26 +0200

1. Help topic about user menu is updated.

2. Help topic about filters is added.

drkns 22.04.2011 08:37:22 +0200 - build 1986

1. Continuing 1982.1.

t-rex 22.04.2011 03:24:23 +0200 - build 1985

1. Old history items deletion takes part at the exit from FAR only.

2. Deletion is now organized with the following method (without configuration so far):
   everything older than 90 days is removed, but only if the number of items is more than 1000.

3. Separation by days could show the same day twice.

drkns 21.04.2011 21:21:21 +0200 - build 1984

1. Mantis#0001100: AltShiftIns on .. copies path with the trailing backslash into the clipboard

svs 21.04.2011 20:50:39 +0300 - build 1983

1. Mantis#0001751: Menu creation in macro
   A macrofunction is added, Menu.Show()
     S=Menu.Show(Items[,Title[,Flags[,FindOrFilter[,X[,Y]]]]])
   see the Encyclopedia for the description.

drkns 21.04.2011 16:44:21 +0200 - build 1982

1. History items selection did not work in x64, and maybe something else, because the problem was deeper.

2. Histories are displayes with separation by days.

3. Some more minorities.

t-rex 21.04.2011 03:19:32 +0200 - build 1981

1. Warnings etc.

t-rex 21.04.2011 01:56:16 +0200 - build 1980

1. poscache in sqlite, it will be stored along with the history, 50% completed, does not work yet.

t-rex 20.04.2011 21:14:08 +0200 - build 1979

1. The history is now located in %LOCALAPPDATA% by default (no configuration yet).

2. PRAGMA journal_mode = WAL; for plugins cache and history this has a very positive effect on performance.

drkns 20.04.2011 15:56:22 +0200 - build 1978

1. Refactoring of plugin classes. Duplicating code is removed.

t-rex 20.04.2011 01:47:43 +0200 - build 1977

1. History stored in sqlite is done in common, CtrlE/CtlX/CtrlEnd must be functional.
   So far the history is stored for 90 days, all unlocked records older than 90 days are removed automatically.

t-rex 19.04.2011 22:51:10 +0200 - build 1976

1. $N -> ?N in sqlite statements for the history.

t-rex 19.04.2011 22:45:21 +0200 - build 1975

1. The history is now in sqlite - about 80% is ready.
   - unified history for all open FAR sessions - work with history goes through the database only, the history is not stored in memory
   - if the history is off the it isn't processed at all (it was processed in current FAR session)
   - CtrlE/CtlX/CtrlEnd etc still do not work.
   - so far the last 90 days of history are stored, unlocked records older than 90 days are removed automatically

   Please test, especially the performance at large history (especially in dialogs).

drkns 19.04.2011 16:35:53 +0200 - build 1974

1. Visual bug in folder shortcuts.

2. Correction of current character code display in editor status line.

3. FormatString and FormatScreen classes can format output in oct and hex.

t-rex 19.04.2011 03:40:18 +0200 - build 1973

1. folder shortcuts in sqlite.

t-rex 19.04.2011 01:09:36 +0200 - build 1972 - Hag Sameach!

1. filters and highligh in sqlite (pluginsconfig.db must be removed again).

t-rex 18.04.2011 21:19:35 +0200 - build 1971

1. Using MSG_NOPLUGINS for plugin loading error message to avoid possible problems as in 1969.

t-rex 18.04.2011 16:52:37 +0200 - build 1970

1. pluginsconfig.db schema is altered, the old file must be deleted.

2. Improvement in memory usage configdb::Enum of database service functions.

t-rex 18.04.2011 13:38:58 +0200 - build 1969

1. If a plugin could not be loaded at the moment of ProcessDialogEventW then infinite recursion took place.

t-rex 18.04.2011 12:57:18 +0200 - build 1968

1. A minor bug in GlobalUserMenuDir initialization.

drkns 17.04.2011 23:26:31 +0200 - build 1967

1. far.exe.ini in unicode.

2. pluginscache.db moved to %localappdata%.

t-rex 17.04.2011 22:47:56 +0200 - build 1966

1. Forum: User menu: when a hotkey is pressed, the selected menu item is invoked instead of the item to which the key is assigned.

drkns 17.04.2011 20:42:03 +0200 - build 1965

1. Unicode files viewer worked incorrectly.

2. Crash at file read in be-unicode.

3. The #pragma push/pop wrapper around sqlite.? in order to not to watch warnings and not to fix them on each update.

t-rex 17.04.2011 19:42:24 +0200 - build 1964

1. UserMenu is untied from the registry. This is how it works now:
   - local menu: FarMenu.ini in the current folder (as it was before)
   - user menu: FarMenu.ini in the profile folder (was in the registry)
   - globel menu: FarMenu.ini in %FARHOME% (or in a folder defined in Far.exe.ini::Global:GlobalUserMenuDir) (almost as before)

   Nothing seems to be broken, test it please.

2. File::Close() did not reset the position pointer.

3. Debug build fail is fixed.

4. Added Far.exe.ini to the project.

t-rex 16.04.2011 22:58:48 +0200 - build 1963

1. PanelModes in sqlite and minor modification of PanelViewSettings in addition.
   What is left: history, filters, positions, highlight, shortcuts.
   probably we have to store usermenu as a text file in %appdata% and not bother about that.
   macros - the solution from MacroLib plugin is better, isn't it?

t-rex 16.04.2011 14:46:55 +0200 - build 1962

1. PluginCache in sqlite: done. Old plugincache.db must be deleted.

t-rex 16.04.2011 01:15:31 +0200 - build 1961

1. PluginHotKeys in sqlite: done.

2. PluginCache in sqlite - database structure is done; also, a couple of queries (~30%).

t-rex 15.04.2011 21:45:01 +0200 - build 1960

1. The initial stage of PluginCache and PluginHotKeys moving to sqlite (it does not work so far).

2. Bugs in menus invoked via the wrapper.

svs 15.04.2011 10:06:10 +0300 - build 1959

1. Macro: history.disable is renamed to history.enable.
   This means that:
    1. histories are off when macro is started
    2. the bit mask has an effect on histories forced switching-on

t-rex 15.04.2011 03:28:35 +0200 - build 1958

1. From 2useven10: Partial remake of viewer's internals, numerous bugs are fixed.

2. Update sqlite to 3.7.6.1.

3. NULL -> nullptr in a couple of places.

drkns 12.04.2011 21:26:28 +0200 - build 1957

1. Rollback of 1956.

drkns 12.04.2011 19:00:53 +0200 - build 1956

1. No need to type "cd" or "chdir" for entering a folder.

drkns 12.04.2011 00:14:07 +0200 - build 1955

1. A couple of corrections on folder shortcuts.

drkns 11.04.2011 14:42:32 +0200 - build 1954

1. Codepage autodetection in editor and viewer is on by default.

drkns 11.04.2011 14:42:32 +0200 - build 1953

1. Plugin panel excessive update on exit from editor without saving.

t-rex 11.04.2011 05:02:11 +0200 - build 1952

1. Associations in sqlite are completed, the old associations.db must be removed.

svs 10.04.2011 00:19:01 +0300 - build 1951

1. Mantis#0001742.
   From DAtaMan
     One more correction.
     Now FMatch function returns:
      1 - the string matches the mask
      0 - the string does not match the mask
     -1 - incorrect mask (error in regular expression)

drkns 08.04.2011 13:47:00 +0200 - build 1950

1. Color selection dialog is available to plugins.

drkns 08.04.2011 12:17:31 +0200 - build 1949

1. Mantis#0001746: Quick elements removal from autocompletion list

2. One more correction of 1930.

3. A few minor issues.

drkns 06.04.2011 21:34:29 +0200 - build 1948

1. reinterpret_cast -> static_cast where it is possible.

drkns 06.04.2011 13:24:53 +0200 - build 1947

1. Strings containing \0 were copied to clipboard incorrectly.

2. Error in VMenu::<G|S>etUserData.

svs 06.04.2011 13:43:53 +0300 - build 1946

1. Correction of Mantis#0001741
   From: DAtaMan
   Bugfix on 1942 - Alt-combinations did not work in macros

2. Mantis#0001743: History disable option
     A macrofunction is added to control appending items to history while the current macro is running.
     At macro start all kinds of history are enabled.

     N=history.disable([State])

     Here State is a bit mask:
       bit 0 - cmd history
       bit 1 - folder histroy
       bit 2 - view/edit history
       bit 3 - dialog history
       if the corresponding bit is set to 1, the appropriate history is disabled
       State = -1 - disable all history types

     The function returns the previous mask.
     If the parameter is omitted then it returns the current mask.

     TODO: Clarification is needed on "only while the macro is being played" statement!

3. Mantis#0001681: panel.setpath() does not work with plugins
   Relative paths - within current FS's bounds
   Absolute paths (C:\ \\Server\share) close plugin panel (if that was the plugin panel)

4. Macro: CmpName (from Mantis#0001742) renamed to FMatch
   From: DAtaMan

     N=FMatch(S, Mask)


t-rex 06.04.2011 01:51:53 +0200 - build 1945

1. associations in sqlite - 90% complete (swap and creation of a new one under the cursor are not completed yet).

drkns 05.04.2011 17:02:32 +0200 - build 1944

1. Minor refactoring of dialog engine.

drkns 05.04.2011 11:54:24 +0200 - build 1943

1. Correction of completion algorithm.

svs 05.04.2011 09:48:10 +0300 - build 1942

1. Mantis#0001742: CmpName macrofunction - matching the text against the mask
   From: DAtaMan
    Quite often it is needed to figure out in macros whether a text matches a mask.
    The suggested patch implements CmpName macrofunction.
    The syntax follows:
    N=CmpName(Mask,S[,SkipPath])
    The function is case insensitive.

    Examples:
    cmpname("*far*", "far manager") == 1
    cmpname("a.txt", @"c:\a.txt", 0) == 1
    cmpname("a.txt", @"c:\a.txt", 0) == 0
    cmpname("a.txt", @"c:\a.txt", 1) == 1

2. Mantis#0001741: Additional keys for selected screen area manipulation
   From: DAtaMan
    A possible use case for FAR is running it on a computer without a mouse.
    The patch is suggested for more convenient grabber use.
    Additions:
      Alt-Shift-<cursor keys> increase/decrease the selected area.
      Alt-<cursor keys> move the selected area.
      Ctrl-A selects the whole screen area.

drkns 03.04.2011 20:46:44 +0200 - build 1941

1. Continuation of 1940.

drkns 03.04.2011 20:46:44 +0200 - build 1940

1. An element appended to input field history with DM_ADDHISTORY was not accessible in completion list.

drkns 03.04.2011 20:46:44 +0200 - build 1939

1. Mantis#0000502: apiCreateFile rights for the Viewer.

2. A few trivial fixes.

svs 31.03.2011 13:43:54 +0300 - build 1938

1. Mantis#0001736: akey(1,0)==akey(1,1)

   "...akey(?,Type):
     Type=0 - before it had always returned the key I pressed = which called the binding macro,
     Type=1 - the key assigned to the macro called by macro sequence,
     now Type always returns the key which the last macro is assigned to..."

   It was broken in build 1805 (although it was written clearly - "testing is needed" :-))

drkns 31.03.2011 12:12:12 +0200 - build 1937

1. FormatString and NTPath classes are based on UnicodeString.

2. Continuing printf elimination.

svs 28.03.2011 19:19:10 +0300 - build 1936

1. Mantis#0001718: The absence of ECF_TAB1 does not always work correctly
   Correction taking the last TAB character into account.

drkns 28.03.2011 15:58:34 +0200 - build 1935

1. VC code analysis warnings.

t-rex 27.03.2011 22:19:24 +0200 - build 1934

1. Initial stage of moving associations to sqlite (associations.db, doesn't work yet!).

2. UnicodeString::Equal() -> IsSubStrAt() to avoid disorder.

3. From 2useven10: Mantis#1043: viewing a file on network share causes 40kB/s network spam of QUERY_PATH_INFO SMB requests.
   requests frequency is hardcoded for now - once per second for DRIVE_REMOTE

4. From 2useven10: Mantis#796: Viewer and End key behaviour.

5. From 2useven10: fixes for physical drives viewing and for hex viewer.

drkns 26.03.2011 19:41:35 +0200 - build 1933

1. Correction of 1930.1.

drkns 25.03.2011 19:03:05 +0200 - build 1932

1. x64 warnings.

2. Mantis#0001735: incorrect displayiog of volume name in info panel if UNC path is used

drkns 24.03.2011 10:59:59 +0200 - build 1931

1. Types correction.

drkns 23.03.2011 17:00:00 +0200 - build 1930

1. Now settings are guaranteed to be saved when the console is closed with [x] button.

drkns 23.03.2011 10:52:38 +0200 - build 1929

1. Mantis#0001661: Debug version crashes at regexp search.

t-rex 23.03.2011 01:18:18 +0200 - build 1928

1. Again, changes in DB schema (old ones must be deleted). "type" field is removed because sqlite can determine the type anyway.

2. Wrapper classes around sqlite for code simplification.

3. From 2useven10: Fix for 1925.1

drkns 22.03.2011 17:04:11 +0200 - build 1927

1. In 1911, the shortcuts with environment variables didn't work.

drkns 22.03.2011 15:55:16 +0200 - build 1926

1. For the future: Opt.LocalProfilePath == "%LOCALAPPDATA%\Far Manager\Profiles\<Default|ProfileName>".

t-rex 22.03.2011 00:04:16 +0200 - build 1925

1. From 2useven10: Hex view for UTF-8.

2. From Maximus: Mantis#1731: "Cannot find the file" error after exit from TempPanel.

t-rex 21.03.2011 22:53:37 +0200 - build 1924

1. Disabling "PRAGMA synchronous = OFF;", using transactions.

2. Each plugin has now its own connection to configuration DB, and everything goes inside one transaction from CREATE to FREE.
   I.e. the data is actually written at FREE only.

drkns 21.03.2011 22:16:11 +0200 - build 1923

1. Another paths remake.
   Now everything is stored in either "%APPDATA%\Far Manager\Profiles\<Default|ProfileName>" or "%FARHOME%\UserData\Profiles\<Default|ProfileName>".
   This is switched in Far.exe.ini\General\UseSystemProfiles, 1|0.

drkns 21.03.2011 16:17:18 +0200 - build 1922

1. Correction of 1921:
   /u specifies the profile only.
   /s[<path>] specifies the path to profiles. If "path" is relative, it is relative to "%FARHOME%". An empty one means "%FARHOME%\Profiles".

drkns 21.03.2011 11:11:11 +0200 - build 1921

1. update vcxproj.

2. sqlite warnings.

3. w32api-3.17 (or higher) required for gcc build.

4. The profile storage principle is changed:
   Default path to profiles: "%APPDATA%\Far Manager\Profiles"
   Default profile: "Default"
   Thus, settings are here by default: "%APPDATA%\Far Manager\Profiles\Default"

   Path to profiles can be redefined in file "%FARHOME%\Far.exe.ini":
   Section: Profiles
   Parameter: BasePath
   Value: new path to profiles. If the path is relative then it is meant to be relative to %FARHOME%.

   /u key gets "username" parameter to be considered as the path to the profile.
   If the path is relative then it is meant to be relative to "%APPDATA%\Far Manager\Profiles" or to the path specified in "Far.exe.ini".
   If the path is absolute then it is absolute :)

   Examples:
     "far.exe" - profile in "%APPDATA%\Far Manager\Profiles\Default" (or in "<BasePath>\Default")
     "far.exe /u foo" - profile in "%APPDATA%\Far Manager\Profiles\foo" (or in "<BasePath>\foo")
     "far.exe /u d:\bar" - profile in "d:\bar"

t-rex 20.03.2011 23:20:31 +0200 - build 1920

1. generalconfig.db schema is changed for inner convenience (generalconfig.db must be deleted).

2. All common settings moved to generalconfig.db.
   Now the turn is for history, associations, filters, positions, highlight, hotkeys, macros, pluginscache, shortcuts, usermenu, panelmodes.

t-rex 20.03.2011 19:16:44 +0200 - build 1919

1. Debug target build failure.

t-rex 20.03.2011 18:23:03 +0200 - build 1918

1. sqlite code moved to configdb.cpp

2. using sqlite3_clear_bindings() for correctness.

3. GeneralConfig is appended with BEGIN/END TRANSACTION to speed up sequential insertions.

4. for "outer space", DB access abstract classes are made to avoid sqlite3.h and other stuff be included everywhere.

5. a kind of singleton for DB access inner classes.

6. precompiled headers are disconnected from plugin.hpp, it was pointless because it used to change too often.

t-rex 20.03.2011 02:45:34 +0200 - build 1917

1. Transfer of settings to sqlite is started.
   Common settings have been partially moved.
   %appdata%\Far Manager\generalconfig.db

2. PRAGMA synchronous = 0; for better sqlite performance.

t-rex 19.03.2011 21:35:56 +0200 - build 1916

1. "Old" plugin settings API is back.

2. DB schema and code are changed to support tree-like structure of plugins settings according to API.

t-rex 19.03.2011 17:59:17 +0200 - build 1915

1. Starting to use sqlite database instead of the registry, plugins settings only for now.
   The data is stored in %appdata%\Far Manager\pluginsconfig.db
   sqlite source is included in FAR for now, then we'll see if it is reasonable to move it to dll.

2. Plugins settings API is slightly changed, "subkey" and "root" notions are removed.
   It is recommended to assign names like xxx.yyy, xxx.zzz to settings if any kind of tree-like structure is needed,
   for the moment when a visual editor appears.

3. Warnings.

zeroes 18.03.2011 16:22:17 +200 - build 1914

1. Correction of the type of a variable

svs 18.03.2011 16:51:39 +0300 - build 1913

1. Macro: Keybar.Show() function is added

     N=KeyBar.Show([N])

        0 - get state
            ret: 0 - hide, 1 - show, -1 - KeyBar not found
        1 - show
        2 - hide
        3 - swap
        ret: prev mode or -1 - KeyBar not found

   "KeyBar found" in panels, editor and viewer. And only if the area is current.
   In other areas (including the help area) -1 is returned.

   For example, Esc in panels
      CtrlO $if (APanel.Visible && PPanel.Visible) KeyBar.Show(1) $else KeyBar.Show(2) $end
   if panels are hidden, hide the keybar too.

2. Combo box selection was broken in macro keys assignment dialog.

drkns 18.03.2011 10:06:22 +0200 - build 1912

1. Correction of 1911.

drkns 18.03.2011 09:05:21 +0200 - build 1911

1. In Folder Shortcuts, assignment of several types to one shortcut is supported (Ctrl-Alt-<0-9> in panels or ShiftIns in menu).

drkns 17.03.2011 21:31:28 +0200 - build 1910

1. Correction of types in plugin api.

svs 17.03.2011 17:55:16 +0300 - build 1909

1. Mantis#0001733: XLat() macrofunction must not switch current keyboard layout.

   The function is granted with a second parameter - optional flags, and does not depend on TechInfo#10.

     S=xlat(S[,Flags])

     flags
       XLAT_SWITCHKEYBLAYOUT  = 1
       XLAT_SWITCHKEYBBEEP    = 2
       XLAT_USEKEYBLAYOUTNAME = 4

   print(xlat("Qwerty"))
   outputs "Йцукен" and herewith:
     * keyboard layout is not switched
     * there's no sound
     * values "00000409", "00000419" etc. from "HKCU\Software\Far2\XLat" branch are not used

   print(xlat("Qwerty",6))
   outputs "Йцукен" and herewith:
     * keyboard layout is not switched
     * there's a beep (sound)
     * values "00000409", "00000419" etc. from "HKCU\Software\Far2\XLat" branch are used


   $XLat macrocommand still depends on TechInfo#10

drkns 14.03.2011 11:11:11 +0200 - build 1908

1. PluginHotkeys is now in GUID\GUID format.

2. Commands, viewer/editor, folder, dialog histories moved to History subkey.

drkns 10.03.2011 20:54:46 +0200 - build 1907

1. Error loading plugins from cache.

drkns 11.03.2011 14:12:42 +0200 - build 1906

1. Plugin version format is changed, now this is a structure. You can specify additional information there: alpha, beta, rc, release.

2. ACTL_GETFARVERSION now always returns TRUE, it is also renamed to ACTL_GETFARMANAGERVERSION to prevent mistakes.

3. plugin.hpp is pure C compatible again.

drkns 10.03.2011 16:22:44 +0200 - build 1905

1. Warnings, optimization.

drkns 10.03.2011 12:10:12 +0200 - build 1904

1. File::<G|S>etPointer optimization. As a consequence:
    Mantis#0001668: CachedRead and CacheWrite classes are quite ineffective in performance terms.
    Mantis#0001431: 100% CPU load while page scrolling in viewer

svs 09.03.2011 08:15:51 +0300 - build 1903

1. Mantis#0000786: Incorrect output of UTF-8 encoded files content in viewer after positioning at search results
   from 2useven10

drkns 08.03.2011 09:23:34 +0200 - build 1902

1. Correction of 1892.1.

drkns 07.03.2011 21:45:33 +0200 - build 1901

1. Correction of 1899.2.

drkns 07.03.2011 14:43:32 +0200 - build 1900

1. All buttons in Message() were "default".

drkns 07.03.2011 13:35:35 +0200 - build 1899

1. OpenPanelW -> OpenW.

2. CompareW, DeleteFilesW, FreeFindDataW, FreeVirtualFindDataW, GetFilesW, GetFindDataW, GetOpenPanelInfoW, GetVirtualFindDataW, MakeDirectoryW, OpenW, ProcessHostFileW, ProcessMacroFuncW, PutFilesW, SetDirectoryW, SetFindListW functions take a structure as a parameter.

3. Wrapper corrections.

zg 07.03.2011 12:29:13 +0200 - build 1898

1. FarColor structure is added.

2. FARCOLORFLAGS is renamed to FARSETCOLORFLAGS.

3. ECF_TAB1 moved to EditorColor.Flags.

4. EditorColor.Color type is now FarColor.

zg 01.03.2011 11:12:03 +0200 - build 1897

1. Regular expressions replacement used to crash on empty parentheses.

drkns 28.02.2011 14:27:07 +0200 - build 1896

1. Plugins\<PluginGUID> keys contain PluginTitle as Default, for those manual editing fans.

drkns 27.02.2011 23:33:05 +0200 - build 1895

1. Correction of debug versions of delete[] and delete.

drkns 27.02.2011 13:26:39 +0200 - build 1894

1. Plugin settings are now stored at Plugins\<PluginGUID> instead of Plugins\<PluginTitle>.

drkns 24.02.2011 21:04:51 +0200 - build 1893

1. Warnings.

drkns 24.02.2011 20:34:19 +0200 - build 1892

1. Some correction on launcher functionality.

drkns 24.02.2011 17:09:22 +0200

1. Makeup.

drkns 24.02.2011 16:48:26 +0200 - build 1891

1. OpenFilePluginW = AnalyseW + OpenPanelW.
   OpenPluginW = OpenPanelW
   ClosePluginW = ClosePanelW
   GetOpenPluginInfoW = GetOpenPanelInfoW
   OpenPluginInfo = OpenPanelInfo
   FCTL_CLOSEPLUGIN = FCTL_CLOSEPANEL

zg 24.02.2011 02:48:54 +0200 - build 1890

1. Plugins with PF_PRELOAD flag were not loaded correctly if they had already been in the cache.

2. SCTL_CREATE did not return an error in the case of incorrect GUID.

drkns 23.02.2011 20:34:14 +0200 - build 1889

1. VC level 4 warnings.

1. Rollback of 1781.2

drkns 21.02.2011 09:36:32 +0200 - build 1888

1. gcc warnings & O3 optimization.

zg 20.02.2011 19:22:59 +0200 - build 1887

1. correction of SettingsControl(...,SCTL_SET,...): if Type equals to FST_SUBKEY then a key "Name" is created.

2. correction of 1886.

zg 20.02.2011 19:00:26 +0200 - build 1886

1. SettingsControl:

   SCTL_DELETE            - delete subkey or value.
                            hHandle - HANDLE returned by SCTL_CREATE.
                            Param2 - pointer to FarSettingsValue.
                            Root - descriptor of a key containing the thing being deleted.
                            Value - the name of a subkey or a value to delete.

drkns 20.02.2011 16:53:10 +0200 - build 1885

1. And more.

drkns 20.02.2011 16:36:47 +0200 - build 1884

1. Correction of types in plugin.hpp.

2. gcc warnings.

svs 19.02.2011 10:26:53 +0300 - build 1883

1. Correction of build 1880

svs 18.02.2011 15:36:25 +0300 - build 1882

1. Correction of build 1880

drkns 18.02.2011 13:50:12 +0200 - build 1881

1. Mantis#0001714: Error at the attempt of leaving to shares list via "..".

2. Mantis#0001716: Ctrl+C in panels does not copy files to clipboard.

svs 18.02.2011 11:10:57 +0300 - build 1880

1. Mantis#0001482: <!Macro:Vars!> and <!Macro:Consts!> output improvement
   Now these (and similar) construcctions in help take information from
   memory only (not from the registry).
   At the moment, there's a little drawback - the list is unsorted.

drkns 18.02.2011 09:21:21 +0200 - build 1879

1. In 1810, renaming to "*.ext" was broken.

drkns 17.02.2011 17:03:03 +0200 - build 1878

1. Bugs in wrapper.

drkns 17.02.2011 14:39:39 +0200 - build 1877

1. gcc.

drkns 17.02.2011 12:35:35 +0200 - build 1876

1. Correction of types in plugin.hpp.

2. Bugs in wrapper.

drkns 16.02.2011 21:03:11 +0200 - build 1875

1. Techinfo #48 is removed.

drkns 16.02.2011 19:57:08 +0200 - build 1874

1. Correction of types in plugin.hpp.

drkns 16.02.2011 17:00:00 +0200 - build 1873

1. Correction of types in plugin.hpp.

2. vc build.

3. warnings.

zg 16.02.2011 12:32:54 +0200 - build 1872

1. SettingsControl:

   SCTL_ENUM              - get the list of subkeys and values.
                            hHandle - HANDLE returned by SCTL_CREATE.
                            Param2 - pointer to FarSettingsEnum.
                            Root - subkey descriptor where to get information from.
                            Count - the number of returned elements.
                            Items - elements.

zg 16.02.2011 02:23:03 +0200 - build 1871

1. Settings storage API:

   int WINAPI SettingsControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2)

   Command:

   SCTL_CREATE            - hHandle - INVALID_HANDLE_VALUE.
                            Param2 - FarSettingsCreate, in - plugin's GUID, out - settings handle.
                            Return FALSE if failed.
   SCTL_FREE              - hHandle - HANDLE returned by SCTL_CREATE.
   SCTL_SET               - hHandle - HANDLE returned by SCTL_CREATE.
                            Param2 - pointer to FarSettingsItem.
                            Root - specifies the place for settings storage. 0 - root for the plugin. subkeys are made with SCTL_SUBKEY.
                            Name - the name of the stored value.
                            Type - type.
                            Value - the value itself.
   SCTL_GET               - hHandle - HANDLE returned by SCTL_CREATE.
                            Param2 - pointer to FarSettingsItem.
                            Value is filled in by FAR, the rest is done by the plugin.
   SCTL_SUBKEY            - hHandle - HANDLE returned by SCTL_CREATE.
                            Param2 - pointer to FarSettingsValue.
                            return the descriptor of a subkey named as "Value" for a subkey with "Root" descriptor.

2. PluginStartupInfo.RootKey field is removed.

t-rex 16.02.2011 01:00:45 +0200 - build 1870

1. Miscellaneous additions and corrections in DialogBuilder.

t-rex 14.02.2011 21:28:51 +0200 - build 1869

1. DialogBuilder: DIF_3STATE, DlgProc and UserParam support, one may omit a separator before Ok/Cancel.

2. DialogBuilder: DI_SINGLEBOX support is reworked.

drkns 13.02.2011 21:56:25 +0200 - build 1868

1. Warnings.

zg 13.02.2011 21:25:20 +0200 - build 1867

1. plugin.hpp is pure C compatible again.

2. all API flags are 64 bit wide.

3. correction of 1866.3: the type of StructSize is size_t.

zg 13.02.2011 15:29:55 +0200 - build 1866

1. DN_CLOSE is not equal to DM_CLOSE anymore.

2. DM_CLOSE always returned TRUE.

3. StructSize in API structures is unsigned everywhere.

zg 13.02.2011 11:01:58 +0200 - build 1865

1. disk menu plugin hotkeys were not read.

drkns 13.02.2011 00:39:44 +0200 - build 1864

1. debug build is fixed.

2. ACTL_GETPOLICIES is removed.

zg 12.02.2011 23:57:50 +0200 - build 1863

1. "StructSize" field is added to PanelMode.

2. FullScreen, DetailedStatus, AlignExtensions and CaseConversion fields are removed from PanelMode. Instead, Flags field is added with appropriate flags.

3. "Reserved" field is removed from PanelMode.

zg 12.02.2011 20:10:48 +0200 - build 1862

1. FarKey structure is added. FarKey.VirtualKeyCode is similar to KEY_EVENT_RECORD.wVirtualKeyCode. FarKey.ControlKeyState is similar to KEY_EVENT_RECORD.dwControlKeyState.

2. BreakKeys Menu parameter is now a pointer to FarKey array.

3. the type of KeyBarLabel.Key is FarKey.

drkns 12.02.2011 18:01:44 +0200 - build 1861

1. Fix for an ancient bug related to DefDlgProc for ANSI plugins.

zg 11.02.2011 18:45:24 +0200 - build 1860

1. ACTL_GETSHORTWINDOWINFO is removed for its meaninglessness.

2. thread-safe ACTL_GETWINDOWTYPE call. Param points to WindowType. TRUE is returned in case of success, FALSE otherwise.

zg 11.02.2011 17:01:22 +0200 - build 1859

1. DN_MOUSEEVENT is renamed to DN_INPUT. Param2 points to INPUT_RECORD. in future, passing of events other than mouse events is planned, therefore EventType checking is strongly recommended.

2. DN_KEY and DN_MOUSECLICK are combined to DN_CONTROLINPUT. Param2 points to INPUT_RECORD. in future, passing of other events is planned.

3. DM_KEY is no more equal to DN_KEY.

t-rex 11.02.2011 13:04:02 +0200 - build 1858

1. DialogBuilder is now capable of DI_SINGLEBOX with automatic elements grouping.

2. DialogBuilder is now capable of DI_FIXEDIT with text mask.

svs 11.02.2011 10:27:51 +0300 - build 1857

1. Mantis#0001482: Improvement of <!Macro:Vars!> and <!Macro:Consts!> output

t-rex 11.02.2011 01:56:20 +0200 - build 1856

1. ANSI code cleanup in DialogBuilder.

2. A couple makeup trivia in code.

drkns 11.02.2011 00:14:23 +0200 - build 1855

1. Mantis#0001713: Access to "." and ".." folders on non-NTFS volumes.
   Now "." and ".." can be entered by UNC-paths, listed etc.

2. VC warnings.

zg 11.02.2011 00:03:05 +0200 - build 1854

1. rollback of 1853.

2. correction of 1852, -1 for the current editor/viewer.

t-rex 10.02.2011 22:59:45 +0200 - build 1853

1. For 1852 to work, Viewer/EditorID in FAR must start from 1, not from 0.

t-rex 10.02.2011 20:15:23 +0200 - build 1852

1. Correction of 1851:
     int WINAPI EditorControl(int EditorID, int Command, int Param1, INT_PTR Param2);
     int WINAPI ViewerControl(int ViewerID, int Command, int Param1, INT_PTR Param2);

   ID instead of HANDLE, 0 for the current editor/viewer.

2. One could not call Viewer/EditorControl from panels for ID!=0.

svs 10.02.2011 18:26:54 +0300 - build 1851

1. Rearrangement of EditorControl, ViewerControl and RegExpControl.
   Now it looks like this:
     int WINAPI EditorControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2);
     int WINAPI ViewerControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2);
     int WINAPI RegExpControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2);

   For editor/viewer, if hHandle == INVALID_HANDLE_VALUE - the current editor/viewer (1.7x wrapper works with the current one)
   Otherwise, the value from EditorInfo::EditorID is taken as a handle.

   Param1 is unused so far.

   Inner EditorControl and ViewerControl implementations (in classes) still remain unchanged.

zg 10.02.2011 14:25:07 +0200 - build 1850

1. OPM_PGDN is added. it is passed to OpenFilePluginW if PgDn has been pressed on a file.

2. OPEN_DISKMENU->OPEN_LEFTDISKMENU. OPEN_RIGHTDISKMENU is added.

svs 10.02.2011 12:01:19 +0300 - build 1849

1. Rearrangement of "ACTL_KEYMACRO".

   * removed: ACTL_KEYMACRO, FARMACROCOMMAND, struct ActlKeyMacro
   * added: MacroControl, MACRO_CONTROL_COMMANDS, FARMACROSENDSTRINGCOMMAND, struct MacroSendMacroText, struct MacroCheckMacroText

   New API look:
   int Info.MacroControl(HANDLE hHandle,int Command,int Param1,INT_PTR Param2)
    hHandle = 0
    Command:
       MCTL_LOADALL
         Param1=0
         Param2=0
         Return=0|1
       MCTL_SAVEALL
         Param1=0
         Param2=0
         Return=0|1
       MCTL_SENDSTRING
         Param1:
           MSSC_POST
             Param2=MacroSendMacroText*
             Return=0|1
           MSSC_EXEC (a stub so far, unused)
             Param2=MacroSendMacroText*
             Return=0|1
           MSSC_CHECK
             Param2=MacroCheckMacroText* (Text)
             Return=0|1 in Param2=MacroCheckMacroText* (Check)
       MCTL_GETSTATE
         Param1=0
         Param2=0
         Return=FARMACROSTATE
       MCTL_GETAREA
         Param1=0
         Param2=0
         Return=FARMACROAREA


zg 10.02.2011 02:16:46 +0200 - build 1848

1. correction of 1846.2.

zg 10.02.2011 01:52:02 +0200 - build 1847

1. dialog plugins are prohibited for the dialog on plugin/FAR version mismatch.

2. FMSG_LEFTALIGN was malfunctional.

zg 10.02.2011 01:00:03 +0200 - build 1846

1. DN_KEY processing in built-in dialogs is corrected.

2. MAKEFARVERSION: now the version is in the upper word, the build is in the lower word.

3. PluginMenuItem: Guid is replaced with Guids.

zg 09.02.2011 20:25:20 +0200 - build 1845

1. FarDialogItem.Param.ListPos is removed.

svs 09.02.2011 18:51:58 +0300 - build 1844

1. ActlKeyMacro: StructSize is added.

2. ACTL_POSTKEYSEQUENCE is removed (the analog is ACTL_KEYMACRO).
   FARKEYSEQUENCEFLAGS is renamed to FARKEYMACROFLAGS (also, KSFLAGS_* -> KMFLAGS_* ).
   struct KeySequence is removed.

3. Rearrangement of struct KeyBarTitles (part 1)

     struct KeyBarLabel
     {
        DWORD Key;
        const wchar *Text;
        const wchar *LongText;
     };
     struct KeyBarTitles
     {
        int CountLabels;
        struct KeyBarLabel *Labels;
     };

zg 09.02.2011 15:19:00 +0200 - build 1843

1. Correction of 1842.1: GetPluginDirList, Menu, Message, InputBox, AdvControl, DialogInit, GetMsg sometimes worked wrong in SetStartupInfoW and GetPluginInfoW.

zg 09.02.2011 03:42:44 +0200 - build 1842

1. in GetPluginDirList, Menu, Message, InputBox, AdvControl, DialogInit, GetMsg, one must pass a pointer to plugin's GUID instead of ModuleNumber.
   Thereafter, ModuleNumber is also removed from PluginStartupInfo.

2. in ConfigureW, OpenPluginW and DialogInit, GUID is replaced to a pointer to GUID.

zg 09.02.2011 00:36:50 +0200 - build 1841

1. If suddenly FAR discovers a few plugins with identical GUIDs, only first one is loaded.

2. Plugin search by GUID is sped up.

drkns 08.02.2011 21:48:00 +0200 - build 1840

1. DIF_INTERNALFOCUS & DIF_DEFAULT are removed.

2. plugin.hpp is redone a little.

zg 08.02.2011 19:39:28 +0200 - build 1839

1. flags were read incorrectly from plugin cache.

drkns 08.02.2011 16:52:23 +0200 - build 1838

1. VC warnings.

zg 08.02.2011 14:57:17 +0200 - build 1837

1. correction of 1836.1.

2. FarDialogItem.UserParam is used as a value linked with dialog element (it is returned via DM_GETITEMDATA).

zg 08.02.2011 13:54:18 +0200 - build 1836

1. FarDialogItem: Focus&DefaultButton are removed. Instead, there are DIF_FOCUS&DIF_DEFAULTBUTTON flags.

2. FarDialogItem: History&Mask are moved outside an union.

3. FarDialogItem: Flags is now 64 bit wide.

4. UserParam is added to FarDialogItem, unused yet.

svs 08.02.2011 11:41:03 +0300 - build 1835

1. OpenPluginInfo::Reserved is removed,
   OpenPluginInfo::FreeSize is added (unsigned __int64)

2. OPIF_USEFREESIZE flag is added - "OpenPluginInfo::FreeSize component contains data"
   (or "when the flag is absent then FreeSize field is not relevant")
   That is, not any plugin provides "free space" notion (for example, Network or ImpEx)

t-rex 08.02.2011 01:29:17 +0200 - build 1834

1. PluginNumber in InputBox (like everywhere) to let FAR know where help topics must be opened from (a very old bug).

2. Historical stuff is removed from plugin.hpp: DM_SETREDRAW=DM_REDRAW and DM_SETTEXTLENGTH=DM_SETMAXTEXTLENGTH.

zg 08.02.2011 00:40:42 +0200 - build 1833

1. implementation of CallPlugin&FindPlugin for GUIDs.

drkns 07.02.2011 23:12:53 +0200 - build 1832

1. Mistype in 1831.

drkns 07.02.2011 21:12:08 +0200 - build 1831

1. API:
   - A new export: void GetGlobalInfoW(GlobalInfo* Info), where:

   struct GlobalInfo
   {
    int StructSize;              // size
    DWORD MinFarVersion;         // minimal required Far version
    DWORD Version;               // plugin's version (in same form)
    GUID Guid;                   // plugin's GUID
    const wchar_t *Title;        // plugin's common name
    const wchar_t *Description;  // description/comment/additional
    const wchar_t *Author;       // plugin's author
  };

  A plugin must export GetGlobalInfoW.
  All fields must be filled in.
  The function is called once.

2. SysID is removed.

zg 07.02.2011 12:41:30 +0200 - build 1830

1. a new parameter in DialogInit: dialog's GUID.

2. a new field in DialogInfo: Owner. It contains the GUID of the plugin that has invoked the dialog.

3. DN_GETDIALOGINFO is removed for its uselessness.

drkns 06.02.2011 16:24:19 +0200 - build 1829

1. Importing settings from Far2.

drkns 06.02.2011 14:05:06 +0200 - build 1828

1. xor and other according tricks are removed from copyright line.

2. The registry key is now "Far Manager".

drkns 06.02.2011 13:11:59 +0200 - build 1827

1. Plugins hotkeys in drives menu did not work.

2. Plugins in drives menu can be sorted by hotkeys (F9).

drkns 06.02.2011 12:11:59 +0200 - build 1826

1. Info.CmpName is removed.

2. OPIF_USESORTGROUPS -> OPIF_DISABLESORTGROUPS, OPIF_USEHIGHLIGHTING -> OPIF_DISABLEHIGHLIGHTING.

t-rex 05.02.2011 23:19:46 +0200

1. FAR version is now 3.0

drkns 05.02.2011 15:30:10 +0200 - build 1825

1. LONG_PTR -> INT_PTR.

2. OPIF_USEFILTER -> !OPIF_DISABLEFILTER.

3. FCTL_GETCMDLINESELECTEDTEXT is removed.

4. FarMenuItem and FMENU_USEEXT are removed, FarMenuItemEx is now FarMenuItem.

drkns 04.02.2011 23:53:23 +0200 - build 1824

1. x64 debug build was malfunctional.

2. Warning.

zg 04.02.2011 23:36:52 +0200 - build 1823

1. "Id" is added to WindowInfo. is acts as a handle for a dialog, and as Id for editor/viewer.

2. Modified&Current are removed from WindowInfo. Flags and WIF_MODIFIED&WIF_CURRENT are the replacement.

zg 04.02.2011 21:50:22 +0200 - build 1822

1. correction of 1820 for NumEnter.

2. gcc warnings.

drkns 04.02.2011 16:50:21 +0200 - build 1821

1. FAR_FIND_DATA is removed, the content is moved to PluginPanelItem. Also, ChangeTime is added there.

svs 04.02.2011 17:43:54 +0300 - build

1. Pay attention to the phrase "#ifdef FAR_USE_INTERNALS"!
   Is has got a pair: "#endif // END FAR_USE_INTERNALS"
   It is processed with a script!

svs 04.02.2011 16:39:35 +0300 - build 1820

1. Solving troubles with keyboard.
   a) Ctrl. Ctrl. Ins (not on numpad) - we see Num0 instead of Ins
   b) TranslateKeyToVK function has become smarter - catching bugs :-)

yjh 04.02.2011 15:29:20 +0300 - build 1819

1. 64bit warnings

drkns 04.02.2011 14:15:16 +0200 - build 1818

1. Alignment for x86 is now 8 bytes too.

drkns 04.02.2011 00:37:26 +0200 - build 1817

1. Bells and whistles: proper copyright character "©" instead of "(С)".

zg 03.02.2011 18:27:43 +0200 - build 1816

1. DN_KEY, DN_HOTKEY take a reference to INPUT_RECORD array as Param2.

2. DM_KEY takes a reference to INPUT_RECORD array as Param2.

zg 03.02.2011 16:05:25 +0200 - build 1815

1. FAR_PKF_FLAGS is removed.

2. PKF_PREPROCESS support is removed.

zg 03.02.2011 15:12:44 +0200 - build 1814

1. INPUT_RECORD appears in ProcessKeyW.

2. FSF is appended with FarKeyToInputRecord.

drkns 03.02.2011 14:25:22 +0200 - build 1813

1. Corrections in setattr and fileowner.

2. macrocompuler.?pp -> macrocompiler.?pp

zg 03.02.2011 13:05:54 +0200 - build 1812

1. PanelInfo is appended with StructSize, OwnerGuid, PluginHandle.
   For plugin panels, OwnerGuid equals to plugin's GUID, PluginHandle equals to value returned by the plugin from Open[File]Plugin.
   For real panels, OwnerGuid equals to FarGuid, PluginHandle equals to INVALID_HANDLE_VALUE.

2. PanelInfo: Plugin, Visible, Focus and ShortNames are removed. Instead, there are PFLAGS_PLUGIN, PFLAGS_VISIBLE, PFLAGS_FOCUS and PFLAGS_ALTERNATIVENAMES.

3. PanelInfo.Flags is now 64 bit wide.

svs 03.02.2011 13:34:09 +0300 - build 1811

1. syntax.?pp are renamed to macrocompiler.?pp

2. Mantis#0001696: "len" function "crashes" FAR sometimes
   TVar::toString() returns nullptr

3. Mantis#0001697: Access to Custom column from panel.item function
   (from DAtaMan)
   Index 22 is added, is equals to Custom column value

4. Macro: "substr got rid of 3rd parameter default value of -1"
   TVar is appended with vtUnknown type (analogous to vtInteger, contains 0)

5. ActlKeyMacro structure has grown, according to #5
   (http://forum.farmanager.com/viewtopic.php?p=58432#p58432).

drkns 03.02.2011 10:07:07 +0200 - build 1810

1. Mantis#0001698: Error in copied files number calculation code.
   Also, total files number was calculated incorrectly at multiple files copying.

2. #error in headers.hpp is for release build only.

drkns 03.02.2011 09:12:32 +0200 - build 1809

1. Fix for vc-build + warnings.

zg 03.02.2011 04:11:18 +0200 - build 1808

Global API changes have started. All Unicode plugins for previous builds are incompatible with new versions.
Until all planned API changes are done, headers.hpp contains #error.

1. Plugin's GUID is added to PluginInfo.

2. GUID is added to PluginInfo for each menu line. The GUID is passed to OpenPluginW and ConfigureW. It must be unique throughout the menu.

3. New parameter in PluginInfo: PluginTitle, the plugin's common name.

4. PluginInfo's Flags field is now 64 bit.

5. GetMinFarVersionW is removed, there is MinFarVersion in PluginInfo instead.

drkns 02.02.2011 08:36:12 +0200 - build 1807

1. Correction of 1804.1.

svs 01.02.2011 18:10:02 +0300 - build 1806

1. Mantis#0001418: VMenu reaction to RClick is same as in dialogs

2. A section is added to help files, containing lists of installed macros.

svs 01.02.2011 16:07:38 +0300 - build 1805

1. Mantis#0001690: FDLG_NODTITLE - do not change console caption to dialog caption
   (from samlyukov)
   Instead of suggested FDLG_NODTITLE, a FDLG_KEEPCONSOLETITLE dialog flag is added,
   which lets switch off the console header change to 0-th dialog element.

2. Macro: correction of build #1791

3. Mantis#0001684: FileList:GetCurName crash at network folder read
   (from Maximus)
   The cause is ProcessSynchroEvent call from CheckForEscSilent, while the plugin is calling ACTL_GETWINDOWINFO.
   FAR hasn't finished directory read, thus CurFile is greater than FileCount.
   Which leads to the crash.

4. Mantis#0001677: At macro launch, set "launching" key code with MCMD_POSTMACROSTRING
   Troubles with AKey...
   It needs testing!

5. Mantis#0001480: Expand substr() to let it return substring from the end of string
     if start  >= 0 then the result is a substring at the "start" position from the beginning of the string.
     if start  <  0 then the result is a substring at the "start" position from the end of the string.
     if length >  0 then the returned substring consists of maximum "length" characters from "start"
     if length <  0 then the returned substring starts from "start" and misses "length" characters from the end of the string.

     an empty string is returned:
       if length = 0
       if ... (clarify!)


drkns 01.02.2011 14:02:14 +0200 - build 1804

1. "In all non-removable drives"/"In all local drives" search mode also counts unmounted drives.

2. Mantis#0001693: Incorrect settings in File descriptions dialog

drkns 29.01.2011 12:31:15 +0200 - build 1803

1. Correction of alternative streams search in folders.

svs 27.01.2011 13:30:39 +0300 - build 1802

1. Macro: Correction of return code for callplugin
   callplugin function returns 0 if the called plugin does not exist or it has returned 0.
   In other cases, the function returns a non-zero value.

svs 25.01.2011 18:35:03 +0300 - build 1801

1. Macro: Correction of return code for callplugin

svs 25.01.2011 16:53:18 +0300 - build 1800

1. Mantis#0001673: Add OPEN_FROMMACROSTRING flag to existing OPEN_FROMMACRO
   Testing...

   <ACHTUNG>

     Note for OpenPluginW:
       If OPEN_FROMMACRO flag is set in OpenFrom parameter, then values in least significant word
       contain the ID of the current macro area defined in FARMACROAREA, not an identifier from
       OPENPLUGIN_OPENFROM enumeration.

   </ACHTUNG>


2. Mantis#0001677: Provide "launching" key code when running a macro with MCMD_POSTMACROSTRING
   ActlKeyMacro::Param::PlainText structure is appended with "AKey" field.

drkns 23.01.2011 13:02:35 +0200 - build 1799

1. Error in FCTL_SETSORTMODE.

2. #0001670 once more.

drkns 22.01.2011 18:31:13 +0200 - build 1798

1. #0001670 once more.

drkns 20.01.2011 20:18:54 +0200 - build 1797

1. Correction of "read"/"modification" access rights separation in apiCreateFile.

drkns 20.01.2011 00:52:42 +0200 - build 1796

1. Links copying/moving did not work in several cases.

drkns 19.01.2011 21:21:30 +0200 - build 1795

1. Some more elevation-related paranoia:
     - pipe name = GUID;
     - PID check.

drkns 18.01.2011 14:47:00 +0200 - build 1794

1. Ibid:
     - correction of 1793;
     - paranoia mode on: Named pipe is now available for privileged processes only.

drkns 18.01.2011 00:53:26 +0200 - build 1793

1. Changes in elevation, see Mantis#0001670.

drkns 17.01.2011 13:27:27 +0200 - build 1792

1. Mantis#0001667: can't paste hex numbers

svs 16.01.2011 18:02:14 +0300 - build 1791

1. Mantis#0001660: XOR operation for boolean expressions
   "^^" conditional operation is added - XOR, exclusive OR

drkns 16.01.2011 00:20:57 +0200 - build 1790

1. "[x] File processing (OpenFilePlugin)" switch in plugin manager settings is now 3-positional:
     [ ] - don't show menu;
     [?] - show menu everywhere but cases "enter an archive with Enter" and "search in archives";
     [x] - show menu everywhere.

2. GCC warnings.

svs 14.01.2011 17:39:03 +0300 - build 1789

1. Mantis#0001631: addition in PluginsControl() - PCTL_FORCEDLOADPLUGIN
   (from: samlyukov)
   Addition to API: PCTL_FORCEDLOADPLUGIN loads plugin directly into memory instead of cache, which allows
                  custom plugins use at inter-plugin interaction.

svs 14.01.2011 17:11:42 +0300 - build 1788

1. Macro: correction for iif regarding the check whether the argument is a string (see build 1786 #3)

2. Macro: correction for $if(string) regarding the check whether the operand is a string (see build 1786 #3)

drkns 13.01.2011 22:33:26 +0200 - build 1787

1. Launcher inofficial testing mode - "do not flash with panels when launching non-console applications".
   The mode is on if System\Executor\SilentExternal=dword:1.

svs 13.01.2011 11:43:12 +0300 - build 1786

1. Mantis#0001655: Incorrect error message at macro parsing

2. Mantis#0001642: Incorrect error position is returned at macro sequence check

3. Macro: changes in conditions checking behavior for $if/$while
   String in condition is checked for emptiness.

     %a="";
     $if (%a) is not executed $else is executed $end
     $if ("") is not executed $else is executed $end

     %a="anything, including 0";
     $if (%a) is executed $else is not executed $end
     $if ("anything") is executed $else is not executed $end
     $if ("0") is executed $else is not executed $end

   + slightly reduce the code size :-)

4. Macro: Scr.Scroll function introduced in build 1773 is renamed to Window.Scroll

5. Mantis#0001656: Debug version crashes in TruncStr

drkns 12.01.2011 16:15:14 +0200 - build 1785

1. And even more.

drkns 12.01.2011 13:14:15 +0200 - build 1784

1. Another pair of corrections in launcher.

drkns 11.01.2011 21:49:13 +0200 - build 1783

1. Correction of 1782.2.

drkns 11.01.2011 21:38:40 +0200 - build 1782

1. /rc key is removed - original console state is always restored.

2. Support for commands run with privileges escalation (aka "Run as administrator") in panels, command line and history. The hotkey is CtrlAltEnter.

3. Changes in launcher because of #2. Everything seems to work, nevertheless be careful.

drkns 10.01.2011 21:27:48 +0200 - build 1781

1. Displaying of number of processed files in copy dialog is back.

2. Common copy process indicator now works during moving within single volume too.

drkns 10.01.2011 14:20:32 +0200 - build 1780

1. Some optimization: if there is no plugins exporting OpenFilePlugin/Analyse, then no excessive actions (file open/read/close)
   is done at attempt to "enter" the file.

2. A couple of trivia.

drkns 09.01.2011 12:50:26 +0200 - build 1779

1. When an incorrect date was intentionally set, it could be replaced with a random value.

2. More correct 2-digit years interpretation.

drkns 08.01.2011 22:48:50 +0200 - build 1778

1. Fixed: Launch attempt was ignored for files of type unknown to OS.

drkns 07.01.2011 22:34:21 +0200 - build 1777

1. Mantis#0001644: Crash after "Cannot load language data".

drkns 05.01.2011 19:21:38 +0200 - build 1776

1. Correction of 1775.

drkns 05.01.2011 10:50:10 +0200 - build 1775

1. Mantis#0001640: Strings must be backed up between DialogInit and DialogFree calls
   Now FAR makes the inner copies of FarDialogItem.History and FarDialogItem.Mask, there's no need to store them in a plugin.

drkns 02.01.2011 12:57:22 +0200 - build 1774

1. Correction of yyyy-MM-dd formatted dates output.

2. interf.cpp is cleaned a little bit.

svs 29.12.2010 16:09:28 +0300 - build 1773

1. Mantis#0001538: Panel refreshing at some macro commands execution

2. Macro: a function is added N=Scr.Scroll(Lines[,Axis])
      Lines - positive number - forward (down/right), negative - back (up/left).
      Axis - optional parameter, 0 - vertical (default), 1 - horizontal.

      The function returns 0 on scrolling failure (for example, Lines was equal to 0), else 1

drkns 29.12.2010 11:30:42 +0200 - build 1772

1. In 1741, SharePoint shares support was broken.
   It seems that Microsoft ignores its own API.

drkns 28.12.2010 12:55:27 +0200 - build 1771

1. 1763 is continued - years are displayed without leading zero.

2. Changes in DIF_MASKEDIT: Del/BS do not shift the remaining text.

3. At the time of PrepareDiskPath() execution, Elevation is disabled.

svs 28.12.2010 09:49:18 +0300 - build 1770

1. Correction of build 1769

2. Mantis#0001594: FAR being launched in editor or viewer mode loads macros for UserMenu
   The user menu is temporarily disabled in these modes...

3. Mantis#0001614: Line-by-line scrolling in "far.exe /w" mode
   (from DAtaMan)
   Console buffer line-by-line scrolling with Ctrl-Alt-Up/Down keys

   <ACHTUNG>

     After "scroll" macrofunction appear (http://forum.farmanager.com/viewtopic.php?f=15&t=5409),
     any keys processing for screen buffer scrolling will be removed from manager.

   </ACHTUNG>

4. "&Hidden" and "C&hange time:" hotkeys duplicates in SetAttr dialog.
   "Change time:" is bound to "g".

svs 27.12.2010 12:45:54 +0300 - build 1769

1. Mantis#0001634: Sometimes panel.item function returns an empty description for a file
   (from DAtaMan)
   panel.item(0,0,11) returns an empty value if descriptions mode is off or no CtrlZ was invoked

drkns 24.12.2010 10:37:23 +0200 - build 1768

1. 1764 is continued - write timestamp is also taken from the source.

zg 20.12.2010 13:46:31 +0200 - build 1767

1. Forum:
   type `macro:post panel.setpath(1, "C:/")' in command line (to change passive panel path)
   and press F5 Enter on any file or folder in active panel.
   This results in "Can not find the file" error.

drkns 19.12.2010 23:49:18 +0200 - build 1766

1. Correction of 1763.

svs 19.12.2010 22:52:53 +0300 - build 1765

1. Mantis#0001623: A new command in FARMACROCOMMAND - MCMD_GETAREA - Get current macro area
   (from Yegor)

drkns 18.12.2010 20:59:54 +0200 - build 1764

1. When "[x] Copy contents of symbolic links" is on, source size is displayed for symlinks in overwrite confirmation dialog.

drkns 18.12.2010 18:20:53 +0200 - build 1763

1. Correction of 1762.1 for "Year-Month-Day"-formatted dates.

drkns 17.12.2010 18:58:27 +0200 - build 1762

1. There were rumors about incorrect displaying of 5-digit years in the file attributes dialog.

drkns 15.12.2010 22:05:28 +0200 - build 1761

1. Dialogs are not centered on console resize.

drkns 14.12.2010 16:13:10 +0200 - build 1760

1. Correction of 1757.4.

drkns 13.12.2010 18:12:58 +0200 - build 1759

1. Rollback of 1756.

drkns 12.12.2010 20:01:39 +0200 - build 1758

1. Correction of 1757.2.

drkns 12.12.2010 19:43:37 +0200 - build 1757

1. Mantis#0001618: Numeric sort in other columns too.

2. "Case sensitivity" of sorting is now the property of the panel itself, not its mode (similar to numeric sort).
   The appropriate option moved from panel mode configuration dialog to "Sort by" menu.

3. PFLAGS_CASESENSITIVESORT and FCTL_SETCASESENSITIVESORT are added to API.

4. Checking of malloc()/free(), new/delete, new[]/delete[] pairs is added to debug build for catching bugs like "int* a=new int[10]; delete a;"

drkns 12.12.2010 14:30:26 +0200 - build 1756

1. Some mouse events were not passed to the editor.

chupakabra 11.12.2010 16:02:00 +0200 - build 1755

1. Too much memory allocated in Editor::Block2Text (up to the size of the whole file).

drkns 10.12.2010 22:36:15 +0200 - build 1754

1. Correction of FindFirstStream inner implementation.

drkns 10.12.2010 20:02:21 +0200 - build 1753

1. "[x] Automatic update of environment variables" -> "[ ] Automatic update of environment variables".

2. Correction of console::Write().

drkns 10.12.2010 10:51:32 +0200 - build 1752

1. "[x] Automatic update of environment variables".

t-rex 10.12.2010 00:06:20 +0200 - build 1751

1. Ctrl-Ins does not copy files to clipboard anymore, now this is bound to Ctrl-C.
   Ctrl-C - Copy marked files to clipboard (not taking command line state into account).

drkns 08.12.2010 23:50:39 +0200 - build 1750

1. Attributes dialog's option "[ ] Process subfolder" is hidden for files.

2. "[ Panel ]" button blocking is broken in search results if appropriate plugins are missing.

drkns 08.12.2010 19:07:03 +0200 - build 1749

1. Forum: "Show selected first" item in sort mode choose menu is actually "Show directories first", and the last item does not work at all, even the checkbox is not set.

2. Forum: Bug at "C:\Documents and Setting\All Users" folder open

3. Forum: Far crashes if Ctrl+Shift+End is pressed in input field of fixed size (for example, Options - Editor settings - Tab size)

drkns 07.12.2010 18:09:12 +0200 - build 1748

1. Handle leak in previous build.

drkns 07.12.2010 12:41:41 +0200 - build 1747

1. Mantis#0001615: A possibility to open path in panels that doesn't exist on volume or in network

drkns 07.12.2010 11:29:41 +0200 - build 1746

1. Correction of 1741.

drkns 07.12.2010 08:45:22 +0200 - build 1745

1. Another couple of trivia.

drkns 07.12.2010 01:02:52 +0200 - build 1744

1. Mantis#0001408: Paste into autocompleted field leaves the text "grayed" sometimes.

drkns 07.12.2010 00:04:33 +0200 - build 1743

1. Mantis#0001612: Possibility to set current time in file attributes change dialog

drkns 06.12.2010 20:09:35 +0200 - build 1742

1. When Far 1.x local menu files are read, former divider formatting is taken into account.

drkns 06.12.2010 19:42:33 +0200 - build 1741

1. "Change Time" support.
   Unlike "Last Write Time", it is updated at any manipulations with the file, not only at file contents change.

2. Correction of hlf/lng - "Modification time" -> "Last write time".

3. Simple global protection from memory shortage: at unsuccessful allocation, instead of crash, execution is stopped with repeat or resume capability.

4. gcc warnings.

drkns 04.12.2010 11:11:27 +0200 - build 1740

1. From Tim Sobolev: correction of editor window caption.

2. Correction of 1738.2.

svs 03.12.2010 17:01:42 +0300 - build 1739

1. From Alexey Samlyukov: far.exe /w mode is appended with keys: Ctrl-Alt-Home/End scroll the window to the beginning/end of the buffer

drkns 02.12.2010 20:06:35 +0200 - build 1738

1. Mantis#0001608: A minor bug at codepage duplicates search

2. Types correction.

drkns 01.12.2010 16:08:46 +0200 - build 1737

1. Correction of 1729.1.

drkns 26.11.2010 23:25:10 +0200 - build 1736

1. Incorrect processing of ';'-separated masks list containing "%pathext%".

drkns 26.11.2010 20:44:41 +0200 - build 1735

1. Mantis#0001591: Addition to FileFilterControl: Custom filters

2. Hiding useless elements in link creation dialog.

yjh 26.11.2010 11:00:23 +0300 - build 1734

1. Fixed error in 1732

drkns 25.11.2010 21:15:37 +0200 - build 1733

1. From Alexey Samlyukov: PFLAGS_USECRC32/OPIF_USECRC32 flags define explicitly that the plugin fills in its panel elements' CRC32 field.

drkns 25.11.2010 15:07:10 +0200 - build 1732

1. Correction of 1730.1 - In Windows 7 and higher, there is a single "App Paths".

drkns 25.11.2010 13:52:52 +0200 - build 1731

1. "[x] use additional privileges" option didn't work

yjh 25.11.2010 14:50:16 +0300 - build 1730

1. In win64, 'App Paths' registry key must be accessed in "two versions", for
   32- and 64-bit processes (they differ :)

drkns 25.11.2010 10:30:48 +0200 - build 1729

1. At rename/move, "[ ] Process multiple destinations" option is off and unused.

yjh 25.11.2010 08:55:14 +0300 - build 1728

1. ulink's def file was committed in its "debug" form

yjh 25.11.2010 04:42:51 +0300 - build 1727

1. vc10.asm is redesigned to take a little less space :).

2. At the case of linking with ulink, vc10 is not used - instead,
   these 2 routines are done in "delayload" mode and "substituted" only in
   situation when they have not imported.
     The difference in behavior has 3 causes: this variant is more correct,
   ulink forbids "direct usage" of names' __imp_ prefixes (this is a rare
   exotics, although such mistakes do happen), and finally, ms-link doesn't
   support partial delay load.

drkns 23.11.2010 20:39:55 +0200 - build 1726

1. From Alexey Samlyukov: malfunctional FreePluginDirList.

2. From Alexey Samlyukov: GetPluginDirList can process the passive panel.

drkns 22.11.2010 22:20:00 +0200 - build 1725

1. Minimal system requirements for VC2010 build are now 2k SP4 + KB816542, instead of XP SP3.

drkns 22.11.2010 14:27:37 +0200 - build 1724

1. Mantis#0001600: No entry in 'C:\Users\<User>\Application Data'

2. A couple of trivia.

drkns 17.11.2010 00:12:50 +0200 - build 1723

1. Mistype in 1722.

drkns 16.11.2010 19:14:24 +0200 - build 1722

1. file to its SFN rename support is removed from copier - its implementation leads to bugs at ordinary renaming.

2. Attempt of renaming to the same name is now considered successful and doesn't cause "Cannot copy the file onto itself" error.

3. Correct character case of SFN is shown in panels.

4. At users' request - FarRecursiveSearch does not search on SFN.

5. Optimization of several api* wrappers.

drkns 15.11.2010 13:47:00 +0200 - build 1721

1. Forum: "Problem when writing a macro".

t-rex 12.11.2010 21:32:19 +0200 - build 1720

1. Mantis#1527: Selected items in input history do not stay at the top of drop-down list
   and can get removed when outdated.

drkns 12.11.2010 19:39:44 +0200 - build 1719

1. Correction of 1718.

drkns 12.11.2010 13:47:00 +0200 - build 1718

1. Mantis#0001587: far:goto "c:\long path" was broken

drkns 12.11.2010 07:53:51 +0200 - build 1717

1. Correction of 1715.3.

drkns 11.11.2010 11:11:11 +0200 - build 1716

1. Sequel of 1715.3. w32api minimal version for gcc is now 3.15.

drkns 10.11.2010 20:50:52 +0200 - build 1715

1. Correction of text in links creation dialog

2. Mantis#0000329: Change default colors for Unchanged text
   Also, selection in command line is now cyan, instead of gray, for uniformity.

3. Removed junk from headers.hpp.

ts 09.11.2010 22:43:29 +0200 - build 1714

1. Macro: BM.back() is now given functionality implemented earlier with BM.prev()
   BM.prev() only returns to previous bookmark, as expected.

svs 08.11.2010 18:07:58 +0300 - build 1713

1. Macro: BM.first() and BM.last() are removed because of functional redundancy...

   <ACHTUNG>

     BM.first must be replaced with BM.goto(1)
     BM.last  must be replaced with BM.goto(BM.stat(0))

   </ACHTUNG>

2. Macro: fix of Menu.XXX malfunction in dialogs with lists.

drkns 08.11.2010 16:10:32 +0200 - build 1712

1. Circumvention of old Windows' stupid bug:
   ExpandEnvironmentStringsW(L"%__CD__%", NULL, 0); construction caused AV in ntdll:RtlExpandEnvironmentStrings_U.
   In addition, some optimization.

ts 06.11.2010 20:45:04 +0200 - build 1711

1. Correction of 1710.

svs 05.11.2010 16:50:49 +0300 - build 1710

1. Macro: addition to bookmarks (from: Tim Sobolev)
    N=BM.first() - go to first bookmark
    N=BM.last() - go to last bookmark
    N=BM.goto([pos]) - go to bookmark with index given (pos=0 or unspecified --> the current one)
    N=BM.push() - store current position as a bookmark at the top of bookmarks stack
    N=BM.pop() - restore current position from a bookmark at the top of the stack and remove the bookmark

  Addition to BM.stat(I) - for I=1 the index of the current bookmark is returned (-1 if there is no bookmarks)

  Note for BM.add() and BM.prev()

  If the sequence of BM.add() and BM.prev() has been called, the following actions take part:

  a) If editor's current position matches the position saved with BM.add(),
  then go to bookmark previously created with BM.add().
  b) If editor's current position does not match the position saved with BM.add(),
  then save the current position and go to bookmark created with BM.add().

drkns 03.11.2010 10:15:20 +0200 - build 1709

1. Correction of 1708.

drkns 31.10.2010 22:24:07 +0200 - build 1708

1. Experimental:
   - completion can append paths in the middle of the command line ("cd c:\wi").

drkns 30.10.2010 20:37:40 +0200 - build 1707

1. Copying of symlinks with "read only" attribute did not work.

drkns 28.10.2010 16:48:32 +0200 - build 1706

1. Mantis#0001559: "Cannot find the file" error on folder change from folders history

svs 27.10.2010 13:23:28 +0300 - build 1705

1. Macro: correction of Selected, Bof, Eof, Empty behavior.
   Now they meet the specification.

zg 27.10.2010 12:47:55 +0200 - build 1704

1. gcc build.

svs 26.10.2010 12:25:02 +0300 - build 1703

1. The first iteration of Mantis#0000466. It is wrapped temporarily in PROCPLUGINMACROFUNC (unavailable in a regular build)

2. Code exchange between macro.cpp and syntax.cpp
   An inner entity is introduced: "registration of a function".

drkns 26.10.2010 00:45:47 +0200 - build 1702

1. At users' wish, the rollback is rolled back.
   Privileges option is restored and it is off by default.

drkns 25.10.2010 21:39:28 +0200 - build 1701

1. Rollback of 1699.

drkns 25.10.2010 11:56:14 +0200 - build 1700

1. VCTL_GETINFO returned incorrect value of ViewerInfo::WindowSizeY.

drkns 24.10.2010 20:35:03 +0200 - build 1699

1. A separate option for controlling of extra privileges use.

drkns 23.10.2010 00:21:14 +0200 - build 1698

1. At the following .BAT file launch:

@echo off
cls
echo 1
echo 2
echo 3

the first two items were not displayed.

drkns 21.10.2010 11:57:27 +0200 - build 1697

1. Symlink wipe led to damaged target file.

drkns 20.10.2010 11:42:42 +0200 - build 1696

1. Privileges elevation dialogs enabling/disabling is implemented in UI.

drkns 20.10.2010 10:45:45 +0200 - build 1695

1. Mantis#0001557: Incorrect displaying of symlink attributes

2. Incorrect displaying of attributes dialog when the element is a hardlink and a symbolic link at the same time.

drkns 15.10.2010 13:23:23 +0200 - build 1694

1. PluginInfo::DiskMenuNumbers -> PluginInfo::Reserved0.

drkns 15.10.2010 09:22:33 +0200 - build 1693

1. Correction of 1692.

drkns 14.10.2010 20:01:32 +0200 - build 1692

1. Experimental:
   - plugin hotkeys in drive selection menu are now set by user with F4, not by plugins.
   - hotkey can be a digit or any other Unicode character.

drkns 06.10.2010 19:59:59 +0200

1. ASLR.

drkns 03.10.2010 14:28:31 +0200 - build 1691

1. Correction of 1683.

drkns 03.10.2010 00:28:13 +0200 - build 1690

1. Error in processing of SetFilePointerEx "elevation-aware" version.

drkns 02.10.2010 23:36:23 +0200 - build 1689

1. Mantis#0001525: Copy folders with symbolic links (to other folders) inside

t-rex 01.10.2010 20:30:56 +0200 - build 1688

1. Mantis#1522: Excessive slash in panel caption.
   The bug has slightly another nature. Of course, we can process (delete) these slashes but this is pointless,
   and the bug is exactly about some of them have been deleted.

t-rex 01.10.2010 08:21:10 +0200 - build 1687

1. Mantis#1520: crash on cd %tmp%
   Heap corruption in PrepareDiskPath(). Ibid, slight optimization is done.

t-rex 01.10.2010 04:17:16 +0200 - build 1686

1. In case of "preloaded" plugin requiring newer FAR (GetMinFarVersion), a loading error message was shown twice.

chupakabra 30.09.2010 21:33:00 +0200 - build 1685

1. Fix for 1684

chupakabra 30.09.2010 21:16:00 +0200 - build 1684

1. Mantis#0001514: Incorrect ConvertPath(CPM_REAL, ...) functionality on DFS
   Simple processing of network paths is added to internalNtQueryGetFinalPathNameByHandle().

drkns 28.09.2010 13:47:00 +0200 - build 1683

1. Editor hotkey F4 which performs "exit", similar to viewer.

2. A couple of things regarding to elevation.

svs 27.09.2010 16:59:30 +0300 - build 1682

1. Mantis#0001512: auto-starting macros did not work

2. Macro: mmode(2) - returns information (macro area and flags) on starting conditions
   for "this" macro sequence (being executed).
   The lower byte of the return code is the macro area index from which the macro has started:

         0 - Other           -  Text copying mode from screen, vertical menus
         1 - Shell           -  File panels
         2 - Viewer          -  Inner viewer
         3 - Editor          -  Editor
         4 - Dialog          -  Dialogs
         5 - Search          -  Quick search in panels
         6 - Disks           -  Drive selection menu
         7 - MainMenu        -  Main menu
         8 - Menu            -  Other menus
         9 - Help            -  Help system
        10 - Info            -  Info panel
        11 - QView           -  Quick view panel
        12 - Tree            -  Folder tree panel
        13 - FindFolder      -  Folder search
        14 - UserMenu        -  User menu
        15 - AutoCompletion  -  AutoCompletion list
       255 - Common          -  Common area

    Other values are the start conditions flags (including some service flags)

       Start conditions:
         0x00000200 - do NOT pass keys to plugins while recording/playing a macro
         0x00000800 - the macro is started at FAR start
         0x00001000 - run if the command line is empty
         0x00002000 - run if the command line is not empty
         0x00004000 - run if selection is present in editor
         0x00008000 - run if no selection is present in editor
         0x00010000 - active:  run if selection is present
         0x00020000 - passive: run if selection is present
         0x00040000 - active:  run if no selection is present
         0x00080000 - passive: run if no selection is present
         0x00100000 - active:  run if there is a plugin panel
         0x00200000 - passive: run if there is a plugin panel
         0x00400000 - active:  run if there is a file panel
         0x00800000 - passive: run if there is a file panel
         0x01000000 - active:  run if current object is "file"
         0x02000000 - passive: run if current object is "file"
         0x04000000 - active:  run if current object is "directory"
         0x08000000 - passive: run if current object is "directory"

       Additional information:
         0x00000100 - suppress screen redraw while running the macro
         0x10000000 - multi-line text of the macro (REG_MULTI_SZ)
         0x40000000 - the macro must be saved when saving macros
         0x80000000 - the macro is switched off (macros marked with this flag are not run - neither from a keyboard, nor from eval())

       TODO: last 2 flags can be done without ReadOnly limitation

    Also, MACROFLAGS_MFLAGS values are rearranged, unused MFLAGS_REUSEMACRO is removed.

svs 23.09.2010 00:26:57 +0300 - build 1681

1. Mantis#0001508: Far crash when executing a macro on a slowly refreshing panel
   During the call of macro function Panel.SetPos(), panel.SetPath() and Panel.SetPosIdx() the macros
   are frozen until the functions are done: on "big" directories (like network ones, with large amount
   of file objects and/or slow channels) these functions can display messages about file/folder data
   collecting process, with the possibility of cancellation on Esc.

   TODO: Now the code is appended with snippets which remove screen lock before work (and set it back
         after execution) - see them between tags <Lock?> and </Lock?>.
         This decision lets "see" the very message about data collecting process.
         Here is an "obscurity" - are the snippets really needed?
         * if they are, then a situation takes place for the case when the message has appeared and
           user has cancelled the scanning... an unfinished transaction
         * if they are not, then we have a contrary situation - for the macro, user sees
           non-responding Far (until directory scanning is done)

drkns 21.09.2010 20:38:32 +0200

1. Another flaw in gcc headers.

warp 21.09.2010 00:30:00 +0100 build 1680

1. Some unnecessary stuff got into the wrapper. Returned.

warp 21.09.2010 00:15:00 +0100 build 1679

1. Experimental. The support of detection is added for BD-ROM (it was buggy), BD-RW, HDDVD, HDDVD-RW.

2. Removed function which did drive type detection based on removable media format. This was a sort of black magic.

drkns 18.09.2010 19:11:51 +0200 - build 1678

1. From svs:  on Mantis#0000928. "Modal" state in macros is also set in editor and viewer.

2. From svs: incorrect menu positioning on CtrlF12.

3. XLAT_USEKEYBLAYOUTNAME and XLAT_CONVERTALLCMDLINE flags are uncommented in plugin.hpp.

4. x64 warnings.

svs 17.09.2010 17:13:31 +0300 - build 1677

1. Mantis#0001502: Items selection in sorting modes menu (Ctrl-F12)
     #+# key switches to regular sorting.
     #-# key switches to reverse sorting.
     #*# key toggles the current sorting mode.

t-rex 17.09.2010 12:49:19 +0200 - build 1676

1. oldfar::DM_GETTEXT incorrect handling if oldfar::FarDialogItemData.PtrLength==0.
   This behavior has to be removed from 2.0 API.

drkns 17.09.2010 10:53:53 +0200 - build 1675

1. Error in files decryption logic when copying.

drkns 16.09.2010 20:12:34 +0200 - build 1674

1. A correction of 1511: the editor caption stays changed for Unicode plugins only.

svs 16.09.2010 17:50:23 +0300 - build 1673

1. Mantis#0001504: Provide an ability of emitting a sound dependent on a keyboard layout
   Functions (macro) are added:
	N=beep([N])
	  Here, the parameter is (like in WinAPI MessageBeep function):
		MB_ICONASTERISK = 0x00000040
			Asterisk sound
		MB_ICONEXCLAMATION = 0x00000030
			Exclamation sound
		MB_ICONHAND = 0x00000010
			Critical error sound
		MB_ICONQUESTION = 0x00000020
			Question sound
		MB_OK = 0x0
			Standard sound
		SIMPLE_BEEP = 0xffffffff
			Built-in speaker
	  Returned value is 1 or 0 (in case of failure)

	other bells and whistles to be done with plugins (after Mantis#0000466 "solution")

	N=kbdLayout([N])
	  Dealing with keyboard layouts
	  Parameter N:
		a) the value itself: 0x0409 or 0x0419 or...
		b) 1 - the next system one (round-robin)
		c) -1 - the previous system one (round-robin)
		d) 0 or unspecified - return the current layout.

	  Returned value is 0 in case of an error or the previous layout (the current one if N=0)
	  Errors: cannot define current layout name for the console or failed to get console window handle.

	  When non-existing layout is specified the function returns the current layout without an error.

	For example,
	  print(itoa(kbdLayout(0x421),16))
	    If Russian layout is the current one, the function returns 4190419
	  print(itoa(kbdLayout(),16))
	    If Russian layout is the current one, the function returns 4190419
	  print(itoa(kbdLayout(0x409),16))
	    If Russian layout is the current one, the function returns 4190419 and switches to English layout
	  print(itoa(kbdLayout(1),16))
	    If Russian layout is the current one, the function returns 4190419 and cycles to the next layout

2. Macro: $KbdSwitch macro command is removed
   <ACHTUNG>

     Replace $KbdSwitch with kbdLayout(1) in your macros

   </ACHTUNG>

3. Mantis#0001423 - Get menu item state
   More specific on Checked state.

   Now Menu.ItemStatus() function returns a mark character (U+XXXX) in the high word of the result
   If flag 0x2 is set and the high word is 0, then Far uses its own character (0x221A)
   If flag 0x2 is set and the high word isn't 0, then Far uses the mark character from the high word
   If flag 0x2 is NOT set and the high word isn't 0, this means nothing

chupakabra 14.09.2010 21:33:00 +0200 - build 1672

1. Mantis#0000840: Low-fragmentation Heap is on for CRT heap.

drkns 14.09.2010 09:58:33 +0200 - build 1671

1. Metacharacters !?$history$(!.!)?! were handled incorrectly.

drkns 13.09.2010 11:30:02 +0200 - build 1670

1. Correction of 1669 :)

drkns 13.09.2010 11:28:01 +0200 - build 1669

1. A line was lost in imports.cpp

warp 10.09.2010 23:39:00 +0300 - build 1668

1. Fix in ProcessName(PN_GENERATENAME), ProxyFTP must have been functional now with
   the use of a wrapper (the wrapper must have a corresponding version).

drkns 10.09.2010 19:45:44 +0200 - build 1667

1. Mantis#0001497: EditorControl (ECTL_GETBOOKMARKS) works incorrectly.

2. Mantis#0001498: Cursor is not hidden if the dialog is dragged beyond the screen borders.

drkns 09.09.2010 09:50:09 +0200 - build 1666

1. Mantis#0001495: Error in search (AltF7) in %PATH%.

chupakabra 05.09.2010 14:33:00 +0200 - build 1665

1. When PutFilesW()=1, the cursor is not set on directories.

chupakabra 02.09.2010 19:41:00 +0200 - build 1664

1. Rollback of 1661.

drkns 31.08.2010 12:40:01 +0200 - build 1663

1. setupapi.dll is ubiquitous, so we link it statically.
   Ibid: a few CM_* functions are replaced with recommended SetupDi* analogs.

2. Correction of lng.

zg 30.08.2010 01:25:01 +0200 - build 1662

1. A separate GUID is assigned to a move/rename dialog. Earlier, the copy dialog's GUID was used.

chupakabra 26.08.2010 22:54:00 +0200 - build 1661

1. GetFilesW is always called with a full path given.

chupakabra 26.08.2010 22:22:00 +0200 - build 1660

1. ACTL_PROGRESSNOTIFY - Far performs standard notification of operation completion (flashing button in taskbar).

drkns 26.08.2010 21:02:33 +0200 - build 1659

1. Correction of DN_GETDIALOGINFO.

2. Makeup in hotplug.cpp.

drkns 27.08.2010 09:50:32 +0200

1. Spanish translation (lng file) from Mauro72.

svs 26.08.2010 07:50:23 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
   PluginW.pas is updated.

zg 25.08.2010 12:12:25 +0200 - build 1658

1. GUIDs are assigned to the following dialogs:
   - r/o file rewrite query. The former GUID matched the regular rewrite dialog.
   - copy a file.
   - create a hard link.

svs 25.08.2010 12:40:09 +0300 - build 1657

1. Panel API: FCTL_GETPANELFORMAT and FCTL_GETPANELHOSTFILE are added.
   (Mantis#0001472: Add FCTL_GETPANELFORMAT, FCTL_GETPANELHOSTFILE)

svs 25.08.2010 11:17:55 +0300 - build 1656

1. Mantis#0001471: QuickView in plugin panel displays random info on folders
   Display of some folder properties is disabled for plugins (garbage was shown)

2. The first stage of FolderShortcuts reconstruction
    - Functions GetShortcutFolder() and SaveFolderShortcut() don't know what a "key" is.
    - RCtrl[Shift]-0..9 processing algorithm is moved out of FileList::ProcessKey()
      into Panel class as ExecShortcutFolder() and SaveShortcutFolder() functions.
    - GetShortcutFolderSize() function is removed.

zg 24.08.2010 20:38:59 +0200 - build 1655

1. GUIDs are assigned to the following dialogs:
   - open a file in editor.
   - save a file in editor.
   - create a folder.
   - set file attributes.

drkns 23.08.2010 19:54:28 +0200 - build 1654

1. Autocompletion also works for paths like %env%\foo.

drkns 22.08.2010 08:30:54 +0200 - build 1653

1. Virtual drives detection affects hard drives only.

svs 21.08.2010 23:18:55 +0300 - build 1652

1. Macro: an "exact string" term is added (like "verbatim string" in C#).
   Exact string has @ symbol at the beginning and surrounded with double quotes.
   Escape-sequences are not processed in it, which allows usage of such a string where
   the sequence is formed with the use of metacharacters, for example, in UserMenu.
   Example: replace all '\' to '/' in a path:
    print(replace(@"!\!.!", @"\", ""))
   In order to include double quote character into an "exact string", use the character twice:
     @"""Word!"" in double quotes."

svs 21.08.2010 11:00:41 +0300 - build 1651

1. Macro: mload() function did not work

zg 20.08.2010 18:10:13 +0200 - build 1650

1. Mantins#0001469: Processing of right arrow keystroke is broken in Editor Word Completion.

drkns 20.08.2010 15:08:21 +0200 - build 1649

1. Virtual drives can be detached at drive selection menu by pressing Del.

drkns 19.08.2010 23:07:06 +0200 - build 1648

1. Somebody implemented a tricky optimization: get the path of temporary folder at start, save it in a variable and use it further.
   As a result, redefinition of the path did not affect the app.

drkns 19.08.2010 20:21:57 +0200 - build 1647

1. Correction in 1646.

drkns 19.08.2010 19:36:20 +0200 - build 1646

1. Virtual hard drives (VHD) are recognized in drive change menu. Optional is VHD container name displaying.
   Windows 7/Windows Server 2008 R2 and higher is needed.

2. A few useless "IsProcessAssignMacroKey" and more triffles.

svs 19.08.2010 14:56:31 +0300 - build 1645

1. Macro: a function is added N=mload(S)
     it reads variable S from the registry (Vars area).
     return: 1 - the variable exists and is read successfully.
             0 - the variable does not exist; a new variable is not created;
                 if the variable existed in memory but was deleted from the registry, then the value in memory is not changed.
     the function works with REG_SZ, REG_MULTI_SZ, REG_DWORD and REG_QWORD keys.

svs 18.08.2010 22:31:22 +0300 - build 1644

1. Mantins#0001305: wish: Show some cols of Find window
   Columns configuration is located in "Find file advanced options" dialog ("Advanced" button in search window)
   Column types syntax is the same one as for panels.
   Differences and limitations are described at help page for "Find file advanced options" dialog.

   To be improved:
     1. Get the list prepare the output line (now the list is given a previously prepared line)
     2. after this, add 9 more view modes and remove the limitation on file name column ("always last")
     4. as a result, we can get dynamic switching of view modes with Ctrl-digit (as in panels)

2. Meanwhile, a bug was found - garbage was shown in "G" column for "..".

3. ViewSettingsToText() and TextToViewSettings() are not FileList class members anymore.

drkns 17.08.2010 20:15:03 +0200 - build 1643

1. "Move to the recycle bin" dialog: confirmation button is labeled "move" (was: "delete").

drkns 16.08.2010 18:27:26 +0200 - build 1642

1. Changes in OpenFilePlugin menu:
   - "Even if only one plugin found" depends on "Show standard association item";
   - separate setting for ShiftF1;
   - "standard association" item is not shown for ShiftF1.

drkns 09.08.2010 13:47:00 +0200 - build 1641

1. Mantis#0001459: a problem with Drag and Drop files

2. Correction in NTPath. Situations similar to M#0001458 must have been eliminated now.
   Also, paths like "C:\\\\\Dir1////Dir2" are ok.

3. Console redraw and querying at catalog scanning is done like anywhere else - each 200 ms, not after each 64 files.
   Ibid.: removed useless message at scanning cancel.

drkns 09.08.2010 12:27:32 +0200 - build 1640

1. Some code was left after debugging :)

drkns 07.08.2010 00:20:54 +0200 - build 1639

1. Mantis#0001455: Very long delay when cancelling copy to a network volume.

drkns 05.08.2010 23:30:53 +0200 - build 1638

1. Correction of 1633.2.

svs 05.08.2010 15:50:06 +0300 - build 1637

1. Mantis#0001451: Oddities with MCMD_CHECKMACRO
   Hang at start for an "empty" macro:
     "Sequence"="\"\""

drkns 05.08.2010 14:15:16 +0200 - build 1636

1. When < saving a file at the built-in editor | description file refreshing | local menu editing > alternative data streams are not lost.

2. Mantis#0001443: Inconvenient reaction to mouse click in a search window.

3. FindFirstFile -> FindFirstFileEx. In Windows 7/2008 R2, folder view speedup is possible.

svs 04.08.2010 11:45:04 +0300 - build 1635

1. Mantis#0001451: Oddities with MCMD_CHECKMACRO
   Additions to UserDefinedList.

yjh 31.07.2010 07:09:58 +0300 - build 1634

1. I don't know who's "fixed" BOOL to bool casting diagnostics after
   a ternary operation, but, as a result, both diagnostics has been left and
   the resulting construction has been malfunctional.

drkns 30.07.2010 23:47:23 +0200 - build 1633

1. When copying directories, their alternative data streams are preserved now.

2. Eliminated the logic "if we are copying a directory and a filter is on
  and no files match the filter, then we don't need that empty directory".

t-rex 30.07.2010 21:27:16 +0200 - build 1632

1. From Max Moysyuk: additional edition for Mantis#1419: Very slow switching to local disk (AltF1/AltF2).

2. GCC warnings.

drkns 29.07.2010 21:09:20 +0200 - build 1631

1. Mantis#0001443: Inconvenient reaction to mouse click in a search window.

2. Mantis#0001449: Drive change error message does not fit into a console.

3. "Go to", "View" and "Panel" buttons in search dialog get blocked if nothing is found.

4. "Filter" button in copy and search dialogs get blocked if "[ ] Use filter" option is off.

drkns 28.07.2010 10:00:00 +0200 - build 1630

1. Changes in usermenu.
   - in order to be considered as a divider, an item must be assigned the "--" hotkey and any label.
   - "-" hotkey is functional now.

2. The number of exclamations!!!111 in language files is slightly reduced.

drkns 27.07.2010 17:44:36 +0200 - build 1629

1. Mantis#0001447: Freeze when positioning to a file after search

svs 27.07.2010 14:18:55 +0300 - build 1628

1. Mantis#0001446: Date() returns 0

drkns 26.07.2010 21:21:04 +0200 - build 1627

1. Symbolic links creation from restricted account was broken in 64-bit OS.

drkns 26.07.2010 13:33:33 +0200 - build 1626

1. Command line autocompletion is not invoked anymore when CtrE/CtrlX/Up/Down/MsWheelUp/MsWheelDown is pressed.

2. Mantis#0001443: Inconvenient reaction to mouse click in search window.

drkns 21.07.2010 16:41:47 +0200 - build 1625

1. Mantis#0001438: Far 2.0.1624: Changes in editor behavior in comparison with 1623 (and before).

drkns 20.07.2010 22:08:47 +0200 - build 1624

1. Mantis#0001437: Far 2.0.1623: Example of editor behavior change.

2. Correction of 1609.2: CF_HDROP is used for "standard" CtrlIns only, <CtrlShift|CtrlAlt|AltShift>Ins keys just copy text.

drkns 20.07.2010 01:21:33 +0200 - build 1623

1. A Stunning Generosity Show: ECTL_GETSTRING cyclic call is sped up dramatically,
   so ECTL_SETPOSITION + ECTL_GETSTRING(-1) trick is no longer needed.

t-rex 16.07.2010 20:13:36 +0200 - build 1622.

1. "Show total copy progress indicator" on by default.

svs 16.07.2010 10:03:22 +0300 - build 1621

1. The "ACHTUNG"s have started at macros (see comments on 1454 and 1455).

   * $Date command is removed
       replace it with print(Date(blablabla_or_nothing))

   * $MMode command is removed
       replace it with mmode(1,2)

   * IClip state is removed
       replace it with clip(5,-1) (notice that clip() returns 1 or 2)

   * $IClip command is removed
       replace it with clip(5,0) or just clip(5)

   * DisableOutput state is removed (not the macro flag!)
       replace it with mmode(1,-1) function call

drkns 15.07.2010 13:47:00 +0200 - build 1620

1. Settings shake-up:
   "Plugin selection" dialog has grown into "Plugins manager", "Path for
   personal plugins" has also moved there and a couple of new options is added:
   "OEM plugins support" - old plugins on/off global switching;
   "Scan symbolic links" - load or don't load plugins at symbolic links.

2. Specification of 1616.1.

drkns 15.07.2010 10:00:00 +0200 - build 1619

1. x64.

drkns 15.07.2010 10:00:00 +0200 - build 1618

1. ScreenBuf::MoveCursor() is optimized slightly.

drkns 14.07.2010 18:04:04 +0200 - build 1617

1. Specification of console block read/write algorithm.

drkns 12.07.2010 19:38:29 +0200 - build 1616

1. Drive selection error dialog functionality is extended, it is possible now
   to select another drive without leaving the dialog.

t-rex 12.07.2010 10:45:46 +0200 - build 1615

1. Mantis#1432: gcc build problems.

svs 12.07.2010 10:44:28 +0300 - build 1614

1. Mantis#0001412: F1 when viewing *.hlf

drkns 09.07.2010 13:04:33 +0200 - build 1613

1. "faradminmode" variable was inherited from parent process.

t-rex 08.07.2010 20:10:14 +0200 - build 1612

1. Fix of 1607 (http://forum.farmanager.com/viewtopic.php?p=65440#p65440).

t-rex 08.07.2010 19:29:44 +0200 - build 1611

1. And once more, Mantis#1429: Incorrect work after launch as "... | far.exe /v -"
   apiCreateFile() adds flags (perhaps this has to be removed as it is not clear at all?),
   and CONIN$ can be opened with some special flags only.

drkns 06.07.2010 16:47:23 +0200 - build 1610

1. More of 1609: CF_HDROP buffer content can be pasted in editor/text fields as a text.

drkns 06.07.2010 13:55:22 +0200 - build 1609

1. A couple of bugs at attributes setup.

2. Experimental: file names are copied from panel into clipboard in additional CF_HDROP format,
   which allows "paste" the files from clipboard to other applications (Explorer etc.).
   Reverse operation (copy "there" and paste "here") is not supported so far, buf everything's possible.

t-rex 08.07.2010 00:34:21 +0200 - build 1608

1. From Max Moysyuk: Mantis#1419: Very slow switching to local disk (AltF1/AltF2)

t-rex 08.07.2010 00:12:29 +0200 - build 1607

1. Mantis#1428: Crash when FCTL_SETNUMERICSORT is set.

drkns 06.07.2010 22:36:48 +0200 - build 1606

1. CD drive was opened with read/write access at drive type detection, for some reason.

svs 06.07.2010 18:00:12 +0300 - build 1605

1. Mantis#0000986: Far 2 API - pascal
   FarColorW.pas, FarKeysW.pas and PluginW.pas are updated.

2. Mantis#0000968: waitkey() skips AltIns

drkns 05.07.2010 11:00:00 +0200 - build 1604

1. Another "type" of symbolic links is available at link creation dialog,
   with no explicit notation whether it is a file or a directory.
   The necessary option is chosen automatically according to the attributes of
   referred object.

2  FLINK_SYMLINK flag is available in FSF.MkLink, it enables automatic
   selection of symbolic link type.

drkns 02.07.2010 16:17:18 +0200 - build 1603

1. Mantis#0001425: a bug at files highlighting settings reset

t-rex 02.07.2010 15:20:09 +0200 - build 1602

1. "far /v -" was broken again.

svs 02.07.2010 11:22:10 +0300 - build 1601

1. Mantis#0000926: Eval() sets DisableOutput=1
  KeyMacro::GetCurRecord() function returned wrong data (library code was taken instead of data from working macro)

2. Mantis#0001423: Check the state of menu item
  N=Menu.ItemStatus([N]);

  Return the state of N-th menu item (N is 1-based), or current item if N==0 or unspecified.

  It works in absolute menu items space (not taking filters and other hiding mechanisms into consideration)

  The set of returned flags:
  0x00000001 - Selected
  0x00000002 - Checked
  0x00000004 - Separator
  0x00000008 - Disabled
  0x00000010 - Grayed
  0x00000020 - Hidden (by filter)

  0xFFFFFFFF - nonexistent/error (N is out of range)

  TODO (after Mantis#0001422 implementation):
  0x00000040 - Hotkey is present
  0x00000080 - Hotkey is manually specified by user

drkns 01.07.2010 22:20:00 +0200 - build 1600

1. Mantis#0001420: Far Manager does not disable windows hibernate during copy(move).

t-rex 30.06.2010 21:21:26 +0200 - build 1599

1. Another CacheRead shake-up (hope it's the last one),
  this fixed a lot of different mystic viewer large files search bugs in last builds.

svs 29.06.2010 15:01:56 +0300 - build 1598

1. Mantis#0001416: waitkey(0,0) does not respond to mouse clicks with modifiers

2. Macro: parsing error at functions with optional elements.
  "...spotted a msgbox(menu.value,gethotkey()) macro malfunction, menu.value returns nothing in such a combination..."
  (perhaps a specification is needed)

t-rex 27.06.2010 13:43:59 +0200 - build 1597

1. Viewer search didn't work on large files in common.

2. GCC warning.

t-rex 26.06.2010 21:03:19 +0200 - build 1596

1. Grey+/- in viewer lead to unexpected result.

drkns 26.06.2010 16:28:50 +0200 - build 1595

1. Launch from external view/edit commands history didn't work.
  It had been malfunctional for about 5 years already.

chupakabra 24.06.2010 14:34:00 +0200 - build 1594

1. Forcing displaying of first processed file name at attributes setting
  (if not, an empty field is displayed when Compressed is set for a big file).

drkns 16.06.2010 13:47:00 +0200 - build 1593

1. After 1583, viewer was slow on network files.

2. Taskbar button flashes 5 times, not endlessly.

drkns 16.06.2010 11:21:12 +0200 - build 1592

1. Faster File::Eof() implementation.

2. A few bool's.

drkns 16.06.2010 18:56:32 +0200 - build 1591

1. Mantis#0001409: Crash at folder deletion.

2. A bug in help.

t-rex 15.06.2010 00:05:09 +0200 - build 1590

1. Custom data sorting is added to CtrlF12 menu .

t-rex 14.06.2010 00:56:58 +0200 - build 1589

1. Mantis#1405: C:\>cls stays on screen after issuing “cls”.

t-rex 12.06.2010 19:14:06 +0200 - build 1588

1. Experimental, unofficial and buggy, just to take a look, play and think:
  support for custom column (C0), filled by plugins, in non-plugin file panels
int WINAPI GetCustomDataW(const wchar_t *FilePath, wchar_t **CustomData)
void WINAPI FreeCustomDataW(wchar_t *CustomData)
  if multiple plugins return custom data for the same file, then "Plugin1 Plugin2 Plugin3" is shown.

2. A language file error was shown when panel modes editing dialog was opened.

drkns 12.06.2010 08:58:26 +0200 - build 1587

1. And once more.

drkns 12.06.2010 08:43:29 +0200 - build 1586

1. Fix of 1584.2.

t-rex 11.06.2010 18:16:03 +0200 - build 1585

1. Same as 1584.1 but for plugin panel refresh.

drkns 11.06.2010 13:47:00 +0200 - build 1584

1. There was no filter activity check at panel refresh. With the check, now it's much faster.

2. Some makeup.

drkns 09.06.2010 11:17:22 +0200 - build 1583

1. Getting the viewer rid of FILE*.
  Privileges elevation must be functional now.
  View of \\.\physicaldrive0, \\.\cdrom0 etc. is temporarily broken.

t-rex 08.06.2010 22:44:13 +0200 - build 1582

1. Same fix as in 1579.2 but for VBlock2Text().

drkns 07.06.2010 21:07:35 +0200 - build 1581

1. FARUSER variable could be set even without /u key (it was inherited from parent process).

yjh 07.06.2010 15:41:36 +0300 - build 1580

1. QuotedSymbols list is appended with oem(0xFF) ("soft-space") - this is required by standard console tools (copy/move/etc)

drkns 06.06.2010 22:01:56 +0200 - build 1579

1. Specification of ACTL_GETFARRECT function.

2. CtrlX at empty line added garbage to clipboard.

drkns 01.06.2010 14:12:22 +0200 - build 1578

1. “!=\” metacharacter quoted strings for some purpose.

drkns 31.05.2010 22:40:13 +0200 - build 1577

1. “ARRAYSIZE” macro instead of “countof”.
  Rationale: ARRAYSIZE is for arrays only, an attempt of placing a pointer there results in compilation error (not runtime error, as in case of sizeof/sizeof).

drkns 29.05.2010 13:08:42 +0200 - build 1576

1. Panels were not redrawn after ShiftEnter on a folder.

2. Specifications of 256- and 16-color variants of far.ico.

drkns 29.05.2010 12:14:02 +0200 - build 1575

1. Another couple of minorities of the same subject.

drkns 28.05.2010 23:47:51 +0200 - build 1574

1. More on launcher and redraw.

2. Specification of 1564.2 - take into account that functions called by legacy plugins can be nested.

3. When resizing FAR window in "/w" mode, console content is not erased.
  This is an experimental feature, tiny artifacts are possible etc.

drkns 25.05.2010 19:57:53 +0200 - build 1573

1. ACTL_GETFARRECT - "correct" way of obtaining the coordinates of FAR "window" in console buffer;
  ACTL_GETCURSORPOS - getting cursor coordinates regarding to FAR "window";
ACTL_SETCURSORPOS - setting cursor coordinates regarding to FAR "window".

drkns 25.05.2010 07:37:52 +0200 - build 1572

1. Continuation of 1568.

drkns 24.05.2010 22:45:41 +0200 - build 1571

1. Mantis#0001393: Screen artifacts on application launch using a macro

drkns 24.05.2010 22:34:42 +0200 - build 1570

1. Continuation of 1568.

t-rex 24.05.2010 09:19:39 +0200 - build 1569

1. from Konstantin Stupnik: Mantis#1388: Regular expressions: incorrect value in group.

drkns 23.05.2010 23:23:23 +0200 - build 1568

1. After 1564-1566, hidden problems with drawing in launcher were revealed.

drkns 23.05.2010 14:08:39 +0200 - build 1567

1. Mantis#0001389: Crash if WindowMode=0 and ScreenBufferSize.Height=9999
  In theory, far must work now at any buffer size.

drkns 22.05.2010 22:45:48 +0200 - build 1566

1. And some more.

drkns 22.05.2010 22:16:38 +0200 - build 1565

1. Specifications of previous build.

drkns 22.05.2010 20:00:00 +0200 - build 1564

1. Encapsulation of all used console functions.
  As a consequence, the following long awaited feature has become possible: Far can work in console window (not buffer) bounds.
  Set large buffer height and meditate over long console outputs. CtrlAlt scroll to corresponding direction.

   ACHTUNG! - this mode is guaranteed to break plugins which draw something in console directly or suppose naively that Far size is available via CONSOLE_SCREEN_BUFFER_INFO::dwSize.

2. SetFileApisToANSI() is called after non-unicode plugins finish work.

t-rex 21.05.2010 18:25:32 +0200 - build 1563

1. Mantis#1387: Freeze when processing User Menu at filename containing &.

2. HiStrLen() incorrect work.

t-rex 20.05.2010 20:32:18 +0200

1. Mantis#1386: gcc compilation error (incorrect case in header file name).

t-rex 19.05.2010 23:06:06 +0200 - build 1562

1. PluginDialogBuilder for AddEditField() now requires output buffer size (in characters).

drkns 19.05.2010 20:09:11 +0200 - build 1561

1. Mantis#0001384: Dim space character a little in Show Whitespace mode.

t-rex 19.05.2010 18:53:42 +0200 - build 1560

1. GetSize() in UnicodeString for obtaining of inner buffer size.

2. Optimization of ReplaceStrings().

3. Deleted some junk.

t-rex 19.05.2010 15:57:31 +0200 - build 1559

1. Forum: http://forum.farmanager.com/viewtopic.php?p=63127#p63127
  Crash in history, heap corruption in ReplaceStrings().

drkns 19.05.2010 12:50:22 +0200 - build 1558

1. Specification of environment refreshing.

drkns 17.05.2010 20:06:14 +0200 - build 1557

1. Specification of WM_SETTINGCHANGE processing.

drkns 15.05.2010 22:26:55 +0200 - build 1556

1. Excessive activity in taskbar when copying with [x] Show total copy progress indicator.

t-rex 15.05.2010 16:10:31 +0200 - build 1555

1. from Alexander Kornienko: Mantis#1383: Additions to Mantis#1224 (VBlock2Text)

t-rex 14.05.2010 16:56:29 +0200 - build 1554

1. from Alexander Kornienko: Mantis#1224: copying big block of binary data causes big mem/cpu usage and heap thrashing.
  Same fix is needed in VBlock2Text().

2. Potential memory leak in Block2Text() and VBlock2Text().

svs 14.05.2010 16:13:05 +0300 - build 1553

1. Macro: S=Menu.GetValue([N]) function is added, which returns menu item text for given position (menu position is not changed).
  If N is not specified or equals to 0 then the action is similar to Menu.Value application
  For non-existing menu item, an empty string is returned.

zg 14.05.2010 02:18:32 +0200 - build 1552

1. after 1444, Param1 <> SendDlgMessage(DM_GETFOCUS) in DN_GOTFOCUS.

2. at experiment, DN_GOTFOCUS is got after selection set for elements DIF_SELECTONENTRY flag.

3. gcc warning.

drkns 14.05.2010 01:55:38 +0200 - build 1551

1. Mantis#0001380: problem with value setting in hours/minutes field in Filters -> Date/Time -> Relative

drkns 14.05.2010 00:07:38 +0200 - build 1550

1. Excessive activity in taskbar when descriptions displaying is on.

drkns 13.05.2010 17:33:18 +0200 - build 1549

1. Specification of previous build.

drkns 13.05.2010 15:47:47 +0200 - build 1548

1. Now we've got a window messages processing loop.
  As a consequence, the following magic is available:
  - disk menu and hotplug devices list auto update when usb, cd/dvd etc. are added/removed;
  - environment variables auto update after change in OS settings.

svs 13.05.2010 16:03:14 +0300 - build 1547

1. + CPM_NATIVE for FSF.ConvertPath()
  Return: full path with "\\?\" prefix
  (from drkns)

drkns 13.05.2010 00:21:42 +0200 - build 1546

1. Event class: a wrapper on HANDLE/Event/WaitForSingleObject.

drkns 11.05.2010 22:53:26 +0200 - build 1545

1. From Anton Sinitsin: "Ё" in FarRus.lng.

2. Documentation and build specifications.

drkns 11.05.2010 15:25:32 +0200 - build 1544

1. Errors in vertical text drawing and dialog size calculation.

svs 11.05.2010 15:05:18 +0300 - build 1543

1. Minor specifications on menu hotkeys...
  In addition to Upper/Lower, keyboard layout analysis is added (KeyToKeyLayout() call)

svs 11.05.2010 09:59:58 +0300 - build 1542

1. Macro: Contents

[A|P]Panel.HostFile, [A|P]Panel.Prefix, [A|P]Panel.Path0, [A|P]Panel.Path,
[A|P]Panel.UNCPath, [A|P]Panel.Current, Editor.SelValue, Editor.Value, Help.FileName,
Help.Topic, Help.SelTopic, Viewer.FileName

  forced cast to "string", which lets to avoid the situation when 0 is returned for empty content.

svs 07.05.2010 16:24:45 +0300 - build 1541

1. Help. From "Alexey Samlyukov"

2. "@ElevationDlg" is added. this is a stub so far, to prevent error messages

drkns 06.05.2010 22:21:32 +0200 - build 1540

1. Milliseconds were not diaplayed in filters by relative time.

2. Forum: "Something strange has appeared at build 1539: a piece of frame remains in the corner after Ctrl-O".

drkns 05.05.2010 23:16:12 +0200 - build 1539

1. Specification of 1536: for example, when issuing "macro:post F7", indicator disappeared only after any key press.

drkns 04.05.2010 23:42:49 +0200 - build 1538

1. Privileges elevation didn't work in symlinks editing.

2. Assembler listing generation is off for VC build by default. It is controlled by ASM_LISTING make flag.

t-rex 04.05.2010 13:53:24 +0200 - build 1537

1. Somewhere in last builds, descriptions started to add '\0' before carriage return which caused different problems with 3rd party description-aware programs.

drkns 03.05.2010 12:45:16 +0200 - build 1536

1. Problems with Mantis#1362: that "macro execution indication" caused regular screen refreshes.
  Also, 'P' is now green :)

t-rex 02.05.2010 21:46:41 +0200 - build 15351. Mantis#1288: Slow processing of network folders in owners view mode.

drkns 02.05.2010 19:13:38 +0200 - build 1534

1. Size correction for DIF_CENTERGROUP

2. Another couple of improvements of 1530.2.

3. Mantis#0001356: “Copying” stays in caption after copying finish

drkns 30.04.2010 17:14:30 +0200 - build 1533

1. Another couple of specifications in 1530.2.

svs 30.04.2010 13:20:57 +0300 - build 1532

1. Mantis#0001362: Macro running indication in screen corner ('P').

drkns 30.04.2010 11:09:22 +0200 - build 1531

2. Specification of 1530.2: DIF_DEFAULT and DIF_FOCUS are used in initialization (DialogDataEx), and elements (DialogItemEx) still use DefaultButton and Focus.

drkns 30.04.2010 01:01:01 +0200 - build 1530

1. The color of default button can be set up.

2. As a preparation to API breakup: DefaultButton field in dialog structures is now changed to DIF_DEFAULT, Focus is changed to DIF_FOCUS.
  This is related to internals only, plugins are not affected yet.

drkns 29.04.2010 11:38:38 +0200 - build 1529

1. Bringing back empty description files deletion.

2. Flag FMSG_DOWN has gone.

3. Makeup in lng.

svs 29.04.2010 09:55:53 +0300 - build 1528

1. Macro: eval function is provided with capability of programmatical call of macro bound to a hotkey.
http://forum.farmanager.com/viewtopic.php?f=15&t=5257

  To do this, one must:
  a) set the second parameter of the function to 2
  b) set the first parameter to a string of "Area/Key" format
  Here:
  "Area" is the area which we want to call macro from;
  "/" is a delimiter;
  "Key" is the name of the key.
  "Area/" can be omitted, in this case "Key" is searched in current active macro area,
  and if "Key" is not found, then the search is continued in Common area.
  To switch off the search in Common area (limit it with "this" area only),
  one must pass the dot character as "Area".

  In mode 2 the function returns
  -1 - error
  -2 - no macro on hotkey (or the macro is blocked)
  0 - Ok

  Examples.
  eval("Shell/CtrlP",2) - call a macro assigned to CtrlP in Shell area
  eval("CtrlP",2) - call a macro assigned to CtrlP in current macro area or in Common area if CtrlP is not found in current macro area
 eval("./CtrlP",2) - call a macro assigned to CtrlP in current macro area only
 eval("Shell/Alt/",2) - call a macro assigned to Alt/ in Shell area
 eval("Alt/",2) - call a macro assigned to Alt/ in current macro area or Common if Alt/ is not found in current macro area
 eval("./Alt/",2) - call a macro assigned to Alt/in current macro area only

drkns 28.04.2010 00:42:17 +0200 - build 1527

1. For the sake of uniformity, now Message() always reserves space for message text even the text is absent.

drkns 27.04.2010 19:51:09 +0200 - build 1526

1. Another couple of triffles.

drkns 27.04.2010 16:47:00 +0200 - build 1525

1. More on FindFiles again.

chupakabra 27.04.2010 16:32:00 +0200

1. makefile_vc: Platform=x64 for VS2010.

drkns 27.04.2010 15:47:00 +0200 - build 1524

1. Yet another specification of Message().

2. Changes in DIZ files writing.

3. More on FindFiles.

drkns 26.04.2010 15:47:00 +0200 - build 1523

1. Specification of dialogs size for Message() function.

2. BOM codepage autodetection didn't work if the file contained nothing except BOM.

drkns 26.04.2010 00:14:16 +0200 - build 1522

1. As an expansion of Mantis#0001096 - space symbols cutting is removed from another pair of places.

t-rex 25.04.2010 22:48:55 +0200 - build 1521

1. Mantis#1316: Erroneous copying of vertical blocks into clipboard.
  Another inner refactoring of work with clipboard, usual functions are appended with a class, places where sequential clipboard operations are applied need to be rewritten with this class to make things in one transaction.

drkns 25.04.2010 22:38:17 +0200 - build 1520

1. Specification of previous build.

drkns 25.04.2010 19:55:48 +0200 - build 1519

1. Continuing 953 and 972. Search is reworked. Part three, a global one.

2. Mantis#0001213: Incorrect console caption in file search dialog.

3. Mantis#0001353: Privileges elevation dialog is hidden behind the search window.

4. A new flag is available for DI_BUTTON: DIF_SETSHIELD, analogous to BCM_SETSHIELD.

5. Mantis#0000315: Default buttons highlighting in dialogs.

6. Mantis#0000647: Button styles in the dialogs.

7. Mantis#0001217: !@! metacharacter doesn't work.

8. Some triffles in privileges elevation system.

drkns 22.04.2010 21:11:09 +0200 - build 1518

1. Specification of 1517.5: conversion error warning was displayed even when there was no need in it.

2. Privilege elevation requests are separated logically into "read requests" and "modification requests" and can be switched on/off separately.
  There's no interface so far, the registry only.

drkns 21.04.2010 14:47:00 +0200 - build 1517

1. Mantis#0001347: Remove dot in autocompletion.
  Items "." and ".." which are returned by FindFile sometimes are now thrown away at FindFile class level, not in a lot of different places.
  Code which uses FindFile must NOT assume these items presence and fight with them.

2. A portion of warnings from VS2010 static analyzer.

3. When creating folders like \1\2\3\4 the attempts were taken to create each item even if it had existed already.

4. File search doesn't restore last access time.

5. If text conversion errors took place while loading a file into the editor or while codepage switching, then an additional confirmation is requested on saving, + the messages are more verbose now.

svs 21.04.2010 10:18:10 +0300 - build 1516

1. Specification of build 1515 - one char prefixes are ignored

svs 21.04.2010 09:34:16 +0300 - build 1515

1. Mantis#0001338: Prefix in command line parameters (described in help)
from Maximus

t-rex 20.04.2010 23:56:06 +0200 - build 1514

1. MinGW GCC 4.5.0 support.

2. GCC warnings.

3. Some makeup.

drkns 20.04.2010 00:33:57 +0200 - build 1513

1. Specification of previous build.

drkns 19.04.2010 16:39:34 +0200 - build 1512

1. Fix of 1371.2.

2. Milliseconds are available in filters.

svs 19.04.2010 15:51:19 +0300 - build 1511

1. Mantis#0001334: Let plugin change editor caption "forever"
  Now the editor's header set by plugin  (in status line, with ECTL_SETTITLE) isn't reset automatically
  after plugin stop its work (invoked with F11).
  Now plugins have to take care of editor's caption restoration by themselves (Info.EditorControl(ECTL_SETTITLE,NULL)).

drkns 19.04.2010 10:50:21 +0200 - build 1510

1. Next portion of apiCreateFile/ReadFile/WriteFile/etc. replacement with more intelligent classes. As a consequence, privileges elevation request seems to be fixed in several other operations.

2. When editing the user menu AltF4 wrote excessive byte order marks into temp file (one per each submenu instead one per file).

drkns 17.04.2010 11:44:42 +0200 - build 1509

1. Mantis#0001348: Folder locking by a FAR process after privileges elevation.

drkns 17.04.2010 00:57:46 +0200 - build 1508

1. The editor is cleaned from libc's remains and, as a consequence, it can request file opening/saving privileges.

2. Changes of the same sort in user menu and descriptions.

svs 15.04.2010 14:34:28 +0300 - build 1507

1. Mantis#0001346: Macros assigned to "`" and similar ones work with errors

drkns 15.04.2010 11:34:38 +0200 - build 1506

1. In 1494, system copy feature with "[ ] Copy files opened for writing" was broken.

drkns 15.04.2010 11:05:12 +0200 - build 1505

1. Specification of previous build.

drkns 15.04.2010 10:55:21 +0200 - build 1504

1. If user has administrator rights already, we proceed without additional process launch.

svs 13.04.2010 23:15:33 +0300 - build 1503

1. Macro: bug - crash on [A|P]Panel.HostFile call for non-plugin panel.

svs 13.04.2010 14:48:25 +0300 - build 1502

1. Mantis#0001344: Crash on help links follow
  size_t rules :-(
  This fix removes the crash only.
  To "fix the errors" in help the parser has to be edited (which goes beyond the limits of this fix)

t-rex 13.04.2010 00:04:24 +0200 - build 1501

1. StrLength(string) -> string.GetLength() in a couple of places.

drkns 12.04.2010 22:54:07 +0200 - build 1500

1. More informative messages on necessary privilege elevation.

svs 12.04.2010 17:53:57 +0300 - build 1499

1. The help froze on files with no empty line between sections   (for example, "Regular Expression Search and Replace, version 7.04")

drkns 12.04.2010 16:46:32 +0200 - build 1498

1. Miscellaneous trivia on privileges elevation.

2. CtrlEnd function in dialogs and command line is unified: round-robin items selection is borrowed from command line, selection of appended characters is taken from dialogs.

svs 12.04.2010 12:38:45 +0300 - build 1497

1. Bug: [A|P]Panel.path0 doesn't return a path
http://forum.farmanager.com/viewtopic.php?p=61218#p61218

svs 12.04.2010 11:38:27 +0300 - build 1496

1. Mantis#0000830: Incorrect movement calculation in Viewer::Up() function for UTF-8

chupakabra 11.04.2010 23:20:00 +0200 - build 1495

1. A focus moving error is fixed, which appeared in 1444.

drkns 11.04.2010 02:23:13 +0200 - build 1494

1. Privileges elevation:
  - the query happens only if it's needed (the access is denied via ACL), not for every ERROR_ACCESS_DENIED.
  - file time and “compressed” and “sparse”attributes changing.
  - content search.
  - theoretically, own copy implementation must also work ("[ ] Use system copy routine"). It hasn't been tested thoroughly, be careful.

2. Some API functions (CreateFile/ReadFile/WriteFile/...) are grouped logically into a separate class (File), it is preferable to use it further.

3. CtrlEnd did not function in dialogs when autocompletion was off.

svs 09.04.2010 16:32:01 +0300 - build 1493

1. Macro: [A|P]Panel.Path0 - path on real FS (before calling of plugins, which create their own panel)
  The states are similar [A|P]Panel.Path, but they contain the path on real FS.
  If real FS is on the panel, then
[A|P]Panel.Path == [A|P]Panel.Path0
  If this is a plugin's panel, then
[A|P]Panel.Path != [A|P]Panel.Path0

svs 09.04.2010 09:38:19 +0300 - build 1492

1. Printing module is broken - current folder was not taken into account.

drkns 08.04.2010 15:30:25 +0200 - build 1491

1. Mantis#0001337: Error when reading catalog content.

2. Incorrect owner was displayed for ".." element in panels.

svs 08.04.2010 11:01:14 +0300 - build 1490

1. Mantis#0000884: Help text is torn when the line is longer than 300 characters.
  Help is refactored into a strings array (TArray)
  Some black magic in TArray regards to sorting.
  Removing junk from help code.

drkns 08.04.2010 00:39:10 +0200 - build 1489

1. Mantis#0001336: Error message when opening a catalog.

drkns 07.04.2010 14:04:32 +0200 - build 1488

1. Specification of 1483.

svs 07.04.2010 13:10:41 +0300 - build 1487

1. Mantis#0001335: Incorrect text resource usage

2. Mantis#0001331: Macro function for status line manipulation

drkns 07.04.2010 11:46:46 +0200 - build 1486

1. Prohibition of path conversion in some apiGetFindDataEx calls seems to be deprecated, so it is removed.

drkns 06.04.2010 20:02:46 +0200 - build 1485

1. Specification of 1483.

svs 06.04.2010 13:41:39 +0300 - build 1484

1. Macro: new function "N=Editor.SetTitle([Title])" sets caption in editor status bar
  It returns 1 - success, 0 - editor is not in focus.
  If the parameter is missing or equals to empty string, then the previous status line value is restored

drkns 06.04.2010 10:35:35 +0200 - build 1483

1. Continuing 1468:
  The following actions can be done with admin privileges:
  - catalog view;
  - getting the attributes;
  - setting the owner.

svs 05.04.2010 18:18:38 +0300 - build 1482

1. Specification of Mantis#0001323

2. Macro: [A|P]Panel.path for plugin panel
http://forum.farmanager.com/viewtopic.php?f=15&t=5254

3. Macro: [A|P]Panel.Prefix - returns none or prefix like plugins do

4. Macro: [A|P]Panel.UNCPath returns (for plugin panel) prefix:[hostfile/]path

garry 03.04.2010 22:44:32 +0300 - build 1481

1. After 1456, the output of codepages for ANSI plugins was broken (for example, FTP).

drkns 03.04.2010 19:30:12 +0200 - build 1480

1. 1479.2: As it proved to be, gcc doesn't support forward enum declaration.

drkns 03.04.2010 11:23:56 +0200 - build 1479

1. And once again, Mantis#0001321: DM_MOVEDIALOG: limited range of dialog moving.

2. Makeup in adminmode.?pp

svs 03.04.2010 11:45:44 +0300 - build 1478

1. Mantis#0000098: wrong messages when trying to create folder/file with prohibited symbols

zg 03.04.2010 02:26:08 +0200 - build 1477

1. Mantis#0001329: Forward search with template = $.

zg 02.04.2010 11:42:58 +0200 - build 1476

1. in connection with 1219, Ctrl-Shift-Numpad5 in panels is replaced with Ctrl-Alt-Numpad5.

svs 02.04.2010 10:29:40 +0300 - build 1475

1. Mantis#0001323: gethotkey(0) returns next symbol ("4" instead of "3", "y" instead of "x")

drkns 01.04.2010 20:00:00 +0200 - build 1474

1. Mantis#0001321: DM_MOVEDIALOG: limited range of dialog moving.
  For relative moving, the coordinates which are equal to -1 do not center the dialog anymore.

2. More compact search dialog items placement.

drkns 01.04.2010 13:47:00 +0200 - build 1473

1. Specification of 1472.2: distinguish symlink and junction;

2. The creation of hard links can be done with admin privileges.

svs 01.04.2010 12:56:20 +0300 - build 1472

1. Mantis#0001265: Buffer size and panel caption bug
  Specification of #2 ("When the console width is odd, the header of right panel is displayed incorrectly (at the left panel)")

2. Mantis#0001327: Found links are displayed as folders in search window

zg 01.04.2010 03:12:18 +0200 - build 1471

1. Mantis#0001322: Search and replace in editor skips empty lines.

drkns 31.03.2010 21:52:05 +0200 - build 1470

1. Specification of 1468 - GetLastError() results could be lost.

drkns 31.03.2010 16:29:11 +0200 - build 1469

1. Mantis#0001315: Links are shown as folders in tmp-panel.

2. Mantis#0001321: DM_MOVEDIALOG: dialog limited moving range.

drkns 31.03.2010 15:24:32 +0200 - build 1468

1. 1466 is continued:
  - deleting to recycle bin can be done with admin privileges;
  - progress bar, Cancel, etc. work while copying.

t-rex 31.03.2010 01:05:50 +0200 - build 1467

1. Date fields in filter settings dialog switched their places to be more intuitive,
  until we create more comprehensible design of the dialog.

drkns 30.03.2010 15:44:02 +0200 - build 1466

1. 1465 is continued:
  The following operations can be done with admin privileges:
  - files moving;
  - files copying;
  - reparse points copying/editing.

drkns 30.03.2010 00:44:57 +0200 - build 1465

1. Basic support for privileges elevation when working under limited account.

The following operations can be done with admin privileges so far:
  - folders creation;
  - folders deletion;
  - files deletion;
  - attributes setting;
  - symbolic links creation.

  This list will keep growing.

zg 29.03.2010 04:01:39 +0200 - build 1464

1. Mantis#0001302: When launched with command line parameter, FAR freezes on "black screen" until Enter is pressed.

zg 29.03.2010 03:37:49 +0200 - build 1463

1. Mantis#0001310: Run the editor with absolute column given, not screen one (both from plugins and command line).

zg 29.03.2010 01:55:26 +0200 - build 1462

1. Optimization of 1460. When creating a panel, “show” was done twice and sorting took place. although this was not needed.

2. After 1448, in case of sorting by extension, when sorting by extension is off and folder option is off, the sorting  was unstable.

t-rex 28.03.2010 21:42:53 +0200 - build 1461

1. Mantis#1314: Filters - Date/Time - Relative

chupakabra 27.03.2010 08:20:00 +0200 - build 1460

1. Sorting did not run after FCTL_SETNUMERICSORT and FCTL_SETDIRECTORIESFIRST.

svs 27.03.2010 08:17:48 +0300 - build 1459

1. Mantis#0001312: When cancelling the editing of the item, there's no need to refresh farmenu.ini
from Maximus

garry 26.03.2010 16:51:16 +0300 - build 1458

1. Addition to 1456.

drkns 26.03.2010 14:58:23 +0200 - build 1457

1. PgDn in search dialog could lead to stack overflow.

garry 26.03.2010 15:28:59 +0300 - build 1456

1. A possibility of editing via codepage names interface is added (techinfo #80 is removed);

2. At some contitions, cursor was positioned on wrong record in codepages menu (the menu had been fixed in some build and my boilerplate code in codepages menu started to interfere it);

3. Codepages settings are added to main settings menu;

4. For Russian language, interfering and missing hotkeys in settings menu are fixed.

svs 26.03.2010 11:57:54 +0300 - build 1455

1. Bug: far /e filename ShiftEnter AltF9 --> trap.

2. Macro: Clip(N,V) function is provided with the 5-th mode (first parameter) - work with clipboard modes.
N=5
V:
  -1 - what's being used? 1 - Windows clipboard, 2 - inner one
  0 - flip (analogous to $IClip)
  1 - switch to Windows clipboard
  2 - switch to inner clipboard

  Returns the previous value (1 - Windows clipboard, 2 - inner one)

3.

   Fix your macros:

   a) $IClip shall be replaced with Clip(5,0) or Clip(5), because $IClip will be removed.
   b) IClip shall be replaced with Clip(5,-1) (notice that clip() returns 1 or 2), because IClip will be removed.

  2 mentioned "objects" will be removed... say, in 2 months :-)



svs 25.03.2010 18:38:53 +0300 - build 1454

1. Macro: RCounter constant is added, it contains the current value of $Rep loop operator.
  It is visible in current $Rep (current loop, for nested $Rep), for example

RCounter = undefined
$rep(%i)
...
  RCounter = value for loop "$rep(%i)"
...
$rep(%j)
...
RCounter = value for loop "$rep(%j)"
...
$end
...
RCounter = value for loop "$rep(%i)"
...
$end
RCounter = undefined

  Outside the loop, the constant value is undefined/any/meaningless.

2. Macro: "N=Print(Str)" function is added - display “str” at cursor.
  This is the $Text's analog, but Str can be an expression.
  It always returns 1.

3. Macro: "v = MMode(Action[,Value])" function is added - set/get modes for current macro.
  Analogous to $MMode, but mode  can be an expression.
  Action - what we want to change
  1 - screen lock mode ("DisableOutput")
  "MMode(1,-1)" is like "DisableOutput" state
  Value:
-1 - get (the function returns current value)
0 - off (the function switches Action off and returns previous value)
1 - on (the function switches Action on and returns previous value)
2 - flip (the function toggles Action and returns previous value)


4.

  Fix your macros:

 a) $Text has to be replaced with print() because $Text will be removed.
 b) $Date has to be replaced with print(Date(blablabla or empty)) because $Date will be removed.
 c) "$MMode 1" has to be replaced with "MMode(1,2)" because $MMode will be removed.
 d) "DisableOutput" state has to be replaced with "MMode(1,-1)" function call because "DisableOutput" state (not the macro flag!) will be removed.

  4 mentioned "objects" will be removed... say, in 2 months :-)



chupakabra 23.03.2010 00:51:00 +0200 - build 1453

1. Numeric sorting function is rewritten.

drkns 22.03.2010 20:18:31 +0200 - build 1452

1. “links” from “mount points” distinction AI is removed in panel columns.
Alas, the performance degrades too much.

2. х64 warnings.

chupakabra 22.03.2010 04:03:00 +0200 - build 1451

1. Fix for 1444.

chupakabra 22.03.2010 02:02:00 +0200 - build 1450

1. Mantis#0001301: listbox was not redrawn after DM_LISTUPDATE.

t-rex 22.03.2010 00:27:43 +0200

1. Correction of 1448.3.

chupakabra 21.03.2010 20:59:00 +0200 - build 1449

1. full file name sorting mode error is fixed.

chupakabra 21.03.2010 20:43:00 +0200 - build 1448

1. Option for displaying catalogs at the beginning of the list when sorting (Ctrl+F12).

2. Plugin API: FCTL_SETDIRECTORIESFIRST, PFLAGS_DIRECTORIESFIRST, SM_NUMSTREAMS, SM_STREAMSSIZE, SM_FULLNAME.

3. Dependencies are fixed in makefile.

chupakabra 21.03.2010 01:11:00 +0200 - build 1447

1. Mantis#0001081: full file name sorting mode is capable of numeric sorting and sorting groups.

2. Sorting: strings copying is replaced with calling compare functions with explicit indication of lengths of compared strings.

drkns 20.03.2010 09:26:41 +0200 - build 1446

1. In 1443, QView was malfunctional.

chupakabra 20.03.2010 05:46:00 +0200 - build 1445

1. Mantis#0001081: full file name (path) sorting mode.

chupakabra 20.03.2010 04:38:00 +0200 - build 1444

1. Mantis#0001290: Incorrect processing of keys with DIF_NOFOCUS + DIF_BTNNOCLOSE style.

drkns 20.03.2010 00:42:00 +0200 - build 1443

1. Mantis#0001309: Cancel does not work in “apply attributes” dialog if incorrect owner is entered

2. When invoking folder properties in some OS the file properties could appear for the file with the same name and extension from %pathext%.

3. FCTL_GETCMDLINESELECTEDTEXT returned 1 symbol less than needed.

4. Mass introduction of initialization lists.

5. Some C++0x: introduction of nullptr. For VC2010 it is native, for others it is #define to NULL.

t-rex 19.03.2010 12:27:10 +0200 - build 1442

1. Mantis#1308: Build fails in gcc due to incorrect #include (wrong character case).

svs 19.03.2010 11:56:32 +0300 - build 1441

1. VK_OEM_102. Specification... 1440

svs 19.03.2010 11:38:51 +0300 - build 1440

1. Processing of VK_OEM_102 is added under name "<>" or "\|" on RT 102-key kbd.
  Now it is '\'.
  The specification for AltGr- (Ctrl-Alt-), is needed ...maybe something else.
  T.S. Welcome!

chupakabra 19.03.2010 04:41:00 +0200 - build 1439

1. Current directory synchronization is broken for plugins with OPIF_REALNAMES (from build 1157).

svs 18.03.2010 19:54:06 +0300 - build 1438

1. Mantis#0001307: The result of panel.fexist function
  Now panel.fexist() returns: 0 - no such element, > 0 - position/index of file element on panel.
Filters are not taken into account!

svs 17.03.2010 16:42:40 +0300 - build 1437

1. Macro: the specification of "Panel.Select()".
  Mode=2 and 3 are functional now. These modes can have  ';' ',' or '\r\n' as a divider.
  Example:
Panel.Select(1,1,2,clip(0))
  Select files on passive panel which names are contained in clipboard.

2. FileList::SelectFiles now has an additional parameter (masks) and the function returns the number of processed elements (it is used in macros so far)

svs 16.03.2010 17:48:46 +0300 - build 1436

1. Keys.hpp
  1) KEY_CTRLMASK is now 0xFFF00000
  2) KEY_LOCKSCREEN is removed
  3) KEY_KILLFOCUS, KEY_GOTFOCUS and KEY_CONSOLE_BUFFER_RESIZE are described
  4) expansion of KEY_MACRO_BASE range

2. SysLog. A constructor is added
CleverSysLog(int Line,const wchar_t *Title);

3. Macro: a prototype is added: "V=Panel.Select(panelType,Action[,Mode[,Items]])"
based on  http://forum.farmanager.com/viewtopic.php?f=15&t=5077
By now, it understands:
panelType - as usual: =0 - active panel, =1 - passive panel.
Action:
  0 - remove selection; return deselected elements count
  1 - select
  2 - invert selection
  3 - restore selection, analogous to Ctrl-M; return restored elements count
Mode:
  0 or absent - do Action for each element
  1 - Items is a number (index)
Items:
 for Mode==0 - ignored;
 for Mode==1:
  Items==0  or absent- do Action for current element
  Items>0 - do Action for the element with index Items
  The function returns elements count, on which Action is performed
  (info on current selected elements count is obtained via [A|P]Panel.SelCount as usual :-)

  The plans are to add Mode=2 and 3 (consider Items as strings - name or mask)

4. Macro: [A|P]Panel.HostFile is added - empty string or plugin panel host file name.

drkns 10.03.2010 19:29:31 +0200 - build 1435

1. Mantis#0001297: Storing environment strings in settings

2. Mantis#0001300: Inherit VF_DISABLEHISTORY flag when switching to editor (F6) and vice versa

3. Reparse points date/time was not set in subdireectories.

drkns 10.03.2010 14:20:17 +0300 - build 1434

1. Continuation of 1425 - the owner is available for editing

2. Mantis#1299: SavedDialogHistory: SearchText, ReplaceText

yjh 09.03.2010 15:52:16 +0300 - build 1433

1. The default mask for archives including .tbz and .txz (new linux distros)

svs 03.03.2010 17:33:17 +0300 - build 1432

1. CheckFolder() function is renamed to TestFolder(), the names of the return codes are changed accordingly.

2. Macro: A new function: N=testfolder(S) - directory test, returns
  2 - non such one
  1 - not empty
  0 - empty
  -1 - no access
  -2 - error (incorrect parameters or out of memory for temporary buffers)

  Constants:
REGEDIT4

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Consts]
"TSTFLD_NOTFOUND"=dword:00000002
"TSTFLD_NOTEMPTY"=dword:00000001
"TSTFLD_EMPTY"=dword:00000000
"TSTFLD_NOTACCESS"=dword:FFFFFFFF
"TSTFLD_ERROR"=dword:FFFFFFFE

3. Macro: some test additions in "machine".

drkns 02.03.2010 18:32:43 +0200 - build 1431

1. An excessive callback in text pasting into input line.

drkns 01.03.2010 21:10:08 +0200 - build 1430

1. Potential UB in attributes dialog.

svs 01.03.2010 19:00:24 +0300 - build 1429

1. Mantis#0000981: Far crashes after calling a plugin via CallPlugin

2. Macro: function `date' can be called without parameter, in this case the format string "%a %b %d %H:%M:%S %Z %Y" is used.

3. Macro: "$Continue" is added for loops.

4. A bug with shortcuts in editor/viewer:
  a) LCtrl- (where is unassigned shortcut) jumped to the very beginning of the file.
  b) Saving of shortcuts in registry was only possible if 0th element (RCtrl-0) was assigned .

  Here's the Achtung!
  Due to quite old bugs in registry, the content of shortcuts filled with zeros could be saved.
  Therefore, it is recommended to delete ShortXXX values in Editor\LastPositions and Viewer\LastPositions registry keys.
5. For uniformity... the word “Viewer” is removed from Opt.ViOpt.SaveViewerPos and Opt.ViOpt.SaveViewerShortPos.

drkns 28.02.2010 11:29:36 +0200 - build 1428

1. The histories of command line input, view, folder, dialogs and saved positions are expanded to 512 elements by default.

yjh 28.02.2010 04:42:01 +0300 - build 1427

1. To 1424 - if you do largeaddressaware, do it for all linkers :)

drkns 28.02.2010 01:43:09 +0200 - build 1426

1. Fix in 2nd statement in previous build, to get it work also in ancient OSes.

drkns 27.02.2010 23:30:38 +0200 - build 1425

1. Addition to 1054.2: CtrlA/F4 in disk menu shows the built-in attributes dialog instead of the system one.

2. The system volume attributes dialog can be invoked from the built-in one.

3. Mantis#0000088: Add "File owner" field.

4. Ibid, the attributes list is appended with "Reparse point".

drkns 27.02.2010 19:16:33 +0200 - build 1424

1. Build with /largeaddressaware.

chupakabra 27.02.2010 07:51:00 +0200 - build 1423

1. Mantis#0000840: Low-fragmentation Heap is switched on.
  http://msdn.microsoft.com/en-us/library/aa366750%28VS.85%29.aspx

drkns 27.02.2010 00:07:33 +0200 - build 1422

1. "Lock editing of read-only files" option didn't work.

t-rex 26.02.2010 20:36:01 +0200 - build 1421

1. No need to call apiGetVolumeNameForVolumeMountPoint() for reparse points which are not folders (possibly Mantis#1288).

2. Warning in GCC.

drkns 24.02.2010 15:48:25 +0200 - build 1420

1. Continuing elimination of printf.

2. 32-bit FilePositionCache is no more, now there's a 64-bit one everywhere.

3. TI#11 limitations are removed.

svs 22.02.2010 17:10:45 +0300 - build 1419

1. Macro: specification of replace(). It enters an endless loop if Find is an empty string.

drkns 22.02.2010 15:49:34 +0200 - build 1418

1. The continuation of previous build. Now probably the wolves will be fed and the sheep would remain intact - “./..” items are shown but buggy drivers don't go insane from checking.

t-rex 22.02.2010 13:53:43 +0200 - build 1417

1. The whole "." and ".." checking stuff is removed.
  It caused different problems to normal users, and all this for the sake of
  someone's possibility to create these real directories on FAT.
  If you do create directories "." and "..", FAR won't show them.

drkns 21.02.2010 21:57:47 +0200 - build 1416

1. A lancet was forgotten inside patient's abdomen in 1413 :)

zg 21.02.2010 13:10:12 +0200 - build 1415

1. gcc didn't compile.

svs 20.02.2010 22:44:13 +0300 - build 1414

1. Macro: bug: panel.setposidx(0,0,1) returns 0 if the selected file is last on panel

drkns 20.02.2010 20:24:44 +0200 - build 1413

1. DETECT_ALT_ENTER mess is thrown away, now 80x25 autosetting works when switching into fullscreen mode.

2. No more ACTL_CONSOLEMODE.

3. “Windowed” state is replaced with “Fullscreen” in macro language.

svs 19.02.2010 17:18:28 +0300 - build 1412

1. Macro: Bug: [A|P]panel.Filter always returns 1, regardless of whether panel filter is on or off
2. Macro: problems with eval()

3. Macro: incorrect work of panel.setposidx()
  Now it works like this:
  Panel.SetPosIdx(0,0,0) - returns coordinates in file array taking the filter into consideration
  Panel.SetPosIdx(0,0,1) - returns coordinates in selected files virtual array taking the filter into consideration

4. “Config” variables related to macros are grouped into one structure.

5. Temporary rule is added: KeyMacros/CallPluginRules:dword (Mantis#1280)
  0 - block macros when invoking the plugin with calling the CallPlugin function, 1 - enable macros (achtung!)
   the default setting is 0 - block
   it is "temporary" to understand how necessary it is.

drkns 19.02.2010 13:47:00 +0200 - build 1411

1. In 1410, copying to plugin panels was broken.

drkns 18.02.2010 23:03:00 +0200 - build 1410

1. Crash if language files are not found.

2. Crash while unloading a plugin while configuration menu is opened.

3. Some more garbage is thrown away from copier.

4. Exceptions: an opportunity is added to pass an exception to external debugger, miscellaneous junk is deleted.

t-rex 18.02.2010 21:28:44 +0200 - build 1409

1. Makeup in previous build.

svs 18.02.2010 20:02:35 +0300 - build 1408

1. Macro: Menu.Select doesn't work when the third parameter (Dir) is not equal to 0.
(how could it work if the direction wasn't taken into account at all :-))

svs 18.02.2010 14:33:53 +0300 - build 1407

1. Mantis#0001286: Add mouse click state
  MsEventFlags constant is added, a bitset (see http://msdn.microsoft.com/en-us/library/ms684239%28VS.85%29.aspx):
DOUBLE_CLICK = 0x0002
The second click (button press) of a double-click occurred.
The first click is returned as a regular button-press event.
MOUSE_HWHEELED = 0x0008
The horizontal mouse wheel was moved.
MOUSE_MOVED = 0x0001
A change in mouse position occurred.
MOUSE_WHEELED = 0x0004
The vertical mouse wheel was moved.

2. Macro: panel.setposidx()
  a) 3-rd optional parameter InSelection is added
N=Panel.SetPosIdx(panelType,Idx[,InSelection])
  if InSelection = 1, then Idx is an index in virtual array of selected visible files
  if InSelection = 0, then Idx is an index in virtual array of selected visible files
  b) now this fulction work only with selected files, considering applied panel filters.
  c) second parameter Idx:
  < 0 - "search" from the end to the beginning
  > 0 - "search" from the beginning to theend
  = 0 - ignore moving, just return the current position (considering the filter)

3. Macro: boolean states [A|P]Panel.Filter are added: "the filter is switched on at active/passive panel"

4. Macro: specification of 1401

5. Added: virtual public Panel::FileInFilter(long idxItem) and Panel::IsSelected(long idxItem)

drkns 17.02.2010 22:22:31 +0200 - build 1406

1. Continuation of #0001273. After1395, various ancient bugs started to disclose themselves.

garry 17.02.2010 18:00:27 +0300 - build 1405

1. x64 compilation error in 1400.

svs 17.02.2010 17:49:19 +0300 - build 1404

1. Macro: loading again.
  "...Сonsider some panel macro. Let's call MacroView and make an error in the macro.
  FAR reports the error, the macro doesn't work anymore, but all other macros except the panel ones cease functioning.
  If the error is in viewer/editor macro, then common macros stop working..."

2. Mantis#0001283: Macros execution domain bug
  Let the manager always force CurrentFrame domain setting.
  Hmm... this ticket can happen again, but only for objects not derived from Frame.

drkns 16.02.2010 19:32:46 +0200 - build 1403

1. Specification of FCTL_CLEARSELECTION functioning.

drkns 16.02.2010 13:47:00 +0300 - build 1402

1. Mantis#0000942: far hangs at exit after using of proclist

2. Mantis#0001273: Slow work and excessive network traffic when exploring network shares.

3. FCTL_CLEARSELECTION command is added, it removes selection from panel element. Param1 is a selected element number (0<=Param1<PanelInfo.SelectedItemsNumber).

4. A couple of trivia.

svs 16.02.2010 11:05:58 +0300 - build 1401

1. Macro: Now erroneous macros are skipped, while other ones are loaded

2. A little of PROJECT_DI_MEMOEDIT.

3. editor.cpp: a commented code deleted (Editor::ReadFile())

garry 15.02.2010 17:37:17 +0300 - build 1400
1. Crash when processing files with increasing size:
  1. Editor crashed when displaying progress bar for the file which size was increasing
  while opening;
  2. Viewer crashed when displaying progress bar while searching in the file which size was increasing
  while viewing.

t-rex 14.02.2010 00:48:27 +0200 - build 1399

1. Mantis#1274: Incorrect panel filter functioning if folders only are selected.
  In common, there was a flaw in folders processing logic, similar bugs are fixed in search and selection.

zg 14.02.2010 00:12:02 +0200 - build 1398

1. gcc didn't compile.

svs 12.02.2010 18:15:56 +0300 - build 1397

1. Mantis#0001270: MCMD_LOADALL doesn't return an error when it takes place

drkns 11.02.2010 14:06:15 +0200 - build 1396

1. Specification of BOM append logic when saving.

drkns 11.02.2010 13:47:00 +0200 - build 1395

1. Since ConvertNameToReal doesn't use manual analysis of reparse point content, the limitation for network paths is removed.

2. Attributes dialog allows for reparse point content editing for network paths too.

3. Mantis#0000650: FAR doesn't allow to create symlink to root share.

svs 12.02.2010 14:15:21 +0300 - build 1394

1. Incorrect functioning of Info.FSF->FarNameToKey
http://forum.farmanager.com/viewtopic.php?f=8&t=5058

  Function waits for a string matching the following specifications:
  1. Keys which are defined in structure keyboard.cpp::FKeys1[]
  2. Optional modifiers (Alt/RAlt/Ctrl/RCtrl/Shift) and one character, for example, AltD or CtrlC
  3. "Alt" (or RAlt) and 5 decimal digits (with leading zeros)
  4. "Spec" and 5 decimal digits (with leading zeros)
  5. "Oem" and 5 decimal digits (with leading zeros)
  6. Modifiers only (Alt/RAlt/Ctrl/RCtrl/Shift)

drkns 11.02.2010 23:52:09 +0200 - build 1393

1. Mantis#0001271: Dialog: characters which cannot be correctly translated using the selected codepage.

2. Line jump dialog (AltF8) in editor is translated to DialogBuilder.

svs 11.02.2010 22:26:57 +0300 - build 1392

1. Mantis#0001268:Only first character is inserted into the dialogs filter.
Ctrl-V/Shift-Ins is added (for “we are in the filter” mode only)

svs 11.02.2010 21:57:33 +0300 - build 1391

1. Mantis#0001268: Only first character is inserted into the dialogs filter, which is not surprising looking at the source code :-)

Also, here, in filter, as an experiment :-) the reaction on characher 0x8 (Bs) is added when processing $Text . Is it useful?

2. Mantis#0001266: Far crashes when parsing a macro
I have forgot about double quotes... :-(
ULF_NOTUNQUOTES flag is added to UserDefinedList class.

drkns 11.02.2010 13:47:00 +0200 - build 1390

1. Mantis#0001269: macro is not specified in message about incorrect macro at Far start.

2. Excessive call of callback functions when replacing block in input line.

drkns 11.02.2010 01:15:24 +0200 - build 1389

1. In 1381, right mouse clicks on functional keys line didn't work.

zg 10.02.2010 22:13:45 +0200 - build 1388

1. Regexp: error in upper limit calculation in ranges given as \xyyyy.

drkns 10.02.2010 15:04:39 +0200 - build 1387

1. Alt- processing in completion list.

svs 10.02.2010 12:55:31 +0300 - build 1386

 1. Warnings

 2. Macro: MCMD_CHECKMACRO - successful macro check code initialization.
 It is important that ActlKeyMacro.Param is an union and Param.PlainText.SequenceText is overwritten after processing of MCMD_CHECKMACRO, thus Far returns Param.MacroResult.*

drkns 10.02.2010 00:57:46 +0200 - build 1385

 1. Incorrect focus positioning in codepages menu.




zg 09.02.2010 17:59:01 +0200 - build 1384

1. ESPT_SETBOM and EOPT_BOM are added to API.

2. Additionally, the situation is fixed: file without BOM is opened in editor, then deleted and saved, and the result is file without BOM.

svs 09.02.2010 18:02:24 +0300 - build 1383

1. Continuing MCMD_CHECKMACRO hacking.
- line and column start from 0 for plugins, as expected
- MPEC_EXPECTED is replaced with more readable MPEC_EXPECTED_TOKEN
- KSFLAGS_SILENTCHECK flag is added: when it is checked, Far does not show dialog.

drkns 09.02.2010 15:04:21 +0200 - build 1382

1. Specifications of dialog elements coloring.

2. Makeup in macro keys assignment dialog source code.

svs 09.02.2010 12:50:38 +0300 - build 1381

1. Macro: macros on F1: "msgbox(akey(1))"
when pressed in panels, dialogs etc, in works adequately.
when pressed in menu, the result is the button which invoked the menu, not F1.

2. MCMD_CHECKMACRO is “published”, it returns ActlKeyMacro.Param.MacroResult
struct
{
DWORD ErrCode; // error code (see FARMACROPARSEERRORCODE)
COORD ErrPos; // line and column where parser has found the error
const wchar_t *ErrSrc; // word that caused the error, it can be empty depending on the error code
} MacroResult;

3. Mantis#0001266: Far crashes during macro parsing
I have forgot that UserDefinedList doesn't accept 1 value (one line macro in this case)
The stubs have been placed, but...
TODO: rewrite UserDefinedList to make it act as one-element array if needed.

drkns 09.02.2010 10:51:57 +0200 - build 1380

1. Specification of mouse processing in dialogs.

drkns 09.02.2010 09:39:19 +0200 - build 1379

1. Fix of 1378.2.

drkns 08.02.2010 19:07:17 +0200 - build 1378

1. Continuation of 1367.

2. Another pair of trivia.

svs 08.02.2010 17:26:40 +0300 - build 1377

1. Macro: PANEL.ITEM alias is added for PANELITEM function (for uniformity in naming)

2. Macro: parser specification.

3. ULF_NOTTRIM flag is added to UserDefinedList - to preserve space symbols.

drkns 08.02.2010 16:03:25 +0200 - build 1376

1. Specification of the trick introduced in 1205: window size is restored only if it had been decreased after getting the focus.

drkns 08.02.2010 11:18:56 +0200 - build 1375

1. Mantis#0001264: show deletion progress percentage in caption.

2. 'Skip all' choice didn't work in decryption confirmation dialog.

3. Error in metacharacters processing.

drkns 06.02.2010 15:10:19 +0200 - build 1374

1. Completion is switched off while FCTL_CMDLINE is processed.

drkns 05.02.2010 20:42:59 +0200 - build 1373

1. Specification of plugin panel closing logic.

2. Mantis#0001259: file panel is not redrawn after folder change.

drkns 04.02.2010 20:48:39 +0200 - build 1372

1. User menu items deletion broken in 1369.

drkns 03.02.2010 21:23:01 +0200 - build 1371

1. Middle mouse button works as Enter again in panels, help and menus.
Always. There's no option, because of macros.

2. Mouse processing in help is changed a bit.

3. xn are changed, now the third parameter is a destination size.

4. Error in oldfar::ESPT_GETWORDDIV.

5. gcc warning.

drkns 03.02.2010 15:08:26 +0200 - build 1370

1. If element was selected from commands history, useless autocompletion was invoked.

2. Deprecated BlockExtKey entries are removed.

3. File search does not crash anymore on F11, also task list is now available there.

drkns 02.02.2010 20:36:50 +0200 - build 1369

1. Fix for 1366.

2. Getting rid of *printf.

chupakabra 02.02.2010 16:20:00 +0200 - build 1368

1. Incorrect date display for folders on plugin panel.

drkns 01.02.2010 23:28:33 +0200 - build 1367

1. Fix in 1366.

drkns 01.02.2010 21:44:16 +0200 - build 1366

1. From Alexey Samlyukov: if hlf file contained ".Options" section, ".PluginContents" section wasn't processed.

2. Input lines are provided with mouse selection capability. It has nothing to do with editor so far.

3. Clickable arrow is drawn on the right side of command line, as in dialogs combobox.

drkns 31.01.2010 20:56:38 +0200 - build 1365

1. Panels were not redrawn after filters switch on.

svs 31.01.2010 17:57:22 +0300 - build

1. Mantis#0000986: Far 2 API - pascal

drkns 31.01.2010 16:37:49 +0200 - build 1364

1. Plugin panels did not show elements packed size.

drkns 30.01.2010 20:09:48 +0200 - build 1363

1. Mantis#0001257: File sharing violation when attempting to open Editor from Viewer.

drkns 29.01.2010 22:29:05 +0200 - build 1362

1. After 597, panel elements sorting in plugins was broken.

drkns 29.01.2010 21:01:29 +0200 - build 1361

1. Once more about macros and completion.

drkns 28.01.2010 18:47:28 +0200 - build 1360

1. Panel plugins menu could be invoked with F11.

2. To all macro addicts: autocompletion list now has its own range - "AutoCompletion".

svs 28.01.2010 16:45:53 +0300 - build 1359

1. Macro: Incorrect AKey()/$AKey work.

drkns 28.01.2010 11:27:44 +0200 - build 1358

1. Mantis#0001256: When text is entered in command line, PanelTabs plugin tabs are erased.

t-rex 27.01.2010 21:59:14 +0200 - build 1357

1. Mantis#1255: “far /v -” does not respond.

chupakabra 26.01.2010 19:57:00 +0200 - build 1356

1. From Maximus: Mantis#0001117: Incorrect file selection with mouse button while scrolling.

chupakabra 26.01.2010 19:34:00 +0200 - build 1355

1. FSF.GetDirList now returns full pathnames.

chupakabra 24.01.2010 18:15:00 +0200 - build 1354

1. Mantis#0001251: Incorrect optical drive type display.

yole 23.01.2010 14:15:00 +0300 - build 1353

1. In Alt-F1/Alt-F2 menu, F9 shows display modes configuration dialog, which is all Ctrl+digits together. Also, the menu is provided with help on available keys.

2. CD-ROM type display is on by default.

svs 22.01.2010 17:15:01 +0300 - build 1352

1. Mantis#0001201: In Far 2, go to URL does not work

2. Specification in URL help (section "@PluginsReviews")

svs 22.01.2010 14:46:29 +0300 - build 1351

1. Mantis#0001240: Outer editor is not started if its path contains spaces and prepended with “@” symbol.

drkns 22.01.2010 00:40:31 +0200 - build 1350

1. A couple of autocompletion details.

chupakabra 20.01.2010 21:19:00 +0200 - build 1349

1. Error in FarGetDirList, it caused non-working catalog contents copy in TmpPanel.

2. ACTL_QUIT didn't work if a menu was open.

chupakabra 20.01.2010 08:05:00 +0200 - build 1348

1. ACTL_QUIT - terminates Far.

chupakabra 20.01.2010 07:38:00 +0200 - build 1347

1. On win2k, QueryDosDevice() gives an error when buffer size if large. apiQueryDosDevice() is added.

2. UnicodeString::SubStr().

zg 19.01.2010 22:58:11 +0200 - build 1346

1. "&" symbol is not displayed in completion.

svs 18.01.2010 10:26:51 +0300 - build

1. Mantis#0001246: Build fails in gcc on Linux. Incorrect include in edit.cpp

svs 17.01.2010 21:26:17 +0300 - build 1345

1. Mantis#0001242: Incorrect AKey$ work
$AKey now returns really pressed keys which caused the macro

2. Mantis#0001239: Keypress returning with AKey considers the current layout
An optional akey() parameter is added
V=akey(Mode[,Type])
Mode = 0 - number
1 - string
Type = 0 - returns really pressed keys which caused the macro
1 - returns the hotkey which macro is assigned on.

yole 17.01.2010 00:20:00 +0300 - build 1344

1. Learning to recognize BD-ROM drives in Alt-F1/Alt-F2.

yole 16.01.2010 18:50:00 +0300 - build 1343

1. DialogBuilder supports two-column layout of controls.

2. Moving viewer and editor configuration to DialogBuilder.

yole 16.01.2010 14:45:00 +0300 - build 1342

1. Continuing DialogBuilder refactoring in order to use it in plugins.

2. Number edit fields created with DialogBuilder are automatically provided with numbers-only mask.

drkns 16.01.2010 12:39:15 +0200 - build 1341

1. Forum: "Bug in editor replace".
It appears to be lasting since #498.

drkns 16.01.2010 00:42:36 +0200 - build 1340

1. #1338 is continued.

drkns 15.01.2010 07:57:05 +0200 - build 1339

1. Querying the needed privileges incorrectly at symlinks creation.

drkns 14.01.2010 20:45:19 +0200 - build 1338

1. regressions of #1337 are fixed.

drkns 13.01.2010 20:42:34 +0200 - build 1337

1. Filenames ending with dot were shown incorrectly in panel modes with extensions alignment switched on.

2. Refactoring. Copypaste related to completion is removed. Consequences are expected, so be careful.

3. x64 warnings.

drkns 13.01.2010 19:22:50 +0200 - build 1336

1. And TreeCmp again, more correct variant.

t-rex 12.01.2010 23:07:52 +0200 - build 1335

1. FarDialogItem.Param.ListPos is now set centrally when any structure is “got” from Far.
Buggy plugins based on assumption that FarDialogItem.Param.ListItems is set will be broken.
These cases are asked to inform about, although this shouldn't hapen.

svs 12.01.2010 11:53:24 +0300 - build 1334

1. Tree. Sorting function TreeCmp rollback to the previous revision (3917) (was in build #1295)

2. Specifications in SysLog`s

drkns 11.01.2010 20:07:38 +0200 - build 1333

1. Projects dependencies are fixed.

2. DIF_EDITPATH/FIB_EDITPATH in api.

3. Text in input lines sometimes appeared to be drawn to the left of X1 and was not displayed.

4. Some makeup.

5. Help specifications.

chupakabra 11.01.2010 02:28:00 +0200 - build 1332

1. “const” in plugin api.

drkns 11.01.2010 01:19:27 +0200 - build 1331

1. Mantis#0000848: Find Folder: incorrect “*” symbol handling.

t-rex 10.01.2010 23:55:43 +0200 - build 1330

1. Getting rid of NM in plugin.hpp.

2. GCC warning.

drkns 10.01.2010 23:39:29 +0200 - build 1329

1. Forum: Find Folder: incorrect tree displaying in Far 2.

2. x64 warnings.

3. gcc build.

4. Changes in completion.

yole 10.01.2010 18:50:00 +0300 - build 1328

1. The beginning of DialogBuilder big refactoring, which allows one API for dialogs contruction both in FAR and plugins.

drkns 09.01.2010 14:17:27 +0200 - build 1327

1. Rolling FarDialogItem.MaxLen back )

drkns 09.01.2010 13:51:28 +0200 - build 1326

1. DWORD Reserved2 -> DWORD_PTR Reserved2.

drkns 09.01.2010 12:59:15 +0200 - build 1325

1. FarDialogItem.MaxLen is replaced with DWORD Reserved2. Must be 0.

drkns 08.01.2010 22:51:39 +0200 - build 1324

1. Logical extension of 1277 - synchronize CurrentDirectory only if non-Unicode plugins are present.

2. DIF_NOTCVTUSERCONTROL is removed + some makeup in wrapper.

drkns 08.01.2010 18:00:43 +0200 - build 1323

1. Mantis#0001238: Incorrect replacement highlighting in editor.

t-rex 08.01.2010 13:54:21 +0200 - build 1322

1. vc compilation for 1321.

zg 08.01.2010 13:46:03 +0200 - build 1321

1. Lost files in 1320.

zg 08.01.2010 13:30:56 +0200 - build 1320

1. File rewrite dialog has GUID {9FBCB7E1-ACA2-475d-B40D-0F7365B632FF}.

drkns 08.01.2010 01:30:08 +0200 - build 1319

1. Some more autocompletion + the beginning of configuration.

2. All autoconfigured-in-build files are placed now in separate directory.

zg 07.01.2010 18:21:09 +0200 - build 1318

1. LIF_USETEXTPTR and MIF_USETEXTPTR are removed.

zg 07.01.2010 17:44:21 +0200 - build 1317

1. `const' in plugin api.

2. GetComputerNameEx in gcc.

svs 07.01.2010 17:12:00 +0300 - build 1316

1. Some changes in InfoList. Using absolute Y coordinates instead of relative ones.

2. Specification for subst-volumes - the info had been shown from parent root.
Instead of strDriveRoot, gotten from GetPathRoot, we'll apply ExtractPathRoot(strCurDir), because GetPathRoot tries to unwind everything completely.

3. InfoPanel settings are provided with "Computer name display format" option (which is described in help).
Now we should invent a sane name (according to the description) for these combobox items :-)

yole 07.01.2010 12:00:00 +0300 - build 1315

1. Returning an option which has been lost when moving settings to dynamic dialogs.

2. Dynamic dialogs build system is learned to work with comboboxes.
InfoPanel Settings dialog moved to new system.

drkns 07.01.2010 01:19:43 +0200 - build 1314

1. And another couple of trivia.

drkns 07.01.2010 00:57:40 +0200 - build 1313

1. Some more autocompletion.

zg 06.01.2010 22:36:35 +0200 - build 1312

1. gcc warnings.

drkns 06.01.2010 18:54:47 +0200 - build 1311

1. Changes in FSF.MkTemp - the function returns needed buffer size.

drkns 05.01.2010 20:52:04 +0200 - build 1310

1. Forum: specification of "Already existing files" list behavior in copy dialog.

2. As a consequence of #1: opened combobox is now fed with DN_LISTHOTKEY event.

3. OPIF_FINDFOLDERS is removed for uselessness.

drkns 05.01.2010 19:50:30 +0200 - build 1309

1. New actl commands: ACTL_SETPROGRESSSTATE, ACTL_SETPROGRESSVALUE, intended to control Far taskbar button.

2. ACTL_GETWCHARMODE is removed for uselessness.

drkns 03.01.2010 21:37:53 +0200 - build 1308

1. Other autocompletion stuff.

drkns 03.01.2010 18:36:49 +0200 - build 1307

1. Changes/specifications on new autocompletion mode.

2. Rollback of 1306 - false alarm )

drkns 03.01.2010 16:42:56 +0200 - build 1306

1. FSF.ConvertPath didn't return needed buffer size.

drkns 02.01.2010 13:38:25 +0200 - build 1305

1. Mantis#0001233: In editor, text being replaced is not highlighted.

svs 29.12.2009 15:10:25 +0300 - build 1304

1. I was wrong about language-dependent %FARADMINMODE% :-)

Next iteration...

Now
%FARADMINMODE% is a number and equals to 1, if we are admin

cmdprompt has new '$@xx' (see MConfigCmdlinePromptFormatAdmin)
Here, 'xx' contains two symbols surrounding the word "Administrator"
For example, "$@{}$s$p$g" is displayed as "{Administrator} C:\>"

svs 29.12.2009 13:33:22 +0300 - build 1303

1. Mantis#0001228: Macro Problem (wrong results in 'Index')
Additional parameters are introduced in macro functions
N=index(S1,S2[,Mode])
S=rindex(S1,S2[,Mode])
Result=replace(Str,Find,Replace[,Cnt[,Mode]])
Here Mode is:
0 - case insensitive
1 - case sensitive

2. Macro: msave() for double type keeps its value as a string.

3. If Far is in administrator mode, the environment variable FARADMINMODE is set, it equals to "(Administrator)" (see MConfigCmdlinePromptFormatAdmin)
One can make use of it in CmdPrompt.

drkns 29.12.2009 00:44:26 +0200 - build 1302

1. Placing DIF_EDITPATH in dialogs where it is needed.

2. Specifications of new append mode.

yole 29.12.2009 00:11:00 +0300 - build 1301

1. Work on dynamic dialog system is in progress.
Support is added for separators, radio buttons, prefix text, history.
Translation for system settings, panel settigns, file description settings.

drkns 28.12.2009 19:10:00 +0200 - build 1300

1. Experimenting with auto-completion again.
Now its behaviour is as close to the system one as possible, namely:
input is provided with autoexpanding list with suitable variants, shrinking as input proceeds.
I.e. nothing is substituted without user's control end everything is intuitively clear.
Hope this variant will suit everybody.

Sorry, no configuration interface so far. It will be done later.

P.S. As a bonus (and to match the system behaviour precisely) also primitive completion of file names is added at the same place. It works at the command line and dialog input lines with DIF_EDITPATH flag set.
At this moment, the flag is set in open and save dialogs only (ShiftF4/ShiftF2).

yole 26.12.2009 19:30:00 +0300 - build 1299

1. Dynamic dialog creation system development is in progress.
Support is added for edit fields, static text, automation.
Another couple of settings dialogs is moved to the new system.

drkns 26.12.2009 16:14:42 +0200 - build 1298

1. Specification of 1295.2.

yole 26.12.2009 16:20:00 +0300 - build 1297

1. Stub for dynamic dialog creation system: DlgBuilder.cpp/hpp

2. autocompletion blind mode on/off option.

yole 25.12.2009 23:32:10 +0300 - build 1296

1. Blind mode for autocompletion (experimental):
http://bugs.farmanager.com/view.php?id=274

drkns 25.12.2009 19:24:01 +0200 - build 1295

1. Restored the editor save error visualization.

2. New hotkeys in panels: CtrlShift.
They change the current panel height.

2. Mass deletion of constness cast-away in Local, LocalOEM and other places.

3. Mass deletion of out-of-loop counters.

t-rex 25.12.2009 16:46:03 +0200 - build 1294

1. Logical completion of 1246. Now plugins can detach Far window, and this is supposed to work.
I've noticed so far that MakeIt plugin is partially broken, I'll examine that.
It's interesting to know if someting else having non-standard output is also broken.

chupakabra 24.12.2009 23:37:00 +0200 - build 1293

1. On Far startup, macro recording indicator could appear because KeyMacro::Recording wasn't initialized.

drkns 24.12.2009 21:33:21 +0200 - build 1292

1. DList is removed from MacroState, till better times.

drkns 24.12.2009 17:53:01 +0200 - build 1291

1. Mistype in 1290.

drkns 24.12.2009 01:51:44 +0200 - build 1290

1. Getting rid of some more memcpy and memset.

2. If plugin tried to change focus at the moment of combobox opening, the consequences were tragic.

drkns 23.12.2009 20:13:46 +0200 - build 1289

1. Specifications of build 1287.

2. Specifications in help.

t-rex 22.12.2009 22:21:07 +0200 - build 1288

1. Mantis#1147: Error when launching \

2. Some cleanup.

drkns 22.12.2009 21:23:23 +0200 - build 1287

1. Using DList instead of list reimplementations in yet another few places.

2. Some additions in DList.

drkns 18.12.2009 22:14:58 +0200 - build 1286

1. Regular expressions: \x now supports up to four hexadecimal digits, in order to cover Unicode caracters.

2. Selection in editor text replace was drawn over the text by hand for some reason.
If tab symbols got there, this casted a miracle.

3. Help on "Far window title addons".

t-rex 18.12.2009 17:59:11 +0200 - build 1285

1. At users' requests, an addition to 1282, if Mouse option is off in Far interface settings, then additional console mode “quick edit” isn't switched off if the shortcut/window setting is on.

drkns 17.12.2009 21:00:01 +0200 - build 1284

1. New caption template %Platform (x86/x64/IA64), templates are now case-insensitive.

drkns 13.12.2009 22:22:11 +0200 - build 1283

1. TI#48 had no influence on NumDel.

t-rex 13.12.2009 00:40:22 +0200 - build 1282

1. The BAF from b1279#2 is back for a while, there are some problems without it, also there's no time to rewrite it completely so far. I should better not touch it.

2. Additional console modes (quick edit/insert mode) are switched off while Far is running, but if they have been turned on when Far is started then they are back on for the time external programs run in Far window.

3. Misc stuff.

drkns 12.12.2009 23:57:53 +0200 - build 1281

1. Specification of the previous build.

drkns 12.12.2009 23:44:12 +0200 - build 1280

1. Information panel:
- swap file status is now called with its proper name, instead of "virtual memory";
- added information on true virtual memory;
- added information on installed physical memory. It is functional in Vista and above.

2. When ShiftF8 was pressed on ".." and there was a selection on the panel, an attempt to delete this item was made, with all consequences.

t-rex 07.12.2009 23:20:24 +0200 - build 1279

1. Mantis#1157: .. - exit from temporary panel to previous one.

2. A big ancient fail: OpenFilePlugin() didn't create a new panel, existing one was reused instead.

t-rex 07.12.2009 21:03:31 +0200 - build 1278

1. Settle down current path syncronization and a pair of related things.
Also, access to inner strCurrentDirectory() should be wrapped with CriticalSection .

t-rex 07.12.2009 17:59:07 +0200 - build 1277

1. Now we syncronize process' current directory with Far current folder, because since 1275 it has become totally unexpected which has caused another series of problems.
What could we do? Now everything seems to be ok, but since now it will be harder to find buggy plugins which get current path from Windows, not Far, because those will be equal except for "nonstandard" paths.
I think this should be done: remove ANSI plugins support at all. The problem is gone at once, and people get a high motivation for plugins porting.

t-rex 06.12.2009 23:01:16 +0200 - build 1276

1. Misc.

t-rex 06.12.2009 20:52:04 +0200 - build 1275

1. CurrentDirectoryGuard is removed, now there's only SynchronizeCurrentDirectory() without restoring, because frequent jumps of process' current directory here and there cause various problems with ANSI plugins invocation.

2. Small corrections in plugin manager.

drkns 06.12.2009 11:14:26 +0200 - build 1274

1. Incorrect mark symbol in menu.

drkns 05.12.2009 18:46:16 +0200 - build 1273

1. As it suddenly became clear, those admin-in-caption tricks didn't work at all, because because the state of user's membership in admins group had been taken from astral plane.
Ibid: removed Windows version check (need to check how it works under NT<6) a couple of minor things. t-rex 05.12.2009 17:29:08 +0200 - build 1272

1. Remakes in TitleAddons:
a. GUI option. Please always add it for new GUI features, say no to “techinfo”.
b. No spaces etc. are substituted anywhere, the string is inserted as-is.
c. All additions go after " - Far ", don't touch this piece.
d. Trailing spaces are removed if anybody wants to know.
e. Far version isn't changed while running, No need to read it continuously :)
f. The default string is now "%Ver.%Build %Admin".
g. Admin is now written in LNG without excessive symbols.

t-rex 05.12.2009 16:36:12 +0200 - build 1271

1. Another remake in apiGetFinalPathNameByHandle() to do it nicer and more correct.

t-rex 05.12.2009 14:27:07 +0200 - build 1270

1. Mantis#1202: Crash after Shift-F8 keypress in editor and viewer.
The bug has always existed, but it has manifested itself only now.

2. Incorrect encodings sorting in Favorites.

3. VMenu: SelectPos has to be corrected when adding a new item before selected one.

t-rex 05.12.2009 11:57:27 +0200 - build 1269

1. VMenu: a small bug in DeleteItem().

t-rex 05.12.2009 10:53:56 +0200 - build 1268

1. Continue ruining VMenu.

t-rex 05.12.2009 00:20:30 +0200 - build 1267

1. Some more cleaning in global.hpp.

2. Bugs in ConsoleTitle.

t-rex 04.12.2009 22:06:38 +0200 - build 1266

1. Partial refactoring of VMenu class (menus, combos, listboxes) to gain convenience of new features adding.
Various bugs must have been fixed, especially those related to marking, hidden items, mouse etc.
Now the class is constantly watching for marks etc and can't be confused with outer actions.
Now it's easier to complete menu filter functionality.
Bugs are expected and even lots of them!

2. Fixes in apiGetFinalPathNameByHandle() and its usage.

3. debug couldn't be built.

svs 04.12.2009 19:09:57 +0300 - build 1265

1. Inspired by "GKTem" sources (exactly, http://msdn.microsoft.com/en-us/library/aa376389%28VS.85%29.aspx) and "vkh" (adjustable caption), console header ending definition algorithm is added (earlier, the caption was hardcoded: " - Far").
a) addition to caption is a template;
b) addition is taken by Far from registry key Interface/TitleAddons:REG_SZ, " - Far%Ver%Admin" by default;
c) template characters understood by Far:
1. %Ver - Far Manager current version, for example, " 2.0" - Far adds a space before version string;
2. %Build - Far Manager current build, for example, " 1259" - Far adds a space before build string;
3. %Admin - in Vista and later it is replaced with LNG file value, " (Administrator)" by default - Far does NOT add a space.

Developing this topic, we can add... "%Debug" template for maniacs ;-)

2. SetFarTitle() function is moved from interf.?pp into ConsoleTitle class.

3. Macro: addition in #1 "IsUserAdmin" - 1 or 0 - the name of the user whom Far is started under.
Here's misunderstanding (speaking about myself :-)... now there's IsUserAdmin and "(Administrator)" isn't displayed (for OS older than Vista)
It's possible that IsUserAdmin for these OSes must be 0, even if the current user is administrator.
So far, it is done exactly this way (see constitle.cpp::GetFarTitleAddons())

chupakabra 04.12.2009 17:32:00 +0200 - build 1264

1. GetFinalPathNameByHandle() is wrapped into __try __except to prevent crash under Windows 7 + Ext2FSD.

t-rex 04.12.2009 10:53:20 +0200 - build 1263

1. from Igor Braginskiy: for CD/CHDIR we "process" (ignore) /D,
the volume is changed anyway, therewith some people type this option in aliases or habitually.

2. from Igor Braginskiy: excessive redraw in launcher.

3. Security in EXE headers checking.

4. Possible AV in "echo." processing.

5. Some makeup.

chupakabra 04.12.2009 05:47:00 +0200 - build 1262

1. Mantis#0000975: Filename column is displayed last in search results dialog.

2. Horizontal VMenu scroll is fixed.

t-rex 02.12.2009 23:04:07 +0200 - build 1261

1. Warning and near.

t-rex 02.12.2009 22:03:01 +0200 - build 1260

1. Overdone a little in PathCanHoldRegularFile().

2. Removed a couple of duplicate functions.

3. Some makeup by the way.

zg 02.12.2009 00:10:59 +0200 - build 1259

1. 1258 is being continued. Now the “Packed” column contains real values.

zg 01.12.2009 23:21:54 +0200 - build 1258

1. Mantis#0000916: Garbage in Detailed mode, “Packed” column.

t-rex 01.12.2009 20:37:20 +0200 - build 1257

1. Some style editing.

chupakabra 01.12.2009 08:08:00 +0200 - build 1256

1. Mantis#0001104: When displaying a tree, no attempt is made to define the real root of the volume, instead the one contained in current path is used.

t-rex 01.12.2009 03:13:36 +0200 - build 1255

1. All changes in code are related to style. Got sick of tabs and spaces mixed together etc.
The sources are processed in this way:
AStyle --style=ansi --indent=tab=4 --brackets=break --indent-classes --indent-switches --indent-namespaces --indent-preprocessor --break-blocks --delete-empty-lines --unpad-paren --keep-one-line-statements --keep-one-line-blocks
This is not ideal, but much better than before.

Thus, don't forget to use tabs in your code. The tab width is 4 spaces.
We have to pick a time for writing a sort of document on coding style.

t-rex 01.12.2009 00:37:09 +0200 - build 1254

1. Some more cleaning in global.hpp.

2. Using string.Clear() everywhere instead of string.SetLength(0) and string=L"" because this is faster and nicer.

3. A couple of tiny optimizations in UnicodeString.

t-rex 30.11.2009 20:20:11 +0200 - build 1253

1. After 1246-3, when closing a dialog DN_EDITCHANGE had started to be sent to all edits, which caused various bugs including Mantis#1192: Crash on filter creation.

2. Mantis#1190: When using environment variables in edit fields the history is added both the variable and its value.
The bug is old but it has been revealed thanks to 1246-3.

svs 30.11.2009 12:10:30 +0300 - build 1252

1. syslog.cpp breakdown...

t-rex 30.11.2009 09:23:05 +0200 - build 1251

1. An accidental FarMenu.ini breakdown in 1248.

t-rex 29.11.2009 23:04:39 +0200 - build 1250

1. Some more cleaning in global.hpp.

t-rex 29.11.2009 21:45:45 +0200 - build 1249

1. clipboard service code correction.

t-rex 29.11.2009 20:33:41 +0200 - build 1248

1. Mantis#1188: Slow (25 sec) network share entering from Network plugin.
The share list had been scanned for descript.ion file.

2. Similar fix for usermenu. When F2 is pressed in share list then we don't look for FarMenu.ini there.

3. Various changes.

drkns 29.11.2009 19:31:17 +0200 - build 1247

1. As it proved to be, the editor had inserted signature in Unicode files independently of save dialog checkbox state.
And, what's interesting, long enough already.
It is also the cause of Mantis#0001079: [x] Add signature (BOM) option is always on.

2. A couple of specifications in UTF-8 hex view "blocker".

3. #2 of build 1237 is rolled back. This dialog is annoying indeed.

4. When saving with ShiftF2, current position in “Code page” combobox had been taken somewhere from astral.

t-rex 29.11.2009 02:23:03 +0200

1. NO_RELEASE_PDB flag for make.

t-rex 28.11.2009 21:57:13 +0200

1. Added /Oy- in release to “help” fexcept.

drkns 28.11.2009 21:55:50 +0200

1. Projects sync with makefile.

t-rex 28.11.2009 15:11:26 +0200 - build 1245

1. Some tiny optimizations in strmix.cpp concerning UnicodeString.

2. gcc warnings.

drkns 28.11.2009 13:10:50 +0200

1. Some more editions in makefile_vc: VC2008 is now default, target platform autodetection.

drkns 28.11.2009 02:53:22 +0200 - build 1244

1. Various decorations in makefile_vc and, as a consequence, in code too.

t-rex 28.11.2009 02:18:44 +0200 - build 1243

1. There has been some hurry in 1242, rolling back.

t-rex 28.11.2009 01:08:27 +0200 - build 1242

1. Removed string length limitation in MenuFileToReg().

t-rex 28.11.2009 00:35:30 +0200 - build 1241

1. Mantis#1180: Cannot update file description.
Descriptions in paths ending with dots etc.

chupakabra 27.11.2009 23:14:00 +0200 - build 1240

1. Crash after commands like cd \\MAXW7.

t-rex 27.11.2009 21:52:52 +0200 - build 1239

1. A minor change, just in case.

chupakabra 26.11.2009 18:35:00 +0200 - build 1238

1. Mantis#0001176: RO attribute is not cleared when copying files from CD.

drkns 26.11.2009 11:10:35 +0200 - build 1237

1. Mantis#0001175: Ctrl-Enter is processed incorrectly when doing autocompletion.

2. When file is saved in editor with F2, if file hasn't existed before, the save dialog is displayed.

3. Project & solution for Visual Studio 2010.

drkns 26.11.2009 02:15:04 +0200 - build 1236

1. Editor is provided with optional TAB symbols and spaces visualization.
The settings are available for:
- interface - "[ ] Show white space";
- API - EOPT_SHOWWHITESPACE, ESPT_SHOWWHITESPACE;
- macros - Editor.Set(20,State).

drkns 25.11.2009 15:56:12 +0200 - build 1235

1. Corrections in common deletion indicator.

t-rex 23.11.2009 20:26:00 +0200 - build 1234

1. Experiment with the substitution of the whole line instead of autocompletion only, proved to be unsuccessful.

2. Merged a couple of if's into one in ScreenBuf::Flush().

t-rex 22.11.2009 22:37:12 +0200 - build 1233

1. More "optimized" functioning of Opt.ClearType.

drkns 22.11.2009 17:10:02 +0200 - build 1232

1. Mantis#0001172: Access rights inheritance error when moving with the use of relative paths.

drkns 22.11.2009 09:18:07 +0200 - build 1231

1. The specification of previous build.

drkns 22.11.2009 00:37:00 +0200 - build 1230

1. Command line is provided with autocompletion like in dialogs.

2. Added command line settings dialog.

3. Options restyling: the beginning. Some options will be reset and have to be set again manually.

t-rex 21.11.2009 19:10:19 +0200 - build 1229

1. Locked filter mode - CtrlAltL.
When the filter is locked, all keypresses except CtrlAltL and CtrlAltF go to menu's processing.

2. Bug with cursor position in filter.

t-rex 21.11.2009 18:17:15 +0200 - build 1228

1. Filter must process the keypresses before all others.

t-rex 21.11.2009 17:16:09 +0200 - build 1227

1. Experimental feature, embedded filter in all menu, combos and listboxes.
The filter is switched on/off with CtrlAltF.
When it is on, it catches all characters>=32 and backspace.
With active filter, various bugs are guaranteed.

t-rex 21.11.2009 14:06:52 +0200 - build 1226

1. Some more optimization and corrections in history.

svs 21.11.2009 11:52:06 +0300 - build 1225

1. Macro: Specification in Editor.Pos() regarding to negative values...

2. some text formatting :-)

t-rex 21.11.2009 01:59:20 +0200 - build 1224

1. Autocompletion in dialogs is back.

chupakabra 20.11.2009 21:01:00 +0200 - build 1223

1. Mantis#0001145: FAR crash when changing search result window size with Alt+F9.

chupakabra 20.11.2009 20:23:00 +0200 - build 1222

1. Protection from recursive symlinks is rewritten.
FileIndex from GetFileInformationByHandle() isn't used anymore, because any buggy driver can write anything there, thus again there will be the situation when "explorer does copy and Far doesn't".
Instead, the comparison of paths obtained with ConvertNameToReal() is used.

2. Added bool DeleteEndSlash(wchar_t*, bool).

3. Added Object* TPointerArray::lastItem().

drkns 20.11.2009 20:13:22 +0200 - build 1221

1. Malfunction of "wipe all" button when deleting files.

drkns 20.11.2009 15:01:43 +0200 - build 1220

1. Continued 1219 - ShiftDecimal/NumDel.

zg 20.11.2009 14:06:57 +0200 - build 1219

1. Forum: when NumLock is off, shift+numpad arrow keys act as arrows.

drkns 20.11.2009 13:35:56 +0200 - build 1218

1. Options-Interface settings-[ ] Show total delete progress indicator.
FarInterfaceSettings->FIS_SHOWTOTALDELPROGRESSINDICATOR

t-rex 20.11.2009 12:42:59 +0200 - build 1217

1. Yet another ancient bug in descriptions.

t-rex 20.11.2009 03:37:16 +0200 - build 1216

1. Some more refactoring, fixed a few new bugs and a couple of old ones.

drkns 19.11.2009 22:44:27 +0200 - build 1214

1. From forum: "Incorrect functioning of attributes dialog".

t-rex 19.11.2009 13:28:28 +0200 - build 1213

1. Faster autofilling of history last item in dialogs.

chupakabra 18.11.2009 00:20:00 +0200 - build 1212

1. Addition to build 1211.

chupakabra 17.11.2009 23:17:00 +0200 - build 1211

1. GetVolumeNameForVolumeMountPointW() invocation in ConvertNameToReal() caused unexpected network activity if network drives were present.

t-rex 17.11.2009 22:22:04 +0200 - build 1210

1. Stubs again, in order to avoid Windows bug which makes the launcher “stuck” in Win7 telnet session.

drkns 17.11.2009 00:46:37 +0200 - build 1209

1. 1207.1 specification.

t-rex 17.11.2009 00:07:50 +0200 - build 1208

1. Achtung! Initial stage of dialog history reconstruction with purpose of common history class use.
Registry storage format has changed!
Whole current dialog history (old format) is ignored!!!!!!!
Autocompletion is not working so far.
Old dialog history in [HKEY_CURRENT_USER\Software\Far2\SavedDialogHistory] can be deleted (just to keep things clean).

drkns 16.11.2009 17:57:38 +0200 - build 1207

1. 'Junction' to 'Volume' replacement didn't work always for mount points.

3. Mantis#0001140: At win7, taskbar progress does not stop when the search is stopped by pressing [panel].

t-rex 16.11.2009 15:47:38 +0200 - build 1206

1. Unicode in descriptions:
a. If description file has BOM then it is read in appropriate encoding.
b. If there's no BOM then it's assumed that description file is OEM or ANSI according to new setting "ANSI by default".
c. Description file is saved in either:
- OEM or ANSI, according to "ANSI by default".
- UTF8 + BOM if another new setting "Save in UTF8" is on.

Todo:
- Invent clearer names of these settings and write the help.
- Think whether it has a sense to save description files with same encoding which they had initially, if BOM had been present.

drkns + t-rex 15.11.2009 22:40:40 +0200 - build 1205

1. Again: stubs intended to hide Windows bug which leads to scroll bars appear after maximized console window focus is lost (Win+L problem, well known since XP time, and similar miracles in Win7).

chupakabra 08.11.2009 09:09:00 +0200 - build 1204

1. From Maximus: Mantis#0001163: Description is not displayed, although `Descript.ion' contains it.

2. Ineffective code in VMenu.

chupakabra 08.11.2009 08:08:00 +0200 - build 1203

1. VMenu::Show() didn't consider submenus.

garry 06.11.2009 11:18:34 +0300 - build 1202

1. Problems with copy through WebDav: http://forum.farmanager.com/viewtopic.php?f=9&t=4626
(modified patch from Yegor).

chupakabra 05.11.2009 06:32:00 +0200 - build 1201

1. Mantis#0001104: Crash after attempt to open tree panel for mount point.

t-rex 04.11.2009 17:16:24 +0200 - build 1200 (UTF-16 LE :)

1. !?$<history>$<title>?<init>! - the name of the history contained garbage instead of `history'.

t-rex 04.11.2009 13:17:09 +0200 - build 1199

1. Changes in ESPT_GETWORDDIV and EditorSetParameter.
It seems it has been the last place in API with fixed buffer size for data retrieval.
Now EditorSetParameter has the Size field (also, cParam renamed to wszParam), ESPT_GETWORDDIV requires Size equal to wszParam buffer size in characters;
when Size or wszParam is set to 0, EditorControl returns sufficient buffer size in characters.

Plugins which use ESPT_GETWORDDIV have to be fixed.

chupakabra 04.11.2009 13:09:00 +0200 - build 1198

1. Mantis#0001158: AltF2 disk menu of wrong size at 80x25 window (broken in 1190).

t-rex 04.11.2009 00:46:54 +0200 - build 1197

1. Let's torture UnicodeString a little bit more.

2. Warning in gcc.

t-rex 03.11.2009 13:50:19 +0200 - build 1196

1. F9->Options - incorrect work.

t-rex 03.11.2009 13:10:37 +0200 - build 1195

1. More of Mantis#956: some plugins are marked with "A" in list. The help does not explain this.

2. Wrong help topic for plugins menu is fixed.

t-rex 02.11.2009 15:12:55 +0200 - build 1194

1. Mantis#1136: Far crashes on big amount of selected files when !& is used.
Now metacharacters are processed with dynamic buffers only.
It is checked whether metacharacters are sane, especially the complex ones which show dialogs.

svs 02.11.2009 15:03:32 +0300 - build 1193

1. Mantis#0001155: trim() does not cut \r and \n at the beginning of line

2. User name in InfoPanel can be configured (NameUserPrincipal by default).
Added info panel settings dialog.

HELP NEEDED for lng and hlf: a correct and clear description for each format.

zg 01.11.2009 16:52:52 +0200 - build 1192

1. Mantis#0001144: Ctrl-G processes each selected file several times.

t-rex 31.10.2009 20:39:13 +0200 - build 1191

1. Mantis#1148: ANSI plugins cause annoying lags in editor.
In ProcessEditor*, ProcessViewer* and ProcessDialog* calls we'll use common CurrentDirectoryGuard for the whole cycle of calls, and only if there are ANSI plugins with these functions exported.
In case of ProcessDialogEvent and ProcessEditorInput this won't help (because they are called too often), thus, it's recommended to avoid using plugins which export these functions.
Need some ideas about CurrentDirectoryGuard replacement.

chupakabra 30.10.2009 22:30:00 +0200 - build 1190

1. Mantis#0001083: Incorrect VMenu redraw.

yjh 30.10.2009 03:07:09 +0300 - build 1189

1. Junction points are marked 'Volume' in status line, instead of 'Junction',
this is more descriptive when links are displayed side by side with junction points

svs 29.10.2009 16:49:25 +0300 - build 1188

1. Mantis#0001142: Smoooth horizontal scroll in editor
A new macro function is added "N=Editor.Pos(Op,What[,Where])" - Get/Set editor position.

Op: 0 - get, 1 - set
What:
1 - CurLine
2 - CurPos
3 - CurTabPos
4 - TopScreenLine
5 - LeftPos
6 - Overtype

Return: -1 - "don't know",
for "get": current value,
for "set": "ok" (1) or "fail" (0)

Example (when ScrollLock is on, Left/Right perform scroll)

REGEDIT4

[HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\Right]
"Sequence"="$if(FLock(2,-1) == 1) Editor.Pos(1,5,Editor.Pos(0,5)+1); $else Right $end"
"DisableOutput"=dword:00000001

[HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\Left]
"Sequence"="$if(FLock(2,-1) == 1) Editor.Pos(1,5,Editor.Pos(0,5)-1); $else Left $end"
"DisableOutput"=dword:00000001

2. some space to tab replacements

t-rex 27.10.2009 18:04:07 +0200 - build 1187

1. Finished Mantis#1087.

t-rex 27.10.2009 16:45:19 +0200 - 1186

1. Mantis#1087: FCTL_SETPANELDIR does not return error (0) for nonexisting path.

2. CodeBlocks project update from Morten MacFly.

zg 27.10.2009 14:29:01 +0200 - build 1185

1. Editor status line displayed "Col" and current line at switched places.

t-rex 26.10.2009 15:17:44 +0200

1. Now makefile_vc knows about VC10.

t-rex 26.10.2009 13:42:02 +0200

1. Removed reminder about (?{name}pattern) from help because we don't support it.

2. Added help on "ClearType friendly redraw".

yjh 26.10.2009 10:57:04 +0300 - build 1184

1. Error in plugin.hpp - plugin sources can be pure C, not only .cpp.

chupakabra 26.10.2009 06:02:00 +0200 - build 1183

1. Fixed processing of an empty input line in FSF.ConvertPath() and FSF.GetPathRoot().

t-rex 26.10.2009 00:45:52 +0200 - build 1182

1. New interface setting: [ ] ClearType friendly redraw (can be slow)
It is off by default. It must solve all problems with Cleartype, and
maybe with Hebrew characters (in case of monotype font, of course).

t-rex 24.10.2009 23:39:28 +0200 - build 1181

1. Somebody has forgot to set FSF.GetCurrentDirectory :)

drkns 24.10.2009 20:23:01 +0200 - build 1180

1. As so called "current directory" doesn't always match the folder shown currently on panel, a specification is introduced:
- added FSF.GetCurrentDirectory that returns inner Far's "current directory";
- FCTL_GETCURRENTDIRECTORY is renamed to FCTL_GETPANELDIR to match the facts.

Plugins are not broken, but it would be better to review them and change FCTL_GETCURRENTDIRECTORY to FSF.GetCurrentDirectory if required.

drkns 23.10.2009 22:51:44 +0200 - build 1179

1. Mantis#0001137: Deletion of directories with links.

t-rex 23.10.2009 12:34:50 +0200 - build 1178

1. The stack size is restored, because the bug has been located in TmpPanel.

chupakabra 22.10.2009 22:16:00 +0200 - build 1177

1. Stack size has increased (to prevent tmppanel crash after MAX_PATH to NT_MAX_PATH change)

drkns 21.10.2009 22:31:01 +0200 - build 1176

1. Mantis#0001131: Excessive subfolders scan in symlink deletion

2. Bug in folders rename by mask.

svs 21.10.2009 18:08:30 +0300 - build 1175

1. Missing space between Fn and item in UserMenu.

drkns 20.10.2009 20:35:25 +0200 - build 1174

1. The progress bar is shown while deleting.

2. Mantis#0001112: Copy/move conflict (folder or file)

3. If access to folder was denied, attempt to enter the folder returned wrong error code.

4. ".." is not shown at the root of UNC-path.

5. printf, type correction etc.

6. Owner wasn't displayed for paths deeper than MAX_PATH.
In future, when passing file objects names into Windows API functions, use NTPath class, it appends properly formatted "curdir" to object.

7. Folder encryprion didn't work.

svs 20.10.2009 17:03:59 +0300 - build 1173

1. `Owner' is not shown in panels (Ctrl-8)
Added "curdir" to object which is being tested.

svs 19.10.2009 11:41:50 +0300 - build 1172

1. Mantis#0001030: Unexpected change of attributes in file FARMENU.INI

chupakabra 18.10.2009 20:45:00 +0200 - build 1171

1. Fixed the recursive symlinks check mechanism.

2. ScanTree must not enter symlinks while deleting.

3. Minor changes in ConvertNameToReal().

drkns 16.10.2009 06:24:11 +0200 - build 1170

1. Forgotten debug code :)

drkns 16.10.2009 00:08:51 +0200 - build 1169

1. Fix for 1167.

chupakabra 15.10.2009 23:47:00 +0200 - build 1168

1. Mantis#0001094: Problem with deleting directories over the network.

drkns 15.10.2009 19:12:29 +0200 - build 1167

1. Mantis#0001113: Filling the screen with '?' symbols.

2. Continue `printf' removal from problematic places.

drkns 15.10.2009 00:46:56 +0200 - build 1166

1. TechInfo #10, cheater options [Alt]EditorKey, [Alt]CmdLineKey, [Alt]DialogKey, [Alt]FastFindKey are removed .

Hotkeys for XLat are now assigned with fair macros, for example:
-------------------------------------------------------------
REGEDIT4

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Common\CtrlShiftX]
"Sequence"="$XLat"
-------------------------------------------------------------
AltR.reg, Apps.reg, CtrlR.reg, CtrlShiftX.reg in addons\XLat\Russian are rewritten with the use of macros.

drkns 14.10.2009 19:25:48 +0200 - build 1165

1. Warnings (level 4).

2. VirtualFindData for ANSI plugins.

drkns 13.10.2009 22:34:34 +0200 - build 1164

1. Warnings.

drkns 13.10.2009 22:26:59 +0200 - build 1163

1. Mantis#0000789: On Viewer open, panels are seen through text
Mantis#0000978: Some unprintable characters "eat" text when viewing in UTF-16

The cause is 0xffff (WEOF), *printf doesn't handle it and never will, thus a replacement is written: classes FormatString and FormatScreen.
They are capable of width, precision, align, strings and integers so far.
For viewer/editor this must be enough, other things will be done in future.

2. Sometimes commands like "cd driveletter:" didn't work.

chupakabra 13.10.2009 03:00:00 +0200 - build 1162

1. Addition to build 1161.

chupakabra 13.10.2009 02:14:00 +0200 - build 1161

1. Fixed the behaviour of ConvertNameToReal() on volumes with no unique identifier.

drkns 11.10.2009 21:50:10 +0200 - build 1160

1. PutFilesW now looks this way:
int WINAPI PutFilesW(
     HANDLE hPlugin,
     struct PluginPanelItem *PanelItem,
     int ItemsNumber,
     int Move,
     const wchar_t *SrcPath,
     int OpMode
   );
where SrcPath is the path to source where we get files.

Plugins which use PutFilesW have been broken as usual :)

2. Mantis#0001090: Panel with forward slashes becomes "nonfunctional".

svs 07.10.2009 17:30:36 +0300 - build 1159

1. Mantis#0001099: Find out if there is an element without a hotkey
N=checkhotkey(S[,N1])
return value:
-1 - wrong area
0 - no elements
>0 - position of found element

Parameter #1 - position to start search from.
If S is an empty string, then the function returns -1, 0 or the index of position with missing hotkey.

svs 06.10.2009 20:51:50 +0300 - build 1158

1. Macro: CheckHotkey() works in "Dialog" area.
If current element is ListBox or opened Combobox (opened History), then CheckHotkey() works with it.

chupakabra 05.10.2009 20:49:00 +0200 - build 1157

1. Current directory updating for plugins with OPIF_REALNAMES.

svs 05.10.2009 17:12:13 +0300 - build 1156

1. Mantis#0000956: some plugins are marked with letter "A"; nevertheless, help doesn't tell a word about this.
from igor_yudincev.

2. Mantis#0001095: `Title' state (current object's header) is empty when called from panels

3. Mantis#0001088: Paths in Far launch command line vs slash (\)

chupakabra 05.10.2009 12:36:00 +0200 - build 1155

1. Fixed an issue with ConvertNameToReal() at dynamic volumes.

drkns 30.09.2009 20:43:48 +0200 - build 1154

1. 1153.1 specification for the case of empty disk root directory.

drkns 29.09.2009 18:07:44 +0200 - build 1153

1. apiSetCurrentDirectory always returned TRUE, even if target directory didn't exist.
As a consequence, there was a possibility to enter nonexisting folders.
Also, Mantis#0001078: FCTL_SETPANELDIR succeeds for nonexisting path erroneously.

2. If titlebar is off in editor/viewer, there's no need to draw a clock.

3. As hex-view in UTF8 doesn't work anyway, prohibit this combination at all, to stop the flood of boring bugreports.

4. Some make-up: pass '*' into FindFirstFile, instead of '*.*'.

svs 29.09.2009 11:50:38 +0300 - build 1152

1. Mantis#0001064: Error in string handling
Next specification of operations:
1. string + string = string
2. string + num = string
3. num + string = string
4. strnum + string = string
5. string + strnum = string
6. num + strnum = num
7. strnum + num = num

i.e. (forcing conversion to string):
msgbox("1" + 0) ==> 1
msgbox(1 + "2") ==> 3
msgbox("foo1" + 0) ==> "foo10"
msgbox(string(1) + "2") ==> "12"
%i=1; msgbox("0" + string(%i)) ==> "01"
%i=1; msgbox(int("012ag") + %i) ==> 13
%i=1; msgbox(string(int("012ag")) + %i) ==> 13
%i=1; msgbox(string(int("012ag")) + string(%i)) ==> "121"

zg 28.09.2009 20:33:47 +0200 - build 1151

1. Edit::WordDiv was set to the value Editor::WordDiv::m_pData::m_pData.
If plugin changed editor's WordDiv to greater value, the memory
was reallocated, and Edit::WordDiv pointed to nothing.

2. In editor, when the clock was off and codepage was non-unicode, the parentheses in status string were cut.

3. gcc warnings.

drkns 28.09.2009 20:02:46 +0200 - build 1150

1. From Tim Sobolev: Mantis#0001074: It was impossible to create/edit/view file with name started with 2 or more '.'

svs 28.09.2009 20:59:21 +0300 - build 1149

1. Mantis#0001070: XLat: keyboard layout switching when more than 2 layouts are available
Added [HKEY_CURRENT_USER\Software\Far2\XLat]"Layouts" - the string that contains enumeration of HKL of layouts to be "rolled", th delimiter is ';'
For ex., "Layouts"="04090409;04190419" (or "Layouts"="0409;0419")
If less than two are mentioned, then this behaviour is switched off, and layouts are switched like before.
Far reads first 10 values for "Layouts", others are ignored (I think this would be enough :-).

Also, the comment on rules is added (to stop looking for it :-)

2. Mantis#0001064: Error in string handling
Macro: Here, if there's "string1 operation string2", then the result is string (for '+' it is concatenation, for others it is "string1")

3. Macro: Five indices added for Editor.Set() (first parameter):
15: Show scrollbar
16: Allow editing files opened for writing
17: Select found (in search)
18: Regular expressions (in search)
19: Pick up the word (in search)

drkns 27.09.2009 22:50:36 +0200 - build 1148

1. Sometimes Far could crash if the console window was maximized at start.

2. FSF.ConvertNameToReal doesn't exist anymore. However, there is FSF.ConvertPath(CONVERTPATHMODES Mode,const wchar_t *Src, wchar_t *Dest, int DestSize)
In Mode=CPM_REAL it works like ConvertNameToReal;
In Mode=CPM_FULL it works like ConvertNameToFull.

Achtung: use of GetFullPathNameW for relative to absolute path conversion is wrong after build #1145, use ConvertPath(CPM_FULL, ...) instead.

3. gettable.?pp -> codepage.?pp

garry 27.09.2009 22:54:30 +0300 - build 1147

1. Mantis#0001017 A more common solution is done, i.e. codepage support is checked in both editor and viewer, and not only at autodetection, but also at codepage retrieval from cache;

2. A small refactoring connected with recode tables: function names and replacing Table -> CodePage;

3. From now, const UnicodeString& UnicodeString::SetData(const UnicodeString &strCopy) does not crash Far when provided with NULL;

4. TechInfo #80 (See build #1019).

drkns 27.09.2009 08:56:45 +0200 - build 1146

1. Take into account that if prefix \\?\ is used in paths then Windows' AI which replaces '/' to '\' is switched off, so you have to do it yourself.

2. At start, inner strCurrentDirectory is initialized with process' current directory, for those /e and /p to work.

drkns 27.09.2009 01:05:56 +0200 - build 1145

1. From Tim Sobolev: own implementation of ConvertNameToFull.
GetFullPathName problems must have been fixed now: special names (nul, con etc.), points/spaces at the end of the names etc.

2. From now, Far doesn't use SetCurrentDirectory in folder navigation.
The bonuses follow:
- walking on folders deeper than MAX_PATH;
- entering folders with trailing points, spaces and other nightmares;
- folder opened on panel is not blocked from outer deletion;
- et cetera.
Accordingly, bugs are expected to appear. Be careful.

For OEM plugins, though, the current directory is set before calling their exported functions, for compatibility.

For Unicode plugins nothing is set.
Thus, some careless plugins can malfunction somehow.
It's still not too late to repent and start using FCTL_GETCURRENTDIRECTORY.

svs 26.09.2009 19:07:24 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
from: max rusov
PluginW.pas: Added RegExp support

svs 26.09.2009 19:07:24 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
from: max rusov
PluginW.pas: Added RegExp support.

zg 26.09.2009 17:05:26 +0200 - build 1144

1. Continue Mantis#0000921: Problems with ECTL_SAVEFILE.

2. When `save as` at editor was invoked, the editor and console titles didn't
show new filename at once.

zg 26.09.2009 14:24:24 +0200 - build 1143

1. Fix of #1136 for non-existing codepages.

zg 25.09.2009 22:59:27 +0200 - build 1142

1. Mantis#0000921: Problems with ECTL_SAVEFILE.

svs 25.09.2009 18:00:55 +0300 - build 1141

1. Mantis#0001068: Two "R" hotkeys in replace dialog.

2. Mantis#0001063: List of all user-defined macros is added to built-in help.

3. Mantis#0001066: [x] Pick up the word in editor

4. Updated Help on RegExp`s.

zg 25.09.2009 16:25:35 +0200 - build 1140

1. At replace with regexps, if parentheses are not found, they are replaced to an empty string.

zg 24.09.2009 23:52:29 +0200 - build 1139

1. f6 in editor and viewer keeps current codepage.

zg 24.09.2009 23:40:59 +0200 - build 1138

1. Now plugins in Viewer/Editor can set codepages.

zg 24.09.2009 22:19:38 +0200 - build 1137

1. In regexp-enabled replace, one can refer from replace string to parentheses in search string: $0-$9,$A-$Z.
any other sequence $* is replaced with *.

2. Replace confirmation dialog displays string actually found, instead of regexp.

zg 24.09.2009 21:02:09 +0200 - build 1136

1. The simplest ESPT_CODEPAGE implementation.

zg 24.09.2009 19:03:28 +0200 - build 1135

1. RegExp API

RegExpControl(HANDLE hHandle, int Command, LONG_PTR Param)

Command:

RECTL_CREATE - hHandle - 0.
Param - HANDLE*, that receives the regexp HANDLE.
On error returns FALSE and Param=INVALID_HANDLE_VALUE.
RECTL_FREE - hHandle - HANDLE returned by RECTL_CREATE.
RECTL_COMPILE - hHandle - HANDLE returned by RECTL_CREATE.
Param - pointer to regexp string.
RECTL_OPTIMIZE - hHandle - HANDLE returned by RECTL_CREATE.
RECTL_MATCHEX - hHandle - HANDLE returned by RECTL_CREATE.
Param - pointer to RegExpSearch.
RegExpSearch:
Text - string.
Position - string position.
Length - length of string.
Match - parentheses.
Count - number of parentheses.
Reserved - must be zero.
RECTL_SEARCHEX - hHandle - HANDLE returned by RECTL_CREATE.
Param - pointer to RegExpSearch.
RECTL_BRACKETSCOUNT - hHandle - HANDLE returned by RECTL_CREATE.

svs 22.09.2009 21:07:01 +0300 - build 1134

1. Macro: Mantis#1064
msgbox("01") displays "1" in header, instead of "01".
The rest conforms the specification (see build 1127#6).

drkns 20.09.2009 23:50:53 +0200 - build 1133

1. While copying/moving multiple files, if destination name has no trailing slash and destination itself doesn't exist, then Far shows an additional query, whether destination means folder or file.

zg 19.09.2009 01:53:37 +0200 - build 1132

1. Macros which had been launched by plugin from ProcessSynchroEvent didn't run always.

chupakabra 17.09.2009 13:24:00 +0200 - build 1131

1. An addition to build 1130.

svs 17.09.2009 12:40:39 +0300 - build 1130

1. from Alexey Samlyukov:
UserMenu draws long submenu captions incorrectly (if they don't fit the screen)

chupakabra 14.09.2009 19:03:00 +0200 - build 1129

1. SELF_TEST(code) macro, intended to automatic code testing. The code is launched when debug version starts.
Module pathmix is appended with testing procedure for some functions.

zg 15.09.2009 20:52:39 +0200 - build 1128

1. gcc build.

2. gcc warnings.

svs 15.09.2009 20:37:40 +0300 - build 1127

(lots of formatting - spaces to tabs)

1. Macros are loaded after plugins (it is necessary for successive changes in macro engine)

2. keys.hpp: KEY_MACRO_U_BASE - place is reserved for Mantis#18 and Mantis#466

3. EnumRegValueEx() - added an argument: the type of enumerated value

4. Macro: Menu.Value - contains current menu item text as it is displayed on screen (w/o &)

5. Macro: added type double
Was __int64 and wchar_t*, now double is added. Actually, there's nothing to say more, but:
* fraction part divider is `.' (point);
* there's no functions like sin, cos, tan, etc. - this is for Mantis#0000466 and Mantis#0000018;
* the number occupies 8 bytes in memory;
* registry constants (branch "KeyMacro\Const") with REG_SZ type (according to (2) Far translates them to double on launch) this is lame (maybe it would be smart to store them as REG_BINARY);
* double-to-string translation follows the format "KeyMacro/CONVFMT:REG_SZ" (default is "%.6g")

6. Macro: the specification of "operations".
Starting from definitions::
* Int - an integer number;
* Dbl - a floatiog-point number;
* StrInt - string, which can be fully translated to Int;
* StrDbl - string, which can be fully translated to Dbl;
* Str - any other string, actually, the set of chars.
According to these definitions, string to number translation and calculation of result takes place where possible. Below are tables showing the results of those operations:
+         |B.Int    B.Dbl  B.StrInt  B.StrDbl   B.Str
----------+------+--------+---------+----------+------
A.Int     |Int      Dbl    Int       Dbl        Str
A.Dbl     |Dbl      Dbl    Dbl       Dbl        Str
A.StrInt  |Int      Dbl    Int       Dbl        Str
A.StrDbl  |Dbl      Dbl    Dbl       Dbl        Str
A.Str     |Str      Str    Str       Str        Str
Here Str means concatenation of two operands.

- * / %   |B.Int    B.Dbl  B.StrInt  B.StrDbl   B.Str
----------+------+--------+---------+----------+------
A.Int     |Int      Dbl    Int       Dbl        A.Str
A.Dbl     |Dbl      Dbl    Dbl       Dbl        A.Str
A.StrInt  |Int      Dbl    Int       Dbl        A.Str
A.StrDbl  |Dbl      Dbl    Dbl       Dbl        A.Str
A.Str     |A.Str    A.Str  A.Str     A.Str      A.Str
Here A.Str means that the value of operand A is returned.

For binary operations, Dbl or StrDbl operands are translated to Int beforehand.

Op        |B.Int    B.Dbl  B.StrInt  B.StrDbl   B.Str
----------+------+--------+---------+----------+------
A.Int     |Int      Int    Int       Int        A.Str
A.Dbl     |Int      Int    Int       Int        A.Str
A.StrInt  |Int      Int    Int       Int        A.Str
A.StrDbl  |Int      Int    Int       Int        A.Str
A.Str     |A.Str    A.Str  A.Str     A.Str      A.Str
Here "Op" is | & ^ << >>

In comparison operations (==, !=, <, <=, >, >=), the operands are translated (if possible) and compared.
In logical OR and AND the operands are compared as is, strings are not translated to StrInt and StrDbl, instead they are checked on non-emptiness.

7. Macro: Editor.SelValue - the content, like Far puts block into clipboard (text block with crlf at line ends)

8. Macro: function "Menu.Select" looks like "N=Menu.Select(S[,N[,Dir]])" - the 3rd parameter is added, the direction of search, Dir:

* 0 - from the beginning to the end of list;
* 1 - from the current position to the beginning;
* 2 - from the current position to the end of menu items list.

9. Help understands macros <!Macro:Vars!> and <!Macro:Consts!>, look for `"// for <!Macro:Vars">' in lng files - this is the output format

10. If Far is given keys /e or /v, the macros from the following regions are not loaded: Shell, Search, Disks, MainMenu, InfoPanel, QviewPanel, TreePanel, FindFolder

11. Mantis#0001057: Far Manager version 1.75 build 2605, x86 Crash when choosing Alt+F1/Alt+F2 -> Process List
If plugin has nonsense in registry value StartPanelMode, then panel mode 0 is forced
(this hack is for a while, until static array is removed)

zg 15.09.2009 18:23:10 +0200 - build 1126

1. Mantis#0001058: The range for character class doesn't work for Cyrillic characters
RegExp::Optimize cuts Unicode to first 256 characters.

drkns 14.09.2009 19:19:36 +0200 - build 1125

1. The file attributes change could lead to crash.

chupakabra 14.09.2009 19:03:00 +0200 - build 1124

1. Mantis#0001055 & Mantis#0001056: Problems with changing to root folder (Ctrl+\).

drkns 13.09.2009 23:57:35 +0200 - build 1123

1. Applying `#pragma once' instead of `include guard'. This must improve the compilation time.

drkns 13.09.2009 20:12:26 +0200 - build 1122

1. From forum: crashes if switching to filepanel using menu when infopanel/qview is opened.

t-rex 13.09.2009 14:49:26 +0200 - build 1121

1. Somebody has switched off regexp in replace.

2. Don't forget, include's are case sensitive in some OS'es.

drkns 13.09.2009 11:24:41 +0200 - build 1120

1. Mantis#0001054: The disk free size is displayed incorrectly.

chupakabra 12.09.2009 22:53:00 +0200 - build 1119

1. Changes in API: farConvertNameToReal() always returns required buffer size (similar to farGetPathRoot())

drkns 12.09.2009 19:04:40 +0200 - build 1118

1. The next divide & conquer:
- ACHTUNG! - minimal supported sdk is now 7.0 for vc, w32api-3.13 for gcc;
- sdkpatches.hpp is divided into separate parts for vc and gcc;
- removed macro's i64() and ui64(), for vc is `ll'- and `ull'-capable too;
- __try and __except are replaced to macros in gcc only;
- removed some more junk from headers.hpp and pluginold.hpp

2. Dialog class is made more lightweight.

3. macro: itoa() failed on 64-bit numbers.

chupakabra 11.09.2009 01:51:00 +0200 - build 1117

1. gcc build is corrected.

2. makefile_gcc: debug version is not optimized; dependences are corrected (make -j worked incorrectly)

chupakabra 11.09.2009 01:02:00 +0200 - build 1116

1. At plugin panel, search from root folder worked incorrectly.

2. Added TRY EXCEPT to FindFiles::WriteDialogData().

3. FindFile code is changed a bit for simplification.

drkns 10.09.2009 23:12:56 +0200 - build 1115

1. scantree is appended with recursive links checking.

2. Hard links creation didn't work in win2k.

3. Mantis#0001049: Error in file search using %PATH%.

chupakabra 09.09.2009 16:47:00 +0200 - build 1114

1. GetPathRoot() is implemented via ConvertNameToReal().

chupakabra 09.09.2009 06:30:00 +0200 - build 1113

1. Mantis#0001039: the option "Del removes blocks in edit controls" wasn't stored.

chupakabra 09.09.2009 05:40:00 +0200 - build 1112

1. Corrected gcc and x64 builds.

chupakabra 09.09.2009 05:01:00 +0200 - build 1111

1. ConvertNameToReal() now uses NtQueryObject() on Windows XP.
Old code with symlinks crawling is completely deleted.

drkns 08.09.2009 22:18:01 +0200 - build 1110

1. Creation of folder with name ending with point by F7 didn't work.

chupakabra 08.09.2009 21:54:00 +0200 - build 1109

1. For ConvertNameToRealModern() it's we take into account that input path can exist partially.

2. UnicodeString::Replace(): we assume that Data can point to data in the string itself.

3. pathmix: a few more functions for path processing.

chupakabra 07.09.2009 18:25:00 +0200 - build 1108

1. Mantis#0001037: hangup inside ConvertNameToReal().
From now, function GetFinalPathNameByHandle() is used if possible, instead of fuss around symlinks.

2. Useful methods for UnicodeString: Replace, Insert, Remove, etc.

t-rex 06.09.2009 22:57:09 +0200 - build 1107

1. Mantis#1038: Incorrect subdirectories location in tree panel.

chupakabra 05.09.2009 04:49:00 +0200 - build 1106

1. VMenu: place for right horizontal scroller is reserved only if needed.
This solves an issue with plugins which count listbox widths as ("max string length" + 4).

zg 04.09.2009 16:44:34 +0200 - build 1105

1. After 1103, search consumed two-fold CPU time amount.

t-rex 04.09.2009 00:16:00 +0200 - build 1104

Just in case:

1. At editor search with “[x] Select found”, the cursor is set on the first letter of found text, like in search without the option; that's a common way, in general.
Thus, the problem with regexp search with this option is gone, also is removed an excessive piece of code with ugly AI, which in addition could cause miscellaneous problems.

drkns 03.09.2009 20:01:23 +0200 - build 1103

1. In search by content, the status line shows percentage for the current file.
Also, its redraw interval is now equal to the rest of ones everywhere.

svs 03.09.2009 18:07:57 +0300 - build 1102

1. Mantis#0000547 is corrected:
"...Open FarRus.hlf with F4,
F7, search for 3, then some other 3\d
and check [x] “Regular expressions”.
find it, press Shift+F7 - ok, it goes on searching.

Check [x] “Select found”, the search goes ok at the first time, but Shift+F7 doesn't work..."

The problem code is commented out until examination; it marked with "CHECK!!!: for...".

chupakabra 03.09.2009 15:36:00 +0200 - build 1101

1. Mantis#0001002: crash in VMenu when all elements are hidden.

2. Added synchronization in VMenu::GetMaxLineWidth().

t-rex 31.08.2009 22:29:55 +0200 - build 1100

1. We continue Mantis#1025, there has been yet another inner limitation on descript.ion record length.

drkns 31.08.2009 19:37:49 +0200 - build 1099

1. Mantis#0001029: Unneeded repeated setting of attributes.
The funniest thing is that the "don't touch attributes/date/time if they weren't changed" logic has been present, but broken with IsFileWritable.

2. In the same place, an exasperating flaw is removed: (sym)links date/time can now be changed.

3. Milliseconds can be changed in time field.

4. FILE_FLAG_BACKUP_SEMANTICS moved into apiCreateFile.

t-rex 29.08.2009 23:11:42 +0200 - build 1098

1. The update of previous build.

drkns 29.08.2009 21:53:31 +0200 - build 1097

1. Mantis#0001026: The “Search” button in viewer was broken.

drkns 29.08.2009 00:51:58 +0200 - build 1096

1. A few memset's removed.

2. Help files: codepage names at section “FileSaveAs”.

chupakabra 28.08.2009 18:28:00 +0200 - build 1095

1. FCTL_REDRAWPANEL could return FALSE in case of success

svs 28.08.2009 19:14:22 +0300 - build

1. Help translation from Igor Yudincev

svs 28.08.2009 19:01:31 +0300 - build 1094

1. Mantis#0001021: 'Select found' checkbox state is saved,
  same for "RegExp"

2. Mantis#0000872: RegExp support in Editor and Viewer
  from Igor Yudincev
  By now, RegExp option in Replace dialog is inavailable (TBD)
  A comment is added to Edit::Search():
// Q: what's more important: dialog option or RegExp option?

([x] “Case sensitive” and /regexp/i are meant)

3. Same for RegExp option in viewer — R/O so far (TBD)

4. Help: "@RegExp. The beginning" - there's a chapter, it needs to be changed carefully as development proceeds.
  "RegExp" checkbox state is saved now, like in editor.

  ATTENTION! Everything described in "@RegExp" chapter doesn't work by now (nevertheless, it will!)

zg 28.08.2009 16:10:30 +0200 - build 1093

1. Mantis#0001025: FAR v2.0.1091 (and v2.0.981) cuts records in descript.ion when F5 or F6, up to 260 characters.

2. gcc warnings.

t-rex 27.08.2009 20:09:59 +0200

1. Hungarian lng update from Far Hunor.

drkns 27.08.2009 19:54:05 +0200 - build 1092

1. Now symlinks can be created in 2000/XP/2003 too.
  Of course, it doesn't mean they'll work there.

2. Another addition to #0001012.

3. In read-only file rewrite confirmation dialog, the button caption depends on operation(overwrite/append).

drkns 26.08.2009 20:02:15 +0200 - build 1091

1. Mantis#0001019: The "Encrypted" attribute is set at folder copy/move.

2. Mantis#0001012: "In 1090, sometimes during copy/move there's a feeling that the name of new copied file appears when old file progressbar is still at 100%."

drkns 25.08.2009 20:32:14 +0200 - build 1090

1. Whole copying visualization is moved to (almost) separate class.
  Progressbar redraw and wrong filename displaying bugs must have disappeared (Mantis#0001012).
  Also, a bunch of garbage is removed from copier.

2. As GetUserNameExW is used everywhere, let's reduce the code by linking it statically.

3. Quick preview panel had been reread and redrawn on every cough.

4. For file symlinks, "" is shown in panels at Size column.

5. MkSymLink() moved to flink.cpp.

svs 25.08.2009 17:20:04 +0300 - build 1089

1. Mantis#0000970: descript.ion change date does not change if there  were no changes
  from Maximus

svs 24.08.2009 19:15:12 +0300 - build 1088

1. Info panel missed a space after FS type.

2. "Memory" label overlayed panel border.

3. Mantis#0000859: RFE: Show UserName@Domain on the information panel
  Let's use the 8-th type, "UserName@Domain" (for local user, or there are errors when receiving a user... it will be like now: "user")
  + some formatting in InfoList::DisplayObject()

  in the largest accounts, visualization form has to be assigned (dialog? techinfo?).

drkns 22.08.2009 00:44:39 +0200 - build 1087

1. Attributes dialog shake-up. Downsizing, optimization, formatting, as usual.
   Bonuses:
   - a few tiny bugs are fixed;
   - reparse point editing possibility is added. Highly experimental.

2. Corrections in reparse points creation.

3. FAR_USE_INTERNALS are removed from wrapper.

4. Progressbars redraw timeouts are now controlled with a single variable.

5. Translation for "Standard association".

svs 19.08.2009 11:42:58 +0300 - build 1086

1. Mantis#0000905: Changes in "eval"
   eval("",1) variant returns error 12 ("Zero-length macro")
   Considering empty macro sequences illegal.

svs 17.08.2009 12:26:34 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
    from: max rusov
      PluginW.pas: FAR_USE_INTERNALS are removed

drkns 16.08.2009 09:05:05 +0200 - build 1085

1. gcc.

drkns 15.08.2009 20:13:55 +0200 - build 1084

1. Corrections in previous build.
   pointer_array is replaced with TPointerArray.

drkns 14.08.2009 23:38:43 +0200 - build 1083

1. Plugin selection for "SetFindList" and "prefix" is completed, more or less.
   Localization of settings dialog.
   All plugin selection menus are off by default.

svs 14.08.2009 11:51:50 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
    from: max rusov
      PluginW.pas: x64 support is added. Tested under FreePascal 2.3.1

t-rex 12.08.2009 12:01:41 +0200 - build 1082

1. From Evgeny Zhirnov: Mantis#1006: Add "explicit" to UnicodeString::UnicodeString(size_t, size_t=0) constructor.

svs 11.08.2009 18:55:01 +0300 - build 1081

1. Ctrl-Home/End on numeric keypad do not work.
   from: Alexey Samlyukov

drkns 09.08.2009 17:21:34 +0200 - build 1080

1. If a single object was selected on panel and cursor was on "..", then PanelInfo.SelectedItemsNumber contained 0.

