Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Aug 1999 19:54:35 -0400 (EDT)
From:      James Howard <howardjp@wam.umd.edu>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   docs/12994: Update to getopt.3 to agree with style.9
Message-ID:  <199908052354.TAA17724@rac9.wam.umd.edu>

next in thread | raw e-mail | index | archive | help

>Number:         12994
>Category:       docs
>Synopsis:       Update to getopt.3 to agree with style.9
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug  5 17:00:06 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     James Howard
>Release:        FreeBSD 3.2-STABLE i386
>Organization:
University of Maryland
>Environment:

FreeBSD byzantine.student.umd.edu 3.2-STABLE FreeBSD 3.2-STABLE #4: Thu Jun 17 18:40:41 GMT 1999     howardjp@byzantine.student.umd.edu:/usr/src/sys/compile/BYZANTINE  i386

>Description:

Getopt(3) stated that the proper way to handle converting a number
in a command line to a usable int was via atoi(3).  Style(9) says
you should use strtol(3).  Apply the diff to getopt.3 in 
/usr/src/lib/libc/stdlib/ to synchronise it with style(9).

>How-To-Repeat:

man 3 getopt
man style

>Fix:
	
*** getopt.3.orig	Thu Aug  5 19:31:46 1999
--- getopt.3	Thu Aug  5 19:41:08 1999
***************
*** 245,251 ****
  The following code fragment works in most cases.
  .Bd -literal -offset indent
  int length;
! char *p;
  
  while ((ch = getopt(argc, argv, "0123456789")) != -1)
  	switch (ch) {
--- 245,251 ----
  The following code fragment works in most cases.
  .Bd -literal -offset indent
  int length;
! char *p, *ep;
  
  while ((ch = getopt(argc, argv, "0123456789")) != -1)
  	switch (ch) {
***************
*** 253,261 ****
  	case '5': case '6': case '7': case '8': case '9':
  		p = argv[optind - 1];
  		if (p[0] == '-' && p[1] == ch && !p[2])
! 			length = atoi(++p);
  		else
! 			length = atoi(argv[optind] + 1);
  		break;
  	}
  .Ed
--- 253,263 ----
  	case '5': case '6': case '7': case '8': case '9':
  		p = argv[optind - 1];
  		if (p[0] == '-' && p[1] == ch && !p[2])
! 			length = strtol(++p, &ep, 10);
  		else
! 			length = strtol(argv[optind] + 1, &ep, 10);
! 		if (length <= 0 || *ep != '\e0')
! 			err("illegal number -- %s", optarg);
  		break;
  	}
  .Ed

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908052354.TAA17724>