This is an old revision of the document!

Recent Version History

This is a list of changes for each release of WinSCP. See also project history.

5.3 (Not Released Yet)

2013-04-07

  • Prototype of WebDAV sessions. Thanks to Michael Lukashov. 160

Advertisement

5.2.1 beta (Not Released Yet)

2013-04-17

  • Not showing disconnect error message before reconnecting inactive session to upload edited file.
  • Changing default tab size to 8.
  • Renamed WinSCP .NET assembly to winscpnet.dll to avoid conflicts with winscp.exe. 945
  • Command Clear caches clears also cache of secondary shell session.
  • Change: Not trying to kill WinSCP process from .NET assembly Session finalizer.
  • Calculating hot track color of path label to be in contrast with background. 992
  • Simplifying overwrite confirmation prompt“: 993
    • Grouping advanced commands to drop down menu under button with related common command.
    • Added thousands separators to sizes.
  • Bug fix: It was not possible to pass sequence of consecutive delimiters when skipping to the next ”word“ in path input boxes.
  • Bug fix: Opened/Closed folder icons on Location profile dialog were swapped.
  • Bug fix: Build script was not working on 64-bit.
  • Bug fix: Build script was calling non-existing target clean.
  • Bug fix: Taskbar button does not flash, when message pops up, while WinSCP is on background. 988
  • Bug fix: Custom command pattern !/ had incorrect value when executed on existing secondary shell session just after directory change. 989
  • Bug fix: Wrong background of path labels with disabled themes. 990

Advertisement

5.2 beta

2013-04-07

  • New toolbar icons and 16×16 icon. 290
  • Workspace can be saved. 776
  • Using term Site instead of Stored session.
  • Sites import from Filezilla. 61
  • When upgrading, setup offers to restart Windows Explorer (or other applications), when drag&drop shell extension needs to be updated. 686
  • While installing, setup offers sites import from PuTTY or Filezilla.
  • Command to Import/restore configuration from INI file.
  • On first edit, offers configuration of user’s custom text editor as default editor.
  • Simplified Transfer options dialog:
    • The dialog is shown only on the first transfer, when using drag&drop, unless user explicitly opts to show it the next time.
    • Moved the New and updated files only option to Transfer settings.
    • Moved the Do not show this dialog box again checkbox below buttons.
    • Hiding Transfer each file individually when not applicable.
    • Icon to distinguish Copy/Move operation.
    • Do not show this dialog box again implies saving transfer settings
  • Improved working with transfer settings and presets:
    • Not showing default Text mode file mask in Transfer settings box.
    • Showing even default Binary Transfer type in Transfer settings box.
    • Removed ”Exclude temporaries“ transfer settings preset.
    • Added ”Newer and updates files only“ transfer settings preset.
    • Reorganized Transfer settings drop down menu, including new Presets header.
    • Hiding unusable presets from Transfer settings drop down menu.
    • Merged configuration of default transfer settings and transfer settings presets.
  • Improved user interface:
    • Using ”Download“ and ”Upload“ commands to distinguish copying to local and remote directories respectively.
    • Using ”Download and Delete“ and ”Upload and Delete“ commands instead of ”Move“ to distinguish moving files to local and remote directories respectively.
    • Optionally keeping completed transfers in queue list for configurable period of time. 584
    • Replaced file operation toolbar, bottom hot key bar and upload/download toolbar with specialized local and remote file toolbars to allow manipulating local/remote files using mouse, without need to change panel focus (Commander interface only).
    • Improved incremental search for sites on Login dialog: 984
      • Text is searched anywhere in the site name, not only at the beginning.
      • Next/previous matching sites can be searched for.
      • Search text is shown below site list.
    • Displaying queue status on taskbar button. 151
    • Replaced Selection toolbar with specialized local and remote Selection toolbars (Commander interface only).
    • Added label to the most important toolbar buttons. They can be optionally hidden including already existing labels like Command-line label (Commander interface), Address label (Explorer interface) and New session tab label.
    • Moved Commands toolbar of Commander interface first.
    • Find files command moved from Commands toolbar to Remote Navigation toolbar and is now available regardless of focused panel.
    • Renamed Add to Bookmarks command to Add Path to Bookmarks.
    • Removed Close toolbar button from Editor and Log windows.
    • Session menu and toolbar reorganized.
    • Increased height of path labels (Commander interface only).
    • Single-file queue transfers occupy only single line in background transfer queue list.
    • Increased height of background transfer queue list row.
    • User interface icons are shown also in Setup.
    • Turned off automatic stretching of Transfer settings toolbar.
    • Column Attr is hidden by default on local panel.
    • Default (installation) width of the Commander interface is larger, if the screen resolution allows it.
    • Added Download and Download and Delete buttons on Commands toolbar of Explorer interface.
    • Moved Panels node on Preferences dialog to the top-level to reduce nesting.
    • Horizontal line above file background transfer queue list splitter to highlight its presence.
    • Disabling whole Once Empty submenu, when queue is empty.
    • Using own context menu for local files (similar to existing context menu for remote files) by default. 163
    • First column in Editor list in preferences is editor name.
    • Icons are no longer dimmed with Office XP theme.
    • Tab with disconnected session is greyed.
    • Removed SSH Protocol version from Site tooltip.
    • When file cannot be loaded using selected encoding in Internal editor, error is shown. On error loading default encoding, attempts to load using another encoding. 971
    • On main window views without focus respond to mouse wheel. 846
  • Whole site folder can be opened at once. 424
  • Change: Session from commandline and/or from jump list is opened by default using existing WinSCP instance. 769
  • Transfer resume support can be controlled in scripting (-resumesupport switch of file transfer commands) and .NET assembly (TransferOptions.ResumeSupport property). 834
  • Transfer progress feedback using Session.FileTransferProgress event. 818
  • For special cases, it is possible to accept any SSH host key or any SSL certificate (with warning) using -hostkey=* in scripting and SessionOptions.GiveUpSecurityAndAcceptAnySshHostKey or SessionOptions.GiveUpSecurityAndAcceptAnySshHostKey in .NET assembly. 815
  • Site Manager command. 855
  • Writing INI file to user’s profile, if program path is not writable. 817
  • Any mouse or keyboard input cancels or resets reconnect countdown.
  • Increased default reconnect interval for idle sessions to 9 seconds.
  • Additional F5 shortcut to reload file in internal editor. 986
  • Reconnect interval for idle sessions can be configured independently.
  • Only shortcut to WinSCP itself is created in Start menu. 616
  • In Commander interface, the keyboard shortcuts F3 and F5 can optionally have the same meaning as in Windows Explorer (Find File and Refresh).
  • Changing session port number on Login dialog to well know port, updates protocol automatically.
  • Reporting an error when reading of local directory fails during operation. 952
  • Retrospectively logging previous script records when session is starting.
  • When SFTP connection is rejected, knock FTP port. If open suggest using FTP protocol.
  • Desktop shortcut to open site folder can be created.
  • Dropped support for Windows 2000. Minimal supported version is Windows XP.
  • Using GiB scale for large file sizes. 913
  • Option to reconnect disconnected non-active session, when saving file opened from that session. 917
  • Use of MLSD FTP command is configurable. 927
  • Printing transfer progress for small files in bytes in scripting. 964
  • Before opening session using command-line parameter in scripting, warning is printed, that this is deprecated function.
  • Allowing host key import for SSH protocols only.
  • Export to INI file moved from Preferences to Login dialog.
  • Added larger values to initial offer of speed limits. 987
  • New !P pattern to include process ID into session log path.
  • Logging file timestamps when transferring using SFTP protocol.
  • Workaround for servers that do not acknowledge file transfer. 976
  • Bug fix: Scripting command synchronize sometimes did not announce that there is nothing to synchronize.
  • Bug fix: First Authenticate log entry was trimmed temporarily.
  • Bug fix: Separators on toolbars were showing ”E“ hint.
  • Bug fix: Incorrect file icon overlay positioning.
  • Bug fix: Not drawing own shortcut overlay over shortcut icons.
  • Bug fix: Records on Authentication window were temporarily truncated.
  • Bug fix: Selection on file panel was not visually updated when panel received/lost focus.
  • Bug fix: Panel path label was not deactivated when focus moved from directory tree to file transfer queue.
  • Bug fix: Download command was not highlighted as default in remote directory context menu when Operation to perform on double-click was set to Copy.
  • Bug fix: Text mode transfers should not be resumed FTP protocol. 965
  • Bug fix: No error is shown in Internal editor, when file cannot be loaded using selected encoding. 971
  • Bug fix: Failure when disposing Session of .NET assembly in process running with restricted privileges.
  • Bug fix: open command record in logs with masked-out password did not contain the command name.
  • Bug fix: Pointless attempt to update source file timestamp, when uploading with FTP protocol.
  • Bug fix: Preserve timestamp checkbox was not available for uploads with FTP protocol.
  • Bug fix: Failure when server does not acknowledge file upload with FTP protocol. 982
  • Bug fix: Failure when creating local directory. 983
  • Bug fix: When user cancels connection, authentication window is not closed.

