github fcorbelli/zpaqfranz 65.10
Just about everything

pre-release7 hours ago

zpaqfranz 65.10

DO NOT USE IN PRODUCTION: IT IS STILL TO BE STABILIZED

What was young in 65.9
(ac, xc, their screens, the WinPE) is as young as it was. And what is
new here not yet by many hands on a real keyboard. Try it on folders that can be
lost, and tell what happens.


This is the release of the two panels. A file manager inside
zpaqfranz, small, the same on every platform, that knows what an archive
is:

  • mc: two panels on the file system, side by side, in the way of the
    Midnight Commander. Copy, move, rename, make a folder, delete, with the
    function keys.
  • F1 adds to an archive: what is marked goes into the archive under
    the cursor of the other panel (a new version), or into a new one. A
    small menu: the method, a password.
  • ENTER on an archive is its TUI, F3 its list, F4 its info.
  • A name typed is a search: e, t, c, and the cursor is on the
    first name that begins with etc.
  • * marks by a wildcard (*.cpp, source*), | turns the marks
    over.
  • The commands of zpaqfranz on two folders, from the two panels:
    Ctrl+S is s (the size), Ctrl+V is c (compare), Ctrl+R is r
    (robocopy): first the dry run, then -kill. And a robocopy that cannot
    empty the wrong folder: its destination always ends with the name of
    the source.
  • The drives of Windows, with what they are; the network drives an
    administrator does not see, too.
  • tui, ls and mc on ESX and on the NAS: the builds for old
    compilers have them now.

This document has three parts:

  • Part one: what is new, in short, for everybody
  • Part two: the same things in more detail, for power users
  • Part three: "lo spiegone", how it works inside, and why, for developers

Part one, what is new, for the user

  1. mc: two panels
  2. The function keys
  3. F1: into an archive
  4. A name typed
  5. Marks, one by one or by a wildcard
  6. Two folders: size, compare, robocopy
  7. The drives
  8. tui, ls and mc on ESX and on the NAS
  9. Smaller things

1. mc: two panels

zpaqfranz mc
zpaqfranz mc z:\demo\work z:\demo\backup

Without folders: the current one, on both panels.

 Z:/demo/work/                         | Z:/demo/backup/
    ..                                 |   >..
[ ]>715/                          <DIR>|[ ] old.txt                           3
[ ] docs/                         <DIR>|[ ] work.zpaq                      1763
[ ] src/                          <DIR>|
[ ] 2024_report.txt                2000|
[ ] eco.txt                          77|
[ ] eta.txt                         300|
[ ] etc.txt                        5120|
[ ] main.cpp                      20480|
[ ] photo.jpg                   1048576|
[ ] tool.cpp                       9000|
[ ] tool.h                         1200|
                                       |
                                       |
 3 folders, 8 files                    | 0 folders, 2 files
 715  <DIR>  2026-10-08 18:32:30
1Add 2Rename 3List 4Info 5Copy 6Move 7Mkdir 8Delete 9Sort 0Quit TAB \ ? v65.10d

(As it is on a console of 80 columns. A wider one has the dates too.)

Folders are green and come first, archives are cyan, what is marked is
yellow. The panel in use has its path and its cursor reversed; > is the
cursor of both. The row under the lists says what is under the cursor, or
what just happened. The last row: the function keys, and which zpaqfranz
this is.

TAB (or left, right) goes to the other panel. ENTER enters a folder,
BACKSPACE (or ENTER on ..) goes up. The other panel is where things
go.

? shows all the keys. ESC or F10 leaves.

2. The function keys

key what
F1 add to an archive
F2 rename
F3, F4 the list, the info of the archive under the cursor
F5 copy to the other panel
F6 move to the other panel
F7 make a folder
F8 delete
F9 sort: name, size, date, extension (the same again: reversed)
F10, ESC leave

