Newsgroups: comp.windows.interviews
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!convex!connolly
From: connolly@convex.com (Dan Connolly)
Subject: Interviews bugs wating to happen!
Message-ID: <1991Jun07.011552.16316@convex.com>
Sender: usenet@convex.com (news access account)
Nntp-Posting-Host: imagine.convex.com
Organization: CONVEX Computer Corporation, Richardson, Tx., USA
Date: Fri, 07 Jun 1991 01:15:52 GMT
Lines: 23

I posted to complain about error checking in the doc app, with hopes that
the library code would be better, but I just found this:

    char metrics_path[100];
    sprintf(metrics_path, "%s/%s.afm", ps_metrics_dir, psname);

If you ask me, this is just a bug waiting to happen. There are these arbitrary
constants for the length of strings all over the place! There's no excuse
when C++ makes it so easy to:

	char metrics_path = new char[srtlen(ps_metrics_dir) + 1 +
		strlen(psname) + sizeof(".afm") + 1];
	sprintf(metrics_path, "%s/%s.afm", ps_metrics_dir, psname);

And all the parsing with sscanf is driving me nuts! First of all, there
are differences between sun's sscanf and our (ANSI, POSIX) sscanf, especially
in what they return. (Matcheditor::HandleChar is a prime example).

I can't imagine nobody's been bitten by these undocumented assumptions
all over the code.

Dan

