Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP user-programmable registers #708

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add argv_prepend/argv_prependn
rolandwalker committed May 24, 2018
commit e08aebfeaeba054023de543a0f824c210ded5e3b
2 changes: 2 additions & 0 deletions include/tig/argv.h
Original file line number Diff line number Diff line change
@@ -34,6 +34,8 @@ size_t argv_size(const char **argv);
bool argv_append(const char ***argv, const char *arg);
bool argv_appendn(const char ***argv, const char *arg, size_t arglen);
bool argv_append_array(const char ***dst_argv, const char *src_argv[]);
bool argv_prepend(const char ***argv, const char *arg);
bool argv_prependn(const char ***argv, const char *arg, size_t arglen);
bool argv_copy(const char ***dst, const char *src[]);
bool argv_contains(const char **argv, const char *arg);

22 changes: 22 additions & 0 deletions src/argv.c
Original file line number Diff line number Diff line change
@@ -239,13 +239,35 @@ argv_appendn(const char ***argv, const char *arg, size_t arglen)
return alloc != NULL;
}

bool
argv_prependn(const char ***argv, const char *arg, size_t arglen)
{
if (!argv_appendn(argv,arg,strlen(arg)))
return false;

size_t last_i = argv_size(*argv) - 1;

if (last_i > 0) {
const char *save = (*argv)[last_i];
memmove(*argv + 1, *argv, last_i * sizeof(*argv));
(*argv)[0] = save;
}

return true;
}

bool
argv_append(const char ***argv, const char *arg)
{
return argv_appendn(argv, arg, strlen(arg));
}

bool
argv_prepend(const char ***argv, const char *arg)
{
return argv_prependn(argv, arg, strlen(arg));
}

bool
argv_append_array(const char ***dst_argv, const char *src_argv[])
{