F1, F5, F6 and F8 work on what is marked or, when nothing is marked, on
what is under the cursor. F5 and F6 ask where (the folder of the other
panel is already written, it can be changed). F8 says what it is going
to delete, and asks:

 Delete <<dir1>> and what is inside: 2 files, 1 folders, 10 bytes?
 Y: delete, for ever   N or ESC: nothing is done

A file that is already in the destination of a copy is a question, once
for all: overwrite them, skip them, or nothing.

A terminal can keep a function key for itself (F1, F10): Alt and a
digit
is the same key, Alt+1 to Alt+9 and Alt+0 for F10.

3. F1: into an archive

 +---------------------------------+
 | Add to an archive               |
 +---------------------------------+
 | 0  the default method           |
 | 1  -m1                          |
 | 2  -m2                          |
 | 3  -m3                          |
 | 4  -m4                          |
 | 5  -m5                          |
 | 6  the default, with a password |
 | 9  ESC: nothing is done         |
 +---------------------------------+

Which archive: when the cursor of the other panel is on one (work.zpaq
here above), that one, after a question: a new version is added to it.
Otherwise a name is asked, with one already written: the name of what is
added, .zpaq, in the folder of the other panel.

Then zpaqfranz runs as if the line had been typed (it is shown), on the
normal screen, and a key brings the panels back:

zpaqfranz a Z:/demo/backup/715.zpaq Z:/demo/work/715/ -m2

A password is typed on the panels, hidden, twice for a new archive. A
name that ends with .franzen asks for the password of the franzen.

On an archive: ENTER opens the TUI on it, F3 is l, F4 is i.

4. A name typed

Type e, then t, then c:

[ ] eco.txt                          77|
[ ] eta.txt                         300|
[ ]>etc.txt                        5120|
...
 Search: etc   etc.txt  5.120 bytes  2026-10-08 18:32:30

The cursor goes to the first name that begins with what was typed:
folders first, as in the list. Capital and small letters are the same. A
letter that leads nowhere is left out, with a line that says so, and the
cursor stays where it is.

ESC ends the search (a second ESC leaves mc), BACKSPACE takes the last
letter away, any other key ends the search and does what it does. After a
pause of a second and a half what is typed is a new search.

Digits are letters here: 2024 goes to 2024_report.txt. That is why
the function keys are Alt and a digit, not the digit alone.

5. Marks, one by one or by a wildcard

SPACE (or INS) marks what is under the cursor, and goes down one line.

* asks for a wildcard, with the * already written: add .cpp, ENTER.

[ ]>etc.txt                        5120|
[X] main.cpp                      20480|
[ ] photo.jpg                   1048576|
[X] tool.cpp                       9000|
...
 3 folders, 8 files [2 marked]         | 0 folders, 2 files
 2 here are like <<*.cpp>>: marked

After a name typed, * is that name and a *: source, then *, then
ENTER, marks everything that begins with source. ? is one character.
Files and folders alike; what was marked stays marked.

| turns the marks over: what was marked is not any more, the rest is.

The marks are of the folder shown: they are gone when the panel goes
somewhere else. What F8 deletes is what is on the screen.

6. Two folders: size, compare, robocopy

The two panels are two folders, and zpaqfranz has commands for two
folders:

key command on what
Ctrl+S s the folders marked; none: the one under the cursor; not a folder: the one shown
Ctrl+H s -home each folder inside the one shown
Ctrl+V c the folder of this panel (the master) against the one of the other panel
Ctrl+R r from this panel to the other one, see below

Look (s, c), try (r), do (r -kill).

Ctrl+R opens a small menu:

 +---------------------------+
 | Robocopy (zpaqfranz r)    |
 +---------------------------+
 | from Z:/demo/work/715/    |
 | to   Z:/demo/backup/715/  |
 |      (the name was added) |
 | R  [RUN]  the dry run     |
 | K  -kill  do it for real  |
 | ESC  nothing is done      |
 +---------------------------+

R is r without -kill: what would be done, nothing is touched. K
asks once more, then it is r -kill.

