diff options
| -rw-r--r-- | degesch.c | 21 | 
1 files changed, 15 insertions, 6 deletions
| @@ -952,6 +952,19 @@ buffer_goto (struct app_context *ctx, int n)  	return false;  } +static int +buffer_get_index (struct app_context *ctx, struct buffer *buffer) +{ +	int index = 1; +	LIST_FOR_EACH (struct buffer, iter, ctx->buffers) +	{ +		if (iter == buffer) +			return index; +		index++; +	} +	return -1; +} +  static void  init_buffers (struct app_context *ctx)  { @@ -1291,12 +1304,8 @@ refresh_prompt (struct app_context *ctx)  			str_append_printf (&prompt, "(%s) ", unseen_prefix);  		free (unseen_prefix); -		int buffer_index = 1; -		for (struct buffer *iter = ctx->buffers; -			iter && iter != buffer; iter = iter->next) -			buffer_index++; - -		str_append_printf (&prompt, "%d:%s", buffer_index, buffer->name); +		str_append_printf (&prompt, "%d:%s", +			buffer_get_index (ctx, buffer), buffer->name);  		if (buffer->type == BUFFER_CHANNEL && *buffer->mode)  			str_append_printf (&prompt, "(%s)", buffer->mode); | 
