cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: lhh@sourceware.org <lhh@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/rgmanager/src/utils clustat.c
Date: 6 Dec 2007 17:47:06 -0000	[thread overview]
Message-ID: <20071206174706.25667.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	lhh at sourceware.org	2007-12-06 17:47:06

Modified files:
	rgmanager/src/utils: clustat.c 

Log message:
	Fix format warnings on newer GCC

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/utils/clustat.c.diff?cvsroot=cluster&r1=1.36&r2=1.37

--- cluster/rgmanager/src/utils/clustat.c	2007/11/30 20:06:55	1.36
+++ cluster/rgmanager/src/utils/clustat.c	2007/12/06 17:47:06	1.37
@@ -451,10 +451,9 @@
 
 void
 _txt_rg_state(rg_state_t *rs, cluster_member_list_t *members, int flags,
-	      char *fmt_buf, int ns)
+	      int svcsize, int nodesize, int statsize)
 {
 	char owner[MAXHOSTNAMELEN+1];
-	char owner_fmt[16];
 	char *name = rs->rs_name, *ptr;
 	int l;
 
@@ -469,27 +468,24 @@
 	}
 
 	memset(owner, 0, sizeof(owner));
-	memset(owner_fmt, 0, sizeof(owner_fmt));
 
 	if (rs->rs_state == RG_STATE_STOPPED ||
 	    rs->rs_state == RG_STATE_DISABLED ||
 	    rs->rs_state == RG_STATE_ERROR ||
 	    rs->rs_state == RG_STATE_FAILED) {
 
-		snprintf(owner_fmt, sizeof(owner_fmt)-1, "(%%-.%ds)", ns-2);
-		snprintf(owner, sizeof(owner)-1, owner_fmt,
+		snprintf(owner, sizeof(owner)-1, "(%-.*s)", nodesize-2,
 			 my_memb_id_to_name(members, rs->rs_last_owner));
 	} else {
 
-		snprintf(owner_fmt, sizeof(owner_fmt)-1, "%%-.%ds", ns);
-		snprintf(owner, sizeof(owner)-1, owner_fmt,
+		snprintf(owner, sizeof(owner)-1, "%-.*s", nodesize,
 			 my_memb_id_to_name(members, rs->rs_owner));
 	}
 	
-	printf(fmt_buf,
-	       name,
-	       owner,
-	       rg_state_str(rs->rs_state));
+	printf(" %-*.*s %-*.*s %-*.*s\n",
+	       svcsize, svcsize, rs->rs_name,
+	       nodesize, nodesize, owner,
+	       statsize, statsize, rg_state_str(rs->rs_state));
 }
 
 
@@ -509,12 +505,13 @@
 
 
 void
-txt_rg_state(rg_state_t *rs, cluster_member_list_t *members, int flags, char *fmt_buf, int ns)
+txt_rg_state(rg_state_t *rs, cluster_member_list_t *members, int flags, int svcsize, 
+	     int nodesize, int statsize)
 {
 	if (flags & RG_VERBOSE) 
 		_txt_rg_state_v(rs, members, flags);
 	else
-		_txt_rg_state(rs, members, flags, fmt_buf, ns);
+		_txt_rg_state(rs, members, flags, svcsize, nodesize, statsize);
 }
 
 
@@ -548,27 +545,20 @@
 
 
 void
-build_service_format(char *buf, int buflen, int cols, int *ns)
+build_service_field_sizes(int cols, int *svcsize, int *nodesize, int *statsize)
 {
 	/* Based on 80 columns */
-	int svcsize = 30;
-	int nodesize = 30;
-	int statsize = 14;	/* uninitialized */
+	*svcsize = 30;
+	*nodesize = 30;
+	*statsize = 14;	/* uninitialized */
 	int pad = 6;		/* Spaces and such; newline */
 
-	svcsize = (cols - (statsize + pad)) / 2;
-	nodesize = (cols - (statsize + pad)) / 2;
-	if (svcsize > MAXHOSTNAMELEN)
-		svcsize = MAXHOSTNAMELEN;
-	if (nodesize > MAXHOSTNAMELEN)
-		nodesize = MAXHOSTNAMELEN;
-
-	memset(buf, 0, buflen);
-	snprintf(buf, buflen-1, "  %%-%d.%ds %%-%d.%ds %%-%d.%ds\n",
-		 svcsize, svcsize, nodesize, nodesize, statsize,
-		 statsize);
-
-	*ns = nodesize;
+	*svcsize = (cols - (*statsize + pad)) / 2;
+	*nodesize = (cols - (*statsize + pad)) / 2;
+	if (*svcsize > MAXHOSTNAMELEN)
+		*svcsize = MAXHOSTNAMELEN;
+	if (*nodesize > MAXHOSTNAMELEN)
+		*nodesize = MAXHOSTNAMELEN;
 }
 
 
@@ -576,8 +566,7 @@
 txt_rg_states(rg_state_list_t *rgl, cluster_member_list_t *members, 
 	      char *svcname, int flags)
 {
-	int x, ret = 0, ns;
-	char fmt_buf[80];
+	int x, ret = 0, svcsize, nodesize, statsize;
 
 	if (!rgl || !members)
 		return -1;
@@ -585,14 +574,18 @@
 	if (svcname)
 		ret = -1;
 
-	build_service_format(fmt_buf, sizeof(fmt_buf), dimx, &ns);
+	build_service_field_sizes(dimx, &svcsize, &nodesize, &statsize);
 
 	if (!(flags & RG_VERBOSE)) {
 
-		printf(fmt_buf,
-		       "Service Name", "Owner (Last)", "State");
-		printf(fmt_buf,
-		       "------- ----", "----- ------", "-----");
+		printf(" %-*.*s %-*.*s %-*.*s\n",
+		       svcsize, svcsize, "Service Name",
+		       nodesize, nodesize, "Owner (Last)",
+	       	       statsize, statsize, "State");
+		printf(" %-*.*s %-*.*s %-*.*s\n",
+		       svcsize, svcsize, "------- ----",
+		       nodesize, nodesize, "----- ------",
+		       statsize, statsize, "-----");
 	} else {
 		printf("Service Information\n"
 		       "------- -----------\n\n");
@@ -602,7 +595,8 @@
 		if (svcname &&
 		    strcmp(rgl->rgl_states[x].rs_name, svcname))
 			continue;
-		txt_rg_state(&rgl->rgl_states[x], members, flags, fmt_buf, ns);
+		txt_rg_state(&rgl->rgl_states[x], members, flags,
+			     svcsize, nodesize, statsize);
 		if (svcname) {
 			switch (rgl->rgl_states[x].rs_state) {
 			case RG_STATE_STARTING:
@@ -706,25 +700,21 @@
 }
 
 void
-build_member_format(char *buf, int buflen, int cols)
+build_member_field_size(int cols, int *nodesize)
 {
 	/* Based on 80 columns */
-	int nodesize = 40;
-
-	nodesize = (cols / 2);
-	if (nodesize > MAXHOSTNAMELEN)
-		nodesize = MAXHOSTNAMELEN;
+	*nodesize = 40;
 
-	memset(buf, 0, buflen);
-	snprintf(buf, buflen-1, "  %%-%d.%ds ",
-		 nodesize, nodesize);
+	*nodesize = (cols / 2);
+	if (*nodesize > MAXHOSTNAMELEN)
+		*nodesize = MAXHOSTNAMELEN;
 }
 
 
 void
-txt_member_state(cman_node_t *node, char *fmt_buf)
+txt_member_state(cman_node_t *node, int nodesize)
 {
-	printf(fmt_buf, node->cn_name);
+	printf(" %-*.*s ", nodesize, nodesize, node->cn_name);
 	printf("%4d ", node->cn_nodeid);
 
 	if (node->cn_member & FLAG_UP)
@@ -776,25 +766,24 @@
 int
 txt_member_states(cluster_member_list_t *membership, char *name)
 {
-	char buf[80];
-	int x, ret = 0;
+	int x, ret = 0, nodesize;
 
   	if (!membership) {
   		printf("Membership information not available\n");
  		return -1;
   	}
 
-	build_member_format(buf, sizeof(buf), dimx);
+	build_member_field_size(dimx, &nodesize);
 
-	printf(buf, "Member Name");
+	printf(" %-*.*s", nodesize, nodesize, "Member Name");
 	printf("%-4.4s %s\n", "ID", "Status");
-	printf(buf, "------ ----");
+	printf(" %-*.*s", nodesize, nodesize, "------ ----");
 	printf("%-4.4s %s\n", "----", "------");
 
 	for (x = 0; x < membership->cml_count; x++) {
 		if (name && strcmp(membership->cml_members[x].cn_name, name))
 			continue;
-		txt_member_state(&membership->cml_members[x], buf);
+		txt_member_state(&membership->cml_members[x], nodesize);
  		ret = !(membership->cml_members[x].cn_member & FLAG_UP);
 	}
 



             reply	other threads:[~2007-12-06 17:47 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-06 17:47 lhh [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-12-10 18:24 [Cluster-devel] cluster/rgmanager/src/utils clustat.c lhh
2007-12-10 18:11 lhh
2007-12-06 17:52 lhh
2007-11-30 19:47 lhh
2007-09-19 10:56 pcaulfield
2007-02-06 20:22 lhh
2007-02-06 20:21 lhh
2007-02-06 20:20 lhh
2007-02-06 20:18 lhh
2007-02-06 19:54 lhh
2007-01-29 19:42 lhh
2007-01-29 19:41 lhh
2007-01-29 19:40 lhh
2007-01-29 19:40 lhh
2007-01-26 21:38 lhh
2007-01-17 16:21 lhh
2007-01-17 16:20 lhh
2007-01-17 16:19 lhh
2006-12-13 18:36 lhh
2006-12-13 17:12 lhh
2006-10-12 22:07 lhh
2006-09-27 16:43 lhh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071206174706.25667.qmail@sourceware.org \
    --to=lhh@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).