Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0bc0ec90 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: info: Small refactoring and a sanity check in snd_info_get_line()



Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 0d861ac2
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -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;
		if (c == '\n')
			break;
		}
		if (len) {
			len--;
			*line++ = c;
		if (buffer->curr >= buffer->size) {
			buffer->stop = 1;
			break;
		}
	}
	while (c != '\n' && !buffer->stop) {
		c = buffer->buffer[buffer->curr++];
		if (buffer->curr >= buffer->size)
			buffer->stop = 1;
	}
	*line = '\0';
	return 0;
}