Advertisement

5.1.5 (Not Released Yet)

2013-04-14

  • Back-propagated some improvements and fixes from 5.2 beta and 5.2.1 beta releases:
    • New !P pattern to include process ID into session log path.
    • Logging file timestamps when transferring using SFTP protocol.
    • Workaround for servers that do not acknowledge file transfer. 976
    • Bug fix: Failure when disposing Session of .NET assembly in process running with restricted privileges.
    • Bug fix: open command record in logs with masked-out password did not contain the command name.
    • Bug fix: Pointless attempt to update source file timestamp, when uploading with FTP protocol.
    • Bug fix: Preserve timestamp checkbox was not available for uploads with FTP protocol.
    • Bug fix: Failure when server does not acknowledge file upload with FTP protocol. 982
    • Bug fix: Failure when creating local directory. 983
    • Bug fix: When user cancels connection, authentication window is not closed.
    • Bug fix: Build script was not working on 64-bit.
    • Bug fix: Build script was calling non-existing target clean.
    • Bug fix: Taskbar button does not flash, when message pops up, while WinSCP is on background. 988
    • Bug fix: Custom command pattern !/ had incorrect value when executed on existing secondary shell session just after directory change. 989

5.1.4

2013-02-18

  • SSL core upgraded to OpenSSL 1.0.1e.
  • Not requiring the .NET assembly to exist in file. 970
  • Not considering 3xx error code an error for post-login FTP commands. 972
  • Bug fix: Failure after system-wide change. 962
  • Bug fix: Issuer and Subject were swapped on Certificate verification prompt. 967
  • Bug fix: Traversed subfolders are incorrectly included in find results. 968
  • Bug fix: Wrong color indicator on session tab when session was not switched by clicking on the tab. 974
  • Bug fix: Failure when auto remote directory refresh was triggered during operation initiated by drag&drop. 975
  • Bug fix: Wrong timezone offset was applied with FTP protocol. 977
  • Bug fix: It was not possible to preserve timezone offset of 24 hours and greater in stored session.
  • Bug fix: Wrong timestamp conversion with FTP protocol. 978
  • Bug fix: Error in .NET assembly when temporary path contains exclamation mark. 980
  • Bug fix: Indefinite chain of errors when XML logging fails.

Advertisement

5.1.3

2013-01-06

  • Masking out password in open command in logs. 957
  • Location of XML log file can be configured in .NET assembly.
  • Bug fix: Several flaws in file mask validation on Edit mask dialog.
  • Bug fix: Selecting and filtering files using exclude mask only was not working. 951
  • Bug fix: Failure to open session in scripting from command line was not reported in exit code. 953
  • Bug fix: Session settings TunnelHostKey was not working. 948
  • Bug fix: Path word-breaking was not working on most dialogs. 954
  • Bug fix: Timeout while waiting for user to enter password with FTP protocol. 955
  • Bug fix: Newly created local directory is not opened with synchronized browsing. 956
  • Bug fix: Cannot change local folder anymore after system-wide change, when local tree is hidden. 959
  • Bug fix: Failure in Session.Open on x64 systems. 960
  • Bug fix: Failure when starting as user without desktop. 961

5.1.2

2012-12-02

  • Not poping up progress window when application is minimized. 943
  • Ensuring uniqueness of the XML logging path in .NET assembly. 944
  • Bug fix: Never create Quick Launch icon on Windows 7 and newer also from Preferences dialog.
  • Bug fix: Failure when reconnecting main session while transferring files in the background. 939
  • Bug fix: Hangs when stopping watching for changes in local folder. 915
  • Bug fix: Failure when reporting usage statistics.
  • Bug fix: Failure when closing application, while checking for application updates.
  • Bug fix: Session and directory information was not shown on tray icon tooltip. 949

