| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
* README.md: Describe the cdlog_autorecovery variable.
* cdlog.sh (cdlog_autorecover): New variable.
(cdlog.init): When there is only one saved session, then
call cdlog.recover with the secret new __auto argument.
(cdlog.recover): When there is only one saved session
and the __auto argument has been given, then make the
selection 1 for the user. In this case we print the
current working directory.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog_sess_dir): New variable.
(cdlog.init, cdlog.recover): Create the session directory, if
necessary. Interpolate the variable into all the places where
we previously referenced the home directory ~.
In cdlog.recover print that directory so the user knows
where the sessions are coming from.
* README.md: Documented.
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.init): Keep the identity of the freshly
allocated session in the variable cdlog_new_dirs.
(cdlog.recover): Allow the user to use 'n' to select the
newly allocated session.
* README.md: Documented.
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.lookup): new function.
(c): New alias.
* README.md: Documented.
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.alias): Remove unused local variable ali.
Check for a digit or argument starting with @ and
expand accordingly, checking for failure.
* README.md: Documented.
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.at2index, cdlog.at2path): New functions.
(cdlog.chdir, cdlog.rot, cdlog.mcd): Support searches
as way of specifying the target path or entry.
* README.md: Document searches.
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.recover): Support d prefix. We only mention
it in the prompt if there are two or more contexts.
* README.md: Documented.
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.chdir): Check for the directory argument
being a value 1 to 9, and substitue the indicated cdlog_hist
entry.
* README.md: Document. Also correct reference to cdlog_fifo
which should be cdlog_hist.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: when the cdlog contains a directory that cannot be
entered, for instance due to not existing any more, we would
like to delete it with "pd", but cannot.
* cdlog.sh (cdlog.pop): Implement -f (force) option which
will ignore the failing cd command and delete the entry
anyway. Fix typo in header comment.
* README.md: Mention -f in description of `pd` alias.
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.alias): Check against empty alias name.
(cdlog.aliases, cdlog.unalias): New functions.
(cdaliases, cdunalias): New aliases.
* README.md: Documented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog_fifo): Renamed to cdlog_hist.
* README.md: All references to FIFO replaced with "history".
Claims that the FIFO is nine elements long are removed.
(cdlog.update): Save the entire array, not relying on
the nine $c1 through $c9 variables.
(cdlog.init): Reinitialize by deleting the elements of
the cdlog_hist array.
(cdlog.recover): Print only up to 10 entries from the
files.
(cdlog.chdir): Remove array limits; let it grow.
(cdlog.pop): Pop the entire array, not just nine
entries. Unset the array entry rather than blanking it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The $c1 to $c9 variables are now just derived items.
* cdlog.sh (cdlog_fifo): New array variable.
(cdlog.args): Now all this function does is copy
from the array to the short variables.
(cdlog.update): Now calls cdlog.args to copy
${cdlog_fifo[@]} to $c1 to $c9.
(cdlog.init): Initialize dclog_fifo via ${d[]}
alias, and call cdlog.args to also init the short
variables.
(cdlog.recover): Map from file directly into
cdlog_fifo array, and call cdlog.update instead
of cdlog.args.
(cdlog.chdir, cdlog.rot, cdlog.pop): Local array d is alias
for cdlog_fifo. Use cdlog.update instead of cdlog.args.
(cdlog.mcd): Local array d is alias for cdlog_fifo.
* README.md: Don't say that the FIFO is stored in variables
c1 through c9 but in in the cdlog_fifo array. The variables
are now for convenience only.
|
|
|
|
|
|
|
|
|
| |
* README.md: Documented.
* cdlog.sh (cdlog.complete): Completion function that
completes on directories, including CDPATH,
as well as cdlog's cd aliases.
(toplevel): Register the completion function.
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog_lru): New Boolean configuration variable,
blank/false by default.
(cdlog.chdir): If cdlog_lru is true, perform the rotation
through to the most recent occurrence of the new directory.
* README.md: Documented.
|
|
|
|
| |
This reverts commit efcc4b981d2a10ac3b10522c596f8bf9ddff6ff9.
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog_alias): New global array.
* README.md: Documented.
(cdlog.chdir): Check for and expand alias.
(cdlog.alias): New function.
(cdalias): New alias.
|
|
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog_autocs): New variable.
(cdlog.chdir): Implement autocs logic, if enabled.
(cdlog.mcd): Use Bash dynamic scoping to override
the cdlog_autocs variable false; we don't want mcd
to have swapping semantics regardless of autocs
mode; the user must use the distinct command mcs.
* README.md: Documented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prompting the user on startup can be a nuisance. For instance,
each time I make a new shell out of a text editor, I get
the prompt. Let's just leave the user in a new context, and
make it an explicit command to switch context.
* cdlog.sh (cdlog.init): Remove logic for selecting a new
context, leaving only the allocation of a new context.
(cdlog.recover): New function, split off from cdlog.init.
(cdr): New alias.
* README.md: Documented.
|
|
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.update): Name of file is now in $cdlog_dirs.
(cdlog.get_param): New function.
(cdlog.init): Implement the LRU session selection and optional
recovery. The variable $cdlog_dirs is established, pointing
to the selected session file.
(mainline): Run cdlog.init if $cdlog_dirs is empty.
* README.md: Documented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.nicks): Function removed.
(cdlog.update): New function, performing task of cdlog.nicks
as well as persistence to ~/.cdlog.dirs file.
(cdlog.init): New function that initializes the c1-c9
variables.
(mainline): Call cdlog.init. This is now done later in
the file after the function definitions.
(cdlog.args, cdlog.chdir): Call cdlog.update
instead of cdlog.nicks. This is also how the variables $x to
$w will be set the first time when recovering state,
because cdlog.init calls cdlog.args to install the FIFO,
and cdlog.args will call cdlog.update.
* README.md: Documented.
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.pop): Rewritten to take argument 1-9, and
iterate from there.
* README.md: Documented.
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog): Take -l option to print all nine
directories in the FIFO.
(cll): New alias, for cdlog -l.
* README.md: Documented.
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.mcd): New function.
(mcd, mcs): New aliases.
* README.md: Documented.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.swap): Function removed.
(cdlog.rot): New function.
(cs): Alias now points to cdlog.rot.
* README.md: Updated.
|
|
|
|
|
|
|
|
| |
* cdlog.sh (cdlog.chdir): No specifial behavior when $PWD
equals $c1.
(cdlog.swap): Swapping behavior implemented here now,
with optional numeric argument to swap with entries
other than first.
|
| |
|
| |
|
|
|