From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3353 invoked by alias); 18 Jul 2012 12:52:42 -0000 Received: (qmail 3344 invoked by uid 22791); 18 Jul 2012 12:52:39 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DATE_IN_FUTURE_03_06,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 18 Jul 2012 12:52:26 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1SrTju-0005XU-0D from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Wed, 18 Jul 2012 05:52:26 -0700 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Wed, 18 Jul 2012 05:52:31 -0700 Received: from qiyao.dyndns.org.dyndns.org (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.1.289.1; Wed, 18 Jul 2012 05:52:24 -0700 From: Yao Qi To: Subject: [PATCH] Handle var_uinteger/var_zuinteger and case var_integer/var_zinteger together. Date: Wed, 18 Jul 2012 12:52:00 -0000 Message-ID: <1342637512-2018-1-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-07/txt/msg00259.txt.bz2 Hi, Similar to previous patch, this patch is also to handle case var_uinteger/var_zuinteger and case var_integer/var_zinteger together. This change removes some duplicated code, and applies range checking to the value of var_zuinteger and var_zinteger. Note that my following patches will check the change of command option for some purpose, so better to handle these case statements as together we we can. gdb: 2012-07-18 Yao Qi * cli/cli-setshow.c (do_setshow_command): Handle case 'var_uinteger' and 'var_zuninteger' together. Handle case 'var_integer' and 'var_zinteger' together. --- gdb/cli/cli-setshow.c | 16 ++++------------ 1 files changed, 4 insertions(+), 12 deletions(-) diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index 0f854e5..fabc4d7 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -267,20 +267,22 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) } break; case var_uinteger: + case var_zuinteger: if (arg == NULL) error_no_arg (_("integer to set it to.")); *(unsigned int *) c->var = parse_and_eval_long (arg); - if (*(unsigned int *) c->var == 0) + if (c->var_type == var_uinteger && *(unsigned int *) c->var == 0) *(unsigned int *) c->var = UINT_MAX; break; case var_integer: + case var_zinteger: { unsigned int val; if (arg == NULL) error_no_arg (_("integer to set it to.")); val = parse_and_eval_long (arg); - if (val == 0) + if (val == 0 && c->var_type == var_integer) *(int *) c->var = INT_MAX; else if (val >= INT_MAX) error (_("integer %u out of range"), val); @@ -288,16 +290,6 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c) *(int *) c->var = val; break; } - case var_zinteger: - if (arg == NULL) - error_no_arg (_("integer to set it to.")); - *(int *) c->var = parse_and_eval_long (arg); - break; - case var_zuinteger: - if (arg == NULL) - error_no_arg (_("integer to set it to.")); - *(unsigned int *) c->var = parse_and_eval_long (arg); - break; case var_enum: { int i; -- 1.7.7.6