mirror of
https://github.com/SkinnyMind/libgit2dart.git
synced 2025-05-05 04:39:07 -04:00
feat(config): add ability to delete multivar
This commit is contained in:
parent
dadd235b66
commit
36f874c4a6
3 changed files with 63 additions and 5 deletions
|
@ -251,7 +251,7 @@ List<String> getMultivarValue(
|
|||
/// Set the value of a multivar config variable in the config file with the
|
||||
/// highest level (usually the local one).
|
||||
///
|
||||
/// The regular expression is applied case-sensitively on the value.
|
||||
/// The regexp is applied case-sensitively on the value.
|
||||
void setMultivarValue(
|
||||
Pointer<git_config> cfg,
|
||||
String variable,
|
||||
|
@ -267,3 +267,20 @@ void setMultivarValue(
|
|||
calloc.free(regexpC);
|
||||
calloc.free(valueC);
|
||||
}
|
||||
|
||||
/// Deletes one or several values from a multivar in the config file
|
||||
/// with the highest level (usually the local one).
|
||||
///
|
||||
/// The regexp is applied case-sensitively on the value.
|
||||
void deleteMultivar(
|
||||
Pointer<git_config> cfg,
|
||||
String variable,
|
||||
String regexp,
|
||||
) {
|
||||
final name = variable.toNativeUtf8().cast<Int8>();
|
||||
final regexpC = regexp.toNativeUtf8().cast<Int8>();
|
||||
libgit2.git_config_delete_multivar(cfg, name, regexpC);
|
||||
|
||||
calloc.free(name);
|
||||
calloc.free(regexpC);
|
||||
}
|
||||
|
|
|
@ -105,12 +105,12 @@ class Config {
|
|||
/// Pointer to memory address for allocated config object.
|
||||
late Pointer<Pointer<git_config>> configPointer;
|
||||
|
||||
/// Returns map of all the config variables and their values
|
||||
/// Returns map of all the config variables and their values.
|
||||
Map<String, String> getEntries() {
|
||||
return config.getEntries(configPointer.value);
|
||||
}
|
||||
|
||||
/// Returns the value of config [variable]
|
||||
/// Returns the value of config [variable].
|
||||
String getValue(String variable) {
|
||||
try {
|
||||
return config.getValue(configPointer.value, variable);
|
||||
|
@ -119,7 +119,7 @@ class Config {
|
|||
}
|
||||
}
|
||||
|
||||
/// Sets the [value] of config [variable]
|
||||
/// Sets the [value] of config [variable].
|
||||
void setValue(String variable, dynamic value) {
|
||||
try {
|
||||
if (value.runtimeType == bool) {
|
||||
|
@ -158,11 +158,20 @@ class Config {
|
|||
/// highest level (usually the local one).
|
||||
///
|
||||
/// The [regexp] is applied case-sensitively on the value.
|
||||
/// Empty [regexp] sets [value] for all values of a multivar [variable]
|
||||
/// Empty [regexp] sets [value] for all values of a multivar [variable].
|
||||
void setMultivarValue(String variable, String regexp, String value) {
|
||||
config.setMultivarValue(configPointer.value, variable, regexp, value);
|
||||
}
|
||||
|
||||
/// Deletes one or several values from a multivar [variable] in the config file
|
||||
/// with the highest level (usually the local one).
|
||||
///
|
||||
/// The [regexp] is applied case-sensitively on the value.
|
||||
/// Empty [regexp] deletes all values of a multivar [variable].
|
||||
void deleteMultivar(String variable, String regexp) {
|
||||
config.deleteMultivar(configPointer.value, variable, regexp);
|
||||
}
|
||||
|
||||
/// Releases memory allocated for config object.
|
||||
void close() {
|
||||
calloc.free(configPointer);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue