On Wed, Dec 18, 2013 at 11:36:12PM +0100, Maurice Quennet wrote:
> Hello dev@,
> 
> I was searching for a programming project so I looked into TODO and
> picked printf.  I hacked something up a few weeks ago, but I didn't
> publish it until now, since I didn't have a man page yet and I was a
> little busy (a patch follows at the end of the mail).
> In the following I will tell a little bit about my implementation and
> point out differences to OpenBSD's printf implementation (since I am a
> OpenBSD user):
> First for my `algorithm': There is nothing much to say.  My
> implementation simply skips through the format string until it finds a
> '\' or a '%' and prints everything before that character.  If a '\' was
> found, the appropriate escape sequence is printed.  If a '%' was found,
> it skips forward until it finds a supported conversion specifier, and
> passes everything starting from the '%' up until that point to printf(3)
> (plus the approprietly converted command line argument).
> And now for the differences: For a large part my implementation is
> similar to OpenBSD's version.  Both support the same escape sequences,
> flags and conversion specifiers (which, as far as tested,  behave the
> same).  The major difference is error handling.  While OpenBSD's version
> prints a warning to stderr and continues parsing its input, my version
> exits immediately.  Also, my implementation does not check the syntax of
> the conversion specifier flags, but simply skips over them.
> This is for the following two reasons:
> 1.) printf(1) is mostly used for shell scripting, so I think it is ok to
>     expect the user to pass a well formed format string and to check his
>     arguments.  Even if using a POSIX compliant printf(1), if you put in
>     garbage you will in return get garbage (or at least not what you
>     expected to get).
> 2.) This way of error handling makes the code simpler/shorter.
> For the man page: well, I really suck at writing man pages, especially
> since my english is quite shaky.  Also, while writing the man page, I
> was wondering if it wasn't possible to simply use OpenBSD's man page
> (with a few modifications) since both implementations seem to be largely
> equivalent.
> I have the feeling that I forgot to mention something, but, well, it
> probably will come up again.  Anyways I hope you like it.
> 
> Best regards,
> Maurice Quennet

People on this list need to learn about 'git format-patch' and 'git
send-email'...

-- 
William Giokas | KaiSforza | http://kaictl.net/
GnuPG Key: 0x73CD09CF
Fingerprint: F73F 50EF BBE2 9846 8306  E6B8 6902 06D8 73CD 09CF

Attachment: pgp7WKAm13S8G.pgp
Description: PGP signature

Reply via email to