r -kill deletes in the destination what the source does not have. With
z:\ on the other panel by mistake, that would be everything on z:\.
So, from mc:

  • the source is the folder under the cursor, when the cursor is on
    one: in c:\zpaqfranz, on 715, it is c:\zpaqfranz\715. Otherwise
    it is the folder shown;
  • the destination always ends with the name of the source. When it
    does not, the name is added.
source the other panel the destination
c:\zpaqfranz\715 z:\ z:\715
c:\zpaqfranz\715 z:\some\where\715 as it is
c:\zpaqfranz\715 z:\backup z:\backup\715
h:\ (a whole drive) z:\ z:\h_

The r command typed by hand is what it was. Ctrl+V touches nothing: its
two folders are the ones shown, whatever they are.

7. The drives

BACKSPACE above the root of a drive, or \ (or /) anywhere:

 (the drives)
>C:  fixed NTFS 53.9G free 2.1G
 D:  cdrom (not ready)
 E:  fixed NTFS 8.0G free 7.4G [TORTURA]
 G:  fixed NTFS 3.9T free 3.9T [BIG4T]
 Z:  network //franzk/z/ (by its share)

ENTER goes inside; a letter typed goes to that drive.

A network drive is not asked anything (its label, its free space): one
that is off would answer after a long while.

An administrator (a console "as administrator") does not see the network
drives mapped by the normal user. They are in the list anyway, and are
entered by their share: Z: here above.

On the other systems the list has /, /home and the home of the user.

Ctrl+P goes to a path typed by hand: a share nobody mapped, a folder far
away.

8. tui, ls and mc on ESX and on the NAS

The builds for old compilers and for the NAS (-DESX, -DNAS) did not
have tui, ls and mc. Now they do: the ESXi binary and the eleven
NAS binaries are about 300 KB bigger.

zpaqfranz ls /vmfs/volumes/backup/copy.zpaq
zpaqfranz tui /vmfs/volumes/backup/copy.zpaq
zpaqfranz mc

The chooser that opens when a command has no archive (zpaqfranz t) is
not there yet.

9. Smaller things

  • Which version: inside mc the first line of zpaqfranz is not seen.
    The version is at the end of the last row, and in the title of the
    help.
  • Ctrl+L reads the two folders again.
  • A terminal that does not tell its size (a serial line) is 80x24.
    One smaller than 40x10 is refused.
  • mc wants a screen: with the output sent to a file it says so and
    ends (66109).
  • What the commands print (the list of F3, the lines of a copy) is on
    the normal screen of the terminal and stays there, to be scrolled back
    after mc is left. The panels are on the other screen.

Part two, the details, for power users

  1. Every key
  2. Copy, move, delete: what exactly
  3. F1: which archive, which command line
  4. The search: its rules
  5. The robocopy: its rules
  6. The drives of Windows
  7. Terminals
  8. What can change for a script

1. Every key

key what
arrows, PgUp, PgDn, Home, End move
TAB, left, right the other panel; the left one; the right one
ENTER into a folder; on ..: up; on an archive: tui; in the list of the drives: into the drive
BACKSPACE the folder above; above a root: the drives
\, / the drives (the roots)
SPACE, INS mark or unmark, and one line down
* mark by a wildcard
| the marks turned over
a letter, a digit, any other character the search by name
F1 - F10 see part one
Alt+1 ... Alt+9, Alt+0 F1 ... F9, F10
Ctrl+S, Ctrl+H, Ctrl+V, Ctrl+R s, s -home, c, r
Ctrl+P go to a path typed by hand (a file: its folder, the cursor on it)
Ctrl+L read the two folders again
? the keys
ESC end the search; then: leave
F10, Ctrl+C leave

In a line to type (a name, a path, a wildcard): left, right, Home, End,
BACKSPACE, DEL; ENTER is done, ESC is nothing.

In a menu: the key written at the beginning of the row. ESC is nothing.

Not keys any more, since 65.10b: the letters q p r h and the
digits alone. They are the search now.

2. Copy, move, delete: what exactly

Where (F5, F6). What is typed is a folder when it is one, when it
ends with /, or when more than one thing goes there: the names stay as
they are. One thing, and a name that is not there: that is its new name
(F5 on a.txt, to z:\b.txt). A folder that is not there is made.

Refused: the same place it is in; a folder into itself.

Copy. File by file, with the copy of the cp command: a file that
did not go is a line with its name, and the count of the errors at the
end. The date of each file goes with it; on Windows its attributes, on
the others its mode. The dates of the folders are set at the end.

  • A link (*nix) is made again as a link: it is not followed.
  • A junction of Windows is left where it is, with a line that says so.
  • A device, a pipe: left where it is.
  • Not copied: the owner, the ACL, the alternate data streams.
  • Not enough room in the destination: a question, before starting.

Move. On the same disk it is a new name: at once, whatever the size.
To another disk, or onto something that is already there, it is a copy
with a verify (each file is read again and its hash compared), and
the source is deleted only when everything of it went. A source with a
file skipped, or not copied, stays where it is, and a line says so.

Delete. What is inside a folder, then the folder. A link is deleted
as a link: what it points to is not touched. On Windows a read only file
is deleted. What could not be deleted is counted, and the first one is
named.

Rename (F2) is a name, not a path. A name that is there is refused.
On Windows a.txt to A.TXT is done.

3. F1: which archive, which command line

  • The archive under the cursor of the other panel is offered when it is
    a .zpaq or a .franzen. A piece of a multipart archive is its whole
    set (x_????.zpaq). The files of the backup command are not offered:
    they have their index.
  • N to that question: a name is asked, as when there was no archive.
  • The name typed: without a folder it is in the folder of the other
    panel; a folder: the proposed name inside it; without .zpaq or
    .franzen: .zpaq is added. An archive that is there: a question (a
    new version is added to it).
  • What is added: the marked ones, or the one under the cursor, with their
    full path as a always does. A folder ends with /.
  • 1 to 5 add -m1 to -m5. 0 adds nothing: the default of the
    day.
  • The passwords do not go on the command line, where anyone could read
    them: they are in the environment of the zpaqfranz that is started
    (FRANZKEY, FRANZFRANZEN), and nowhere else.
  • The marks are taken away when the command starts.

4. The search: its rules

  • The beginning of the name, from the top of the list: the folders come
    first, so e stops on a folder extra before a file eco.txt.
  • Capital and small letters are the same (Latin, Greek, Cyrillic).
  • The .. line is never found.
  • A character with no name for it: left out, the search is what it was.
  • The search is what is on the screen: while Search: is there, ESC and
    BACKSPACE are for it.
  • After 1.5 seconds without a key, the next character is a new search.
  • SPACE is not part of a name here: it marks what was found, and ends
    the search. my docs.txt is found by my.
  • \ / ? * | are keys, not characters of a name.
  • In the list of the drives the same: z is Z:.

5. The robocopy: its rules

  • The source: the folder under the cursor of the panel in use (in the
    list of the drives: the drive). The cursor on a file, or on ..: the
    folder shown. The marks are not looked at: r has one source.
  • The destination: the folder of the other panel. Its last name is
    compared with the name of the source (on Windows without telling
    capital letters apart): when it is another one, the name of the source
    is added.
  • A source without a name gets one made of small letters, digits and
    _, and nothing else: h:\ is h_, \\nas\dati is nas_dati.
  • Refused, after all this: the source and the destination are the same
    folder; one is inside the other. On a *nix a robocopy from / is
    always refused: everything is inside /.
  • The dry run and -kill are on the same two folders, the ones shown in
    the menu.
  • A destination that is not there: the dry run says so and makes nothing;
    r -kill makes it.
  • From mc there is no way to mirror 715 onto a folder with another
    name: it would be thatname\715. By hand, r does it as ever.

6. The drives of Windows

  • One line each: the letter, what it is (fixed, removable, cdrom,
    ramdisk, network), the file system, the size, the free space, the
    label.
  • (not ready): a reader without a card, a drive without a disk. No
    window "insert a disk".
  • A network drive: its share, and nothing else is asked.
  • A drive the session does not have (the network drives of the normal
    user, for an administrator): taken from HKCU\Network, shown with its
    share and (by its share), entered as //server/share/. A share that
    does not answer: a line says so.
  • Above the root of a share: the drives.

7. Terminals

  • Function keys: as xterm, PuTTY, the console of Linux and the
    terminal of Windows send them. A sequence that comes in two pieces
    (ssh) is waited for 50 ms: it is not an ESC.
  • Alt and a digit: on Windows the left Alt. On the others, what the
    terminal sends for it: ESC and the digit, together. A terminal that
    sends something else has no such key (macOS Terminal: "Use Option as
    Meta key").
  • Ctrl+H and BACKSPACE are the same character. On Windows the key
    tells them apart. On the others the terminal says which one it deletes
    with (stty erase): when that is Ctrl+H, there is no Ctrl+H command,
    and BACKSPACE is BACKSPACE.
  • Ctrl+V is "paste" for Windows Terminal: the key does not arrive,
    what is in the clipboard does, as keys. To be taken off the terminal's
    shortcuts, there.
  • Ctrl+S stops the screen on some terminals: not while mc waits
    for a key.
  • Ctrl+C is a key: it leaves, with the screen in order. While a
    command started by mc runs it is for that command.
  • The size is read again at every key; on Windows the screen is
    drawn again as soon as the window changes.

8. What can change for a script

  • Nothing, for the commands that were there.
  • mc is a new command; tui and ls are commands on ESX and on the
    NAS too, where they were not.
  • mc without a console: 66109, exit code 2. A console that does not
    take the ANSI sequences (before Windows 10): 66111, exit code 2.
  • New messages: 66101 - 66111.

Part three, lo spiegone, for developers

  1. franzmc: a sheet of cells
  2. The keys: a reader of its own
  3. What is a child, and what is not
  4. Pieces: copy, move, delete
  5. The name of the destination
  6. ANCIENT and NAS
  7. Keys from a file
  8. How it was tested
  9. Found on the way
  10. Tried and thrown away
  11. Known limits and open points

1. franzmc: a sheet of cells

One class, franzmc, after the chooser (franzscegli) and with some of
its functions: scegli_leggi reads a folder, scegli_archivio says what
archive a file is.

The screen is a sheet: rows of cells, each a character and how it looks
(a color, reversed or not). A panel, a menu, a question are written on
the sheet, one over the other; then each row becomes a string, and only
the rows that changed are sent. A wide character (CJK) takes two cells;
a name is cut by columns, not by bytes, with a ~ where it is cut and
its end kept (the extension).

Everything goes out as UTF-8 with ANSI sequences: on Windows by
WriteConsoleW, with the virtual terminal turned on (and put back as it
was at the end).

The panels are on the other screen of the terminal (ESC [ ? 1049 h).
Before a command runs the normal screen comes back, so what the command
prints is in the history of the terminal.

2. The keys: a reader of its own

get_key() (the TUI, ls, the chooser) gives F1-F6 only, and PgDn as a
d: a letter typed and a key are the same thing there. mc has its
reader, and get_key() is not touched.

Windows: the events of the console (ReadConsoleInputW), not
_getwch(). With _getwch() an arrow is 0xE0 and then a code, and 0xE0
is a letter too (the a with a grave accent); _kbhit() does not tell
them apart, because it does not see the second half that _getwch()
keeps. An arrow was à and P. With the events a key is a key: its
virtual code, the character if it has one, Alt or Ctrl. The mode of the
console is changed for the read only (Ctrl+C a key, a new size of the
window an event) and put back.

The others: the terminal in raw mode for the read only, bytes and
sequences (ESC [, ESC O, the ESC [ [ of the console of Linux),
UTF-8. After an ESC 50 ms are waited for the rest: with the 100
microseconds of get_key() an F8 in two packets was an ESC, that here
is "leave".

A key is a number: the code point of a character, or a constant over
0x200000. 0 is "not a key": the window changed its size, or a sequence
nobody knows.

3. What is a child, and what is not

a, l, i, tui, s, c, r are zpaqfranz started again
(CreateProcessW, fork and execvp), with the command line that
would have been typed: Jidac is full of state that one command leaves
behind, and a fatal error there ends the program. As a child, it ends
the child. No shell in between: a name with a %, a $ or a quote is
an argument and nothing else.

Copy, move, delete, rename, make a folder are done here. cp was the
first idea for F5: it puts every file in one folder, the tree is lost.
So: filecopy(), the function cp uses, one file at a time, on a list
made here.

4. Pieces: copy, move, delete

mc_albero() makes the list of a source: itself and everything under
it, a folder before what is inside. Each piece says what it is: a file,
a folder, a link (or a junction), something else. A link is a piece:
nobody goes through it. It is not scandir(): that one follows the
rules of a backup (filters, what to skip), these are the rules of a file
manager.

  • Copy: the list, in order. A folder is made, a file is copied
    (filecopy, then touch for the date and the attributes), a link is
    made again.
  • Delete: the list, from the last to the first.
  • Move: MoveFileExW without MOVEFILE_COPY_ALLOWED, rename(). "Not
    the same device" is the copy with the verify, then the delete of the
    sources that went whole.

5. The name of the destination

mc_nomecartella() gives the last name of a path, or nothing for a
root (c:/, //server/share/, /). mc_nomerobocopy() is the name of
the source, or the one made for a source that has none. duecartelle()
adds it to the destination when the destination does not end with it,
then checks the two paths it got.

It is in mc and not in r: r is used by scripts, with destinations
of any name.

6. ANCIENT and NAS

tui, ls and the chooser were written without C++11, and were left
out of the ANCIENT builds all the same. The #ifndef ANCIENT around
them (ten places: the class, the help, the parser, the dispatch, the
code) are gone, and gcc 3.4.6 compiled them, and mc, at the first
try.

Still out of ANCIENT: the chooser that opens when a command has no
archive (zpaqfranz t). Its code is compiled, its call is not.

7. Keys from a file

For the tests, three variables of the environment:

  • FRANZMCKEYS=file: the keys come from that file. Names (UP DOWN PGUP PGDN HOME END LEFT RIGHT INS DEL ENTER BS TAB SPACE ESC F1...F10,
    CTRL-P CTRL-L CTRL-S CTRL-H CTRL-V CTRL-R), "a text", single
    characters. PAUSE is a pause for the search. When the keys are over,
    mc ends.
  • FRANZMCDUMP=file: SNAP, among the keys, writes the screen there,
    as text.
  • FRANZMCSIZE=80x16: the size of the screen.

With the keys from a file no console is needed: mc runs over a plain
ssh, on every machine, and what it did is in the files and in the
screens.

In tortura/mc: mc_nix.sh (the checks on a *nix), mc_pty.sh (the
same binary in a real terminal: what it draws, and the keys as bytes),
vm_mc.sh (all the virtual machines at once), conkey.cpp (it types
into the console of another process on Windows, and reads its screen).

8. How it was tested

  • By keys from a file, on every machine: 51 checks. Make a folder,
    rename, copy (a tree, links to files and to folders, the date and the
    mode, a file that is there: skip, overwrite), delete (a link to a
    folder: the link only; a tree), move on the same disk and to another
    one (with the verify), F1 (-m1, a second version, a password, two
    passwords that differ), the search, the wildcards, the four commands,
    the robocopy and its destination.
  • In a real terminal (openSUSE, a pty): 19 checks. What is drawn,
    put on a screen again by a small emulator, is what SNAP kept. The
    keys as a terminal sends them: function keys in three dialects, a
    sequence cut in two, Alt and a digit, UTF-8, ESC alone, Ctrl+C, Ctrl+H
    with a terminal that deletes with 127 and with one that deletes with
    Ctrl+H, a terminal of 0x0.
  • On the console of Windows: a hidden console, the keys typed by
    conkey as a keyboard sends them, the screen read back. Arrows,
    marks, accented letters, the function keys, Alt and a digit, the Ctrl
    commands, the TUI of an archive and back, the drives.
  • As an administrator (Windows 11, over ssh): a network drive that
    is in the registry only is in the list, and is entered by its share.
  • Where: Windows 11 (ucrt64), openSUSE (g++ 13), FreeBSD 14.2 (clang
    18), OpenBSD 7.9 (clang 19), macOS 12.7, Solaris 11.4 (gcc 7.3), the
    ESXi build (gcc 3.4.6), the NAS build for x86_64 (musl). On macOS 49
    checks: there was no second file system for the move.
  • Every build, at -O3: the ones above, the eleven NAS binaries, the
    universal binary of macOS; autotest where the binary runs. On
    Windows the source was also checked (syntax only) with -DANCIENT,
    without -DZPAQMOUNT, without the full build.

9. Found on the way

Not in what is new: in what was there. Both are as they were.

  • _getwch() and _kbhit() (see above) are used the same way in
    the line typed on the screens of ac and xc
    (franzscelta::chiedi). An arrow pressed there is probably two
    characters. Not checked there.
  • Solaris: for a ./zpaqfranz the full name of the program
    (fullzpaqexename, from getexecname()) is zpaqfranz, without its
    folder. mc adds the folder it was started in before starting a
    child; whoever else uses that name (the scripts of the zfs commands)
    gets it as it is.

10. Tried and thrown away

The digits as function keys (65.10a): 1 was F1, 8 was F8. With the
search, 8years.txt was F8 and then the y of the name: the yes to the
delete. Alt and a digit.

The letters as keys (q leave, p path, r read again, h help):
they are the beginning of a name.

cp for F5: see above.

_getwch() for the keys of Windows: see above.

The password asked by the child (-key at the end of the line makes
a ask for it): the franzen wanted another way anyway, and a test
cannot type into a child. Both in the environment.

Ctrl+R to read the folders again, as in the Midnight Commander: R is
for robocopy. Ctrl+L.

The robocopy straight onto the other panel (65.10c): one wrong panel
and -kill empties a disk.

A SPACE inside a search: after etc is found, the next key is very
often the SPACE that marks it.

A screen with check boxes for the robocopy, as the one of the
chooser: two keys do.

11. Known limits and open points

  • Not used by hand yet: A real keyboard, Windows Terminal, the terminal of macOS: to be tried.
  • Ctrl+V in Windows Terminal pastes (see above). Not tried with a
    real key press, there and in the old console.
  • Ctrl+H on a *nix terminal that sends Ctrl+H for BACKSPACE and says
    it deletes with something else: BACKSPACE is s -home. It reads, it
    does not write.
  • Alt and a digit only where the terminal sends ESC and the digit.
  • Copy: no owner, no ACL, no alternate data streams; junctions are
    left out; paths over 260 characters as cp takes them (not tried). A
    copy that runs is stopped by Ctrl+C only, and that ends zpaqfranz.
  • F1 on an archive with a password, without choosing the password in
    the menu: what a does then was not tried from here.
  • The search is by the beginning of the name only, and cannot have a
    space in it.
  • The robocopy of a whole drive (h:\ to z:\h_): the names were
    checked, the copy was not run.
  • The chooser without an archive is not in the ANCIENT builds.

Download zpaqfranz

Don't miss a new zpaqfranz release

NewReleases is sending notifications on new releases.