Skip to content

Commit

Permalink
ALSA: info: Small refactoring and a sanity check in snd_info_get_line()
Browse files Browse the repository at this point in the history
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Mar 13, 2013
1 parent 0d861ac commit 0bc0ec9
Showing 1 changed file with 8 additions and 13 deletions.
21 changes: 8 additions & 13 deletions sound/core/info.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,26 +700,21 @@ int snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len)
{
int c = -1;

if (snd_BUG_ON(!buffer || !buffer->buffer))
return 1;
if (len <= 0 || buffer->stop || buffer->error)
return 1;
while (--len > 0) {
while (!buffer->stop) {
c = buffer->buffer[buffer->curr++];
if (c == '\n') {
if (buffer->curr >= buffer->size)
buffer->stop = 1;
break;
}
*line++ = c;
if (buffer->curr >= buffer->size) {
if (buffer->curr >= buffer->size)
buffer->stop = 1;
if (c == '\n')
break;
if (len) {
len--;
*line++ = c;
}
}
while (c != '\n' && !buffer->stop) {
c = buffer->buffer[buffer->curr++];
if (buffer->curr >= buffer->size)
buffer->stop = 1;
}
*line = '\0';
return 0;
}
Expand Down

0 comments on commit 0bc0ec9

Please sign in to comment.