Commit a1f2d86d authored by Stephane Letz's avatar Stephane Letz
Browse files

Merge remote-tracking branch 'upstream/master'

parents 123de361 a9079314
......@@ -2,7 +2,7 @@
* transport.c -- JACK transport master example client.
*
* Copyright (C) 2003 Jack O'Quin.
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
......@@ -24,14 +24,14 @@
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_READLINE
#if HAVE_READLINE
#include <readline/readline.h>
#include <readline/history.h>
#endif
#include <jack/jack.h>
#include <jack/transport.h>
#ifndef HAVE_READLINE
#if !HAVE_READLINE
#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
#endif
......@@ -53,7 +53,7 @@ volatile int time_reset = 1; /* true when time values change */
*
* Runs in the process thread. Realtime, must not wait.
*/
static void timebase(jack_transport_state_t state, jack_nframes_t nframes,
static void timebase(jack_transport_state_t state, jack_nframes_t nframes,
jack_position_t *pos, int new_pos, void *arg)
{
double min; /* minutes since frame 0 */
......@@ -238,7 +238,7 @@ command_t commands[] = {
{"?", com_help, "Synonym for `help'" },
{(char *)NULL, (cmd_function_t *)NULL, (char *)NULL }
};
static command_t *find_command(char *name)
{
register int i;
......@@ -258,7 +258,7 @@ static command_t *find_command(char *name)
else
return (&commands[i]);
}
return ((command_t *)NULL);
}
......@@ -302,33 +302,33 @@ static void execute_command(char *line)
register int i;
command_t *command;
char *word;
/* Isolate the command word. */
i = 0;
while (line[i] && whitespace(line[i]))
i++;
word = line + i;
while (line[i] && !whitespace(line[i]))
i++;
if (line[i])
line[i++] = '\0';
command = find_command(word);
if (!command) {
fprintf(stderr, "%s: No such command. There is `help\'.\n",
word);
return;
}
/* Get argument to command, if any. */
while (whitespace(line[i]))
i++;
word = line + i;
/* invoke the command function. */
(*command->func)(word);
}
......@@ -345,28 +345,28 @@ static char *stripwhite(char *string)
if (*s == '\0')
return s;
t = s + strlen (s) - 1;
while (t > s && whitespace(*t))
t--;
*++t = '\0';
return s;
}
static char *dupstr(char *s)
{
char *r = malloc(strlen(s) + 1);
strcpy(r, s);
return r;
}
/* Readline generator function for command completion. */
static char *command_generator (const char *text, int state)
{
static int list_index, len;
char *name;
/* If this is a new word to complete, initialize now. This
includes saving the length of TEXT for efficiency, and
initializing the index variable to 0. */
......@@ -374,22 +374,22 @@ static char *command_generator (const char *text, int state)
list_index = 0;
len = strlen (text);
}
/* Return the next name which partially matches from the
command list. */
while ((name = commands[list_index].name)) {
list_index++;
if (strncmp(name, text, len) == 0)
return dupstr(name);
}
return (char *) NULL; /* No names matched. */
}
static void command_loop()
{
#ifdef HAVE_READLINE
#if HAVE_READLINE
char *line, *cmd;
char prompt[32];
......@@ -397,7 +397,7 @@ static void command_loop()
/* Allow conditional parsing of the ~/.inputrc file. */
rl_readline_name = package;
/* Define a custom completion function. */
rl_completion_entry_function = command_generator;
#else
......@@ -408,9 +408,9 @@ static void command_loop()
/* Read and execute commands until the user quits. */
while (!done) {
#ifdef HAVE_READLINE
#if HAVE_READLINE
line = readline(prompt);
if (line == NULL) { /* EOF? */
printf("\n"); /* close out prompt */
done = 1;
......@@ -421,20 +421,20 @@ static void command_loop()
fgets(line, sizeof(line), stdin);
line[strlen(line)-1] = '\0';
#endif
/* Remove leading and trailing whitespace from the line. */
cmd = stripwhite(line);
/* If anything left, add to history and execute it. */
if (*cmd)
{
#ifdef HAVE_READLINE
#if HAVE_READLINE
add_history(cmd);
#endif
execute_command(cmd);
}
#ifdef HAVE_READLINE
#if HAVE_READLINE
free(line); /* realine() called malloc() */
#endif
}
......@@ -459,7 +459,7 @@ int main(int argc, char *argv[])
return 1;
}
#ifndef WIN32
#if !WIN32
signal(SIGQUIT, signal_handler);
signal(SIGHUP, signal_handler);
#endif
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment