package lambda-term

  1. Overview
  2. Docs
Terminal manipulation library for OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

3.3.2.tar.gz
sha512=78648768644058337e22c79cf1fbb1a36472b24f11b1dc0461fc38419be6ec01b02d8d0ac45fed0bc99f91ba4c0f19d3bda113e834e064bee973b734527b9766

doc/lambda-term/LTerm_history/index.html

Module LTerm_historySource

History management

Sourcetype t

Type of a history.

Sourceval create : ?max_size:int -> ?max_entries:int -> Zed_string.t list -> t

create ?max_size ?max_lines init creates a new history.

max_size is the maximum size in bytes of the history. Oldest entries are dropped if this limit is reached. The default is max_int.

max_entries is the maximum number of entries of the history. Oldest entries are dropped if this limit is reached. The default is no max_int.

init is the initial contents of the history. All entries of init are considered "old". Old entries are not saved by save when append is set to true.

Note: the first element of init must be the most recent entry.

Sourceval add : t -> ?skip_empty:bool -> ?skip_dup:bool -> Zed_string.t -> unit

add history ?skip_empty ?skip_dup entry adds entry to the top of the history. If skip_empty is true (the default) and entry contains only spaces, it is not added. If skip_dup is true (the default) and entry is equal to the top of the history, it is not added.

If entry is bigger than the maximum size of the history, the history is not modified.

Sourceval contents : t -> Zed_string.t list

Returns all the entries of the history. The first element of the list is the most recent entry.

Sourceval size : t -> int

Returns the size (in bytes) of the history.

Sourceval length : t -> int

Returns the number of entries in the history.

Sourceval old_count : t -> int

Returns the number of old entries in the history.

Sourceval set_old_count : t -> int -> unit

set_old_count history count sets the number of old entries in the history.

Sourceval max_size : t -> int

Returns the maximum size of the history.

Sourceval set_max_size : t -> int -> unit

Sets the maximum size of the history. It may drop oldest entries to honor the new limit.

Sourceval max_entries : t -> int

Returns the maximum number of entries of the history.

Sourceval set_max_entries : t -> int -> unit

Sets the maximum number of entries of the history. It may drop oldest entries to honor the new limit.

Sourceval load : t -> ?log:(int -> string -> unit Lwt.t) -> ?skip_empty:bool -> ?skip_dup:bool -> string -> unit Lwt.t

load history ?log ?skip_empty ?skip_dup filename loads entries from filename to history. If filename does not exists history is not modified.

log is the function used to log errors contained in the history file (errors are because of non-UTF8 data). Arguments are a line number and an error message. The default is to use the default logger (of Lwt_log). Entries containing errors are skipped.

Note: all entries are marked as old, i.e. old_count history = length history.

Sourceval save : t -> ?max_size:int -> ?max_entries:int -> ?skip_empty:bool -> ?skip_dup:bool -> ?append:bool -> ?perm:int -> string -> unit Lwt.t

save history ?max_size ?max_entries ?skip_empty ?sjip_dup ?perm filename saves history to filename.

If append is false then the file is truncated and new entries are saved. If it is true (the default) then new entries are added at the end. perm are the file permissions in case it is created.

If append is true and there is no new entries, the file is not touched. In any other case, limits are honored and the resulting file will never contains more bytes than max_size or more entries than max_entries. If max_size and/or max_entries are not specified, the ones of history are used.

After the history is successfully saved, all entries of history are marked as old, i.e. old_count history = length history.

Sourceval entry_size : Zed_string.t -> int

entry_size entry returns the size taken by an entry in the history file in bytes. This is not exactly String.length entry since some characters are escaped and the entry is terminated by a newline character.

OCaml

Innovation. Community. Security.