5.1.1

2012-11-06

  • New VeriSign publisher certificate used for signing binaries.
  • Including timezone information in a session log file.
  • Installer creates desktop icon for all users by default.
  • On Windows 8, installer creates only main icon on the Start screen.
  • Added commands to execute PuTTYgen and Pageant to Tools menu on Login dialog.
  • Allowing multiple fingerprints in SessionOptions.SshHostKeyFingerprint and SessionOptions.HostSslCertificateFingerprint. 932
  • Logging FTP raw directory listing on Normal logging level.
  • Raw session setting TunnelHostKey to verify tunnel session hostkey. 938
  • Bug fix: Failure when saving file opened from closed session. 918
  • Bug fix: Invalid executable signature. 924
  • Bug fix: Never create Quick Launch icon on Windows 7 and newer.
  • Bug fix: Notifications of completed operation (such as balloon notifications), when application is minimized, were not working.
  • Bug fix: Hangs when showing Log windows while logging in. 925
  • Bug fix: Retrieving file stats using non-absolute path may fail with FTP protocol. 930
  • Bug fix: Error retrieving file stats using full path with FTP protocol. 926
  • Bug fix: Treat timestamps in FTP MLSD/MLST results as UTC. 923
  • Bug fix: Failure when FTP server returns ”parent“ directory is MLSD directory listing. 922
  • Bug fix: Background transfer queues were not re-arranged with the sessions, when changing session tab order. 928
  • Bug fix: Incorrect file was renamed when changing remote directory using directory tree while renaming file. 933
  • Bug fix: Incorrect file list/directory tree splitter color (with themes turned off).
  • Bug fix: Command on Console windows is not saved to history, when executed using Enter key. 934
  • Bug fix: Could not use .NET assembly from path with special characters (like #). 935
  • Bug fix: On re-installation, drag&drop shell extension was sometime not activated.
  • Bug fix: Failure when canceling password prompt with FTP protocol. 936
  • Bug fix: Empty directory listing was loaded twice with MLSD with FTP command. 937

Advertisement

5.1

2012-09-24

  • Bug fix: Local file/folder got recycled when dropped on folder on the same panel. 911

5.0.9 RC

2012-09-05

  • When saving current session over the original stored session, save password by default unless it changed and do not prompt for overwrite.
  • Values of .NET assembly properties Session.SshHostKey and Session.SslCertificate are validated for correct syntax.
  • Change: Not keeping name of an original stored session for edited ad-hoc sessions.
  • Change: In .NET assembly SessionOptions class property SshHostKey renamed to SshHostKeyFingerprint, SshPrivateKey to SshPrivateKeyPath and SslCertificate to SslHostCertificateFingerprint.
  • Values of .NET assembly SessionOptions class properties Timeout and PortNumber are validated.
  • If FTP connection requires password, prompt immediately, without reconnecting. 653
  • Session log includes all script console output, including local errors. 910
  • Method Session.EscapeFileMask added. 901
  • Bug fix: Ad-hoc sessions were added to the jump list. 894
  • Bug fix: Icon on properties dialog was rendered with session color on background.
  • Bug fix: Failure after system wide change. 899
  • Bug fix: Tray icon was not restored after explorer/taskbar restart. 898
  • Bug fix: Session.ListDirectory did not report fatal errors. 900
  • Bug fix: External IP address of the server is not used when provided IP address is automatically detected as unroutable. 904
  • Bug fix: Error connecting over SOCKS proxy with FTP protocol. 907
  • Bug fix: Failure when exiting with default configuration. 908
  • Bug fix: Error when listing file with MLST FTP command failed. 905
  • Bug fix: Error retrieving file stats, if FTP server returns full file path in MLST response. 906

5.0.8 RC

2012-08-03

  • SSL core upgraded to OpenSSL 1.0.1c.
  • Drag & drop to re-order session tabs. 862
  • Local files can be dragged to session tabs for upload. 865
  • Remote files can be dragged to session tabs for duplication. 884
  • Color icon on session tab. 863
  • FTP passive mode IP address is substituted with connection address automatically when passive mode address is unroutable. 883
  • Contents of opened internal editors is automatically backed up, when application is abruptly closed. 886
  • Session color menu is available on session tab context menu.
  • Filter command added to address toobars and context menu of file panels. 732
  • Lock toolbars command added to context menu of file panel toolbars. 754
  • Added Session.CreateDirectory and Session.RenameFile methods to .NET assembly. 822 833
  • Added Session.Abort method to .NET assembly. 890
  • Change: Scripting command rm and .NET assembly Session.RemoveFiles method can remove directories as well. 887
  • Postponing upload of modified edited remote file to allow the editor finish saving of the file. 870
  • When transfer settings preset selected for transfer or synchronization is changed, the transfer settings are updated to the new preset configuration.
  • Support for directory listing with timestamp format yyyy-mm-dd hh:mm with SCP protocol. 853
  • With scripting exit code is recorded in the session log file.
  • Properties of Session class that cannot be changed after session starts, throw an exception when set.
  • It is possible to set limit to try reconnecting broken sessions using Session.ReconnectTime. 860
  • Change: Remote files are never recycled, unless explicitly enabled. 867
  • UTF-8 byte-order-mask is stripped on FTP upload. 888
  • Keyboard shortcut Ctrl+Alt+F4 for internal editor in Commander interface. 827
  • Keyboard shortcut Alt+Up for opening parent directory. 605
  • Taking tabs into account when calculating column position in an Internal editor. 789
  • Double buffered drawing of session tabs to prevent flicker.
  • Windows 8 compatibility and certification:
    • Not saving random seed file, when run for maintenance task, e.g. during installation/uninstallation, to comply with Windows 8 certification.
    • Other compatibility improvements.
  • Using name of focused file as initial name for a new file. 873
  • When generation of temporary file for .NET assembly fails, meaningful exception is thrown and status of temporary folder is logged to help troubleshooting.
  • Falling back to Virtual folder when looking for an INI file to maintain compatibility with WinSCP 4.x on Windows Vista and newer. 874
  • Parsed directory listing is logged.
  • AES is preferred encryption cipher again. 880
  • Directory listings lacking inode column are supported. 881
  • Dialogs are placed in the center of their parent window.
  • Improved debug logging of .NET assembly.
  • Logging collection of files for synchronization.
  • Beta versions always check for beta versions updates.
  • Bug fix: Restore selection command shortcut changed to Shift+Ctrl+R (it used to have the same shortcut as Automatically refresh directory after operation).
  • Bug fix: ”Operation aborted“ messages were not suppressed.
  • Bug fix: Failure when reconnect failed (generalizing fix). 829
  • Bug fix: Missing icons in jumplist. 854
  • Bug fix: Session.FileExists was failing with ”Recursive calls not allowed“. 852
  • Bug fix: Some UTF-8 encoded files were incorrectly loaded into an Internal Editor. 859
  • Bug fix: Failure when changing active session while background transfer queue list was being updated. 864
  • Bug fix: Main window was not restoring from system tray sometimes. 745
  • Bug fix: Failure was not reported, when opening of secondary shell session to execute remote command failed. 871
  • Bug fix: Hidden files were not dimmed, when Name column was not the first one (including the hidden columns). 872
  • Bug fix: Instruction-only authentication prompts were failed, when predefined password was used in prior prompt already. 877
  • Bug fix: Error when connecting to FTPS servers not supporting SSL session resuming. 879
  • Bug fix: Occasional hang when dialog was opened from an internal editor window. 882
  • Bug fix: Bugs and other three-state session options were logged incorrectly.
  • Bug fix: Switch /xmllog was not working in GUI sessions.
  • Bug fix: Could not connect to SSH server without storing hostkey fingerprint. 889
  • Bug fix: Support for MLSD FTP command was not detected. 891
  • Bug fix: File permissions were not retrieved from MLSD FTP directory listing.
  • Bug fix: Searching messages without associated help page on documentation site was not working.
  • Bug fix: Warning about overriding script options include and exclude by -filemask switch was sometimes shown incorrectly.

Advertisement

5.0.7 beta

2012-05-08

  • Using MLSD/MLST to list directory with FTP protocol, when supported. Thanks to Michael Lukashov. 568
  • UTF-8 support in an internal editor. 78
  • Optionally refreshing file panel in regular intervals. 53
  • If password is not specified on Login dialog with FTP protocol, connection is first tried without password. 653
  • WinSCP can now optionally collect and send to WinSCP team non-personal usage statistics.
  • SSL core upgraded to OpenSSL 1.0.1b.
  • IDE upgraded to Embarcadero C++ Builder XE2.
  • Dropped support for Windows 95/98/ME. Minimal supported version is Windows 2000.
  • Warning is printed on console, when user combines -filemask switch with obsoleted exclude or include options.
  • Embedded GPL licence text did not contain instructions for how to use GPL on your own programs. 800
  • .NET assembly description and consequently type library name modified to start with ”WinSCP" for easier look up.
  • Remembering the last selected stored session on the Login dialog. 760
  • When waiting for external console redirected to a pipe times out, it is suggested to check, if the pipe is being read from.
  • Transfer settings panel moved from Preferences dialog into separate dialog.
  • Layout of Transfer settings dialog improved.
  • Split button is used for Transfer Settings button on Transfer, Synchronize and Keep remote directory up to date dialogs (Windows Vista and newer only).
  • Set defaults command of Login dialog placed more intuitively on drop down menu of Save button (On Windows Vista and newer only).
  • .NET assembly Session class public methods are explicitly locked against concurrent and recursive access.
  • Silently ignoring errors, when implicitly preserving permissions of overwritten file after resumable file upload. 773
  • File mask on Find file window can be edited in Edit mask dialog.
  • Files in directory excluded from file search are excluded from search too. 730
  • Change: Blowfish is preferred encryption cipher. 1
  • Fixed mistakes in MFC building readme file in source code package.
  • 256px icon embedded directly in the executable file.
  • Not considering 3xx error code an error for custom remote commands. 832
  • Double buffered drawing of file panels to prevent flicker. 823
  • Alpha-blended marquee selection on file panels.
  • Hidden columns are reordered to the front, not to interfere with resizing of visible columns.
  • Full row select is by default turned ‘off’ to allow easier selection of files by mouse.
  • Optional full row select in Explorer interface. 792
  • Increased minimal height of directory tree item.
  • On Login dialog, Save button is disabled on Logging tab and Preferences tab and Login button is disabled on Preferences tab, to avoid confusion.
  • Bug fix: When downloading file with SFTP protocol, overwrite confirmation dialog showed cached timestamp of source remote file instead of actual one. 810
  • Bug fix: Shut down once operation completes was blocked by confirmation prompt. 811
  • Bug fix: Redirected output of console interface lacked CR. 812
  • Bug fix: Window flickered when application was activated.
  • Bug fix: Main menu did not open when application was not activated. 813
  • Bug fix: When selecting files by mask, all directories were implicitly selected. 808
  • Bug fix: When finding files, all directories were implicitly found. 840
  • Bug fix: winscp.com did not restore console codepage on exit. 814
  • Bug fix: Failure on SSL session resuming. Thanks to Michael Lukashov. 668
  • Bug fix: Failure on second failed call to Session.Open of .NET assembly.
  • Bug fix: Information about dragged files was generated incorrectly. 828
  • Bug fix: Failure when reconnect failed. 829
  • Bug fix: Exclusion-only file mask on Edit mask dialog was formatted incorrectly.
  • Bug fix: Unicode console output was displayed incorrectly on Windows XP and earlier.
  • Bug fix: Failure when generating valid local file name from name containing more than one invalid character. 836
  • Bug fix: Path label disappears when clicked. 837
  • Bug fix: Authentication prompts with no actual prompt were always failed in scripting. 820
  • Bug fix: Default session settings were not preserved, when set based on loaded stored session. 839
  • Bug fix: When mask wrapped in Edit file mask dialog, it was split into multiple masks.
  • Bug fix: The .NET assembly could not find winscp.exe, when run from network path. 841
  • Bug fix: Incorrect timestamp timezone in XML log and .NET assembly. 843
  • Bug fix: Rare incorrect conversion of line endings. 845
  • Bug fix: Keepalives cause timeouts with FTP protocol. 847
  • Bug fix: Occasional failure while authentication prompt is idle. 848
  • Bug fix: Selected note in directory tree was drawn incorrectly, when not focused in Explorer interface.
  • Bug fix: Temporary file with XML log was not removed with .NET assembly. 849
  • Bug fix: Rare incorrect EOL conversion.

Advertisement

[Older versions] ~~NODOC~~

Last modified: by martin