mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-04 05:15:22 +00:00 
			
		
		
		
	Merged revisions 181731 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r181731 | tilghman | 2009-03-12 12:32:13 -0500 (Thu, 12 Mar 2009) | 9 lines Adjust translation table column widths based upon the translation times. Previously, only 5 columns were displayed, and if a translation time exceeded 99,999 useconds, it would be displayed as 0, instead of its actual time. (closes issue #14532) Reported by: pj Patches: 20090311__bug14532.diff.txt uploaded by tilghman (license 14) Tested by: pj ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@181733 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		@@ -29,6 +29,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 | 
			
		||||
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#include "asterisk/lock.h"
 | 
			
		||||
#include "asterisk/channel.h"
 | 
			
		||||
@@ -518,7 +519,7 @@ static char *handle_cli_core_show_translation(struct ast_cli_entry *e, int cmd,
 | 
			
		||||
{
 | 
			
		||||
#define SHOW_TRANS 16
 | 
			
		||||
	int x, y, z;
 | 
			
		||||
	int curlen = 0, longest = 0;
 | 
			
		||||
	int curlen = 0, longest = 0, magnitude[SHOW_TRANS] = { 0, };
 | 
			
		||||
 | 
			
		||||
	switch (cmd) {
 | 
			
		||||
	case CLI_INIT:
 | 
			
		||||
@@ -565,9 +566,14 @@ static char *handle_cli_core_show_translation(struct ast_cli_entry *e, int cmd,
 | 
			
		||||
		curlen = strlen(ast_getformatname(1 << (x)));
 | 
			
		||||
		if (curlen > longest)
 | 
			
		||||
			longest = curlen;
 | 
			
		||||
		for (y = 0; y < SHOW_TRANS; y++) {
 | 
			
		||||
			if (tr_matrix[x][y].cost > pow(10, magnitude[x])) {
 | 
			
		||||
				magnitude[y] = floor(log10(tr_matrix[x][y].cost));
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	for (x = -1; x < SHOW_TRANS; x++) {
 | 
			
		||||
		struct ast_str *out = ast_str_alloca(120);
 | 
			
		||||
		struct ast_str *out = ast_str_alloca(125);
 | 
			
		||||
		/*Go ahead and move to next iteration if dealing with an unknown codec*/
 | 
			
		||||
		if(x >= 0 && !strcmp(ast_getformatname(1 << (x)), "unknown"))
 | 
			
		||||
			continue;
 | 
			
		||||
@@ -578,13 +584,14 @@ static char *handle_cli_core_show_translation(struct ast_cli_entry *e, int cmd,
 | 
			
		||||
				continue;
 | 
			
		||||
			if (y >= 0)
 | 
			
		||||
				curlen = strlen(ast_getformatname(1 << (y)));
 | 
			
		||||
			if (y >= 0 && magnitude[y] + 1 > curlen) {
 | 
			
		||||
				curlen = magnitude[y] + 1;
 | 
			
		||||
			}
 | 
			
		||||
			if (curlen < 5)
 | 
			
		||||
				curlen = 5;
 | 
			
		||||
			if (x >= 0 && y >= 0 && tr_matrix[x][y].step) {
 | 
			
		||||
				/* XXX 99999 is a little hackish
 | 
			
		||||
				   We don't want this number being larger than the shortest (or current) codec
 | 
			
		||||
				   For now, that is "gsm" */
 | 
			
		||||
				ast_str_append(&out, -1, "%*d", curlen + 1, tr_matrix[x][y].cost > 99999 ? 0 : tr_matrix[x][y].cost);
 | 
			
		||||
				/* Actual codec output */
 | 
			
		||||
				ast_str_append(&out, -1, "%*d", curlen + 1, tr_matrix[x][y].cost);
 | 
			
		||||
			} else if (x == -1 && y >= 0) {
 | 
			
		||||
				/* Top row - use a dynamic size */
 | 
			
		||||
				ast_str_append(&out, -1, "%*s", curlen + 1, ast_getformatname(1 << (y)) );
 | 
			
		||||
@@ -592,13 +599,15 @@ static char *handle_cli_core_show_translation(struct ast_cli_entry *e, int cmd,
 | 
			
		||||
				/* Left column - use a static size. */
 | 
			
		||||
				ast_str_append(&out, -1, "%*s", longest, ast_getformatname(1 << (x)) );
 | 
			
		||||
			} else if (x >= 0 && y >= 0) {
 | 
			
		||||
				/* Codec not supported */
 | 
			
		||||
				ast_str_append(&out, -1, "%*s", curlen + 1, "-");
 | 
			
		||||
			} else {
 | 
			
		||||
				/* Upper left hand corner */
 | 
			
		||||
				ast_str_append(&out, -1, "%*s", longest, "");
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		ast_str_append(&out, -1, "\n");
 | 
			
		||||
		ast_cli(a->fd, "%s", out->str);			
 | 
			
		||||
		ast_cli(a->fd, "%s", ast_str_buffer(out));
 | 
			
		||||
	}
 | 
			
		||||
	AST_RWLIST_UNLOCK(&translators);
 | 
			
		||||
	return CLI_SUCCESS;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user