Return to BSD News archive
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!uwm.edu!caen!uunet!mcsun!fuug!kiae!demos!newsserv
From: "Andrew A. Chernov, Black Mage" <ache@astral.msk.su>
Newsgroups: comp.unix.bsd
Subject: [386bsd] Patch glob() from libc, error function
Date: Thu, 03 Dec 92 21:11:38 +0300
Distribution: world
Organization: Ha-oh-lahm Yetzirah
Message-ID: <AGQta7hGh2@astral.msk.su>
Sender: news-service@newcom.kiae.su
Reply-To: ache@astral.msk.su
Lines: 72
When glob() call errfunc, it doesn't convert extended char*
(u_short *) to char*, so errfunc print only first pathbuf letter
(second char from u_short is '\0').
When I test it, I uncomment DEBUG define and got compilation error.
This patch fix both bugs:
*** glob.c.was Mon Jun 24 18:35:42 1991
--- glob.c Mon Nov 30 03:54:27 1992
***************
*** 332,341 ****
if (!(dirp = g_opendir(pathbuf)))
/* TODO: don't call for ENOENT or ENOTDIR? */
! if (pglob->gl_errfunc &&
! (*pglob->gl_errfunc)(pathbuf, errno) ||
! (pglob->gl_flags & GLOB_ERR))
return(GLOB_ABEND);
else
return(0);
--- 332,347 ----
if (!(dirp = g_opendir(pathbuf)))
/* TODO: don't call for ENOENT or ENOTDIR? */
! if (pglob->gl_errfunc) {
! char buf[MAXPATHLEN];
!
! g_Ctoc(pathbuf, buf);
! if ((*pglob->gl_errfunc)(buf, errno) ||
! (pglob->gl_flags & GLOB_ERR))
return(GLOB_ABEND);
+ else
+ return(0);
+ }
else
return(0);
***************
*** 544,556 ****
register Char *p;
for (p = s; *p; p++)
! (void)printf("%c", *p & 0xff);
(void)printf("\n");
for (p = s; *p; p++)
(void)printf("%c", *p & M_PROTECT ? '"' : ' ');
(void)printf("\n");
for (p = s; *p; p++)
! (void)printf("%c", *p & M_META ? '_' : ' ');
(void)printf("\n");
}
#endif
--- 550,562 ----
register Char *p;
for (p = s; *p; p++)
! (void)printf("%c", CHAR(*p));
(void)printf("\n");
for (p = s; *p; p++)
(void)printf("%c", *p & M_PROTECT ? '"' : ' ');
(void)printf("\n");
for (p = s; *p; p++)
! (void)printf("%c", ismeta(*p) ? '_' : ' ');
(void)printf("\n");
}
#endif
--
In-This-Life: Andrew A. Chernov | "Hay mas dicha, mas contento
Internet: ache@astral.msk.su | "Que adorar una hermosura
Organization: The RELCOM Corp., | "Brujuleada entre los lejos
Moscow, Russia | "De lo imposible?!" (Calderon)