From: Martin Schlemmer <azarah@nosferatu.za.org>
To: kyle@marchex.com
Cc: Petr Baudis <pasky@ucw.cz>, GIT Mailing Lists <git@vger.kernel.org>
Subject: Re: [patch] fixup GECOS handling
Date: Fri, 22 Apr 2005 21:06:43 +0200 [thread overview]
Message-ID: <1114196803.29271.52.camel@nosferatu.lan> (raw)
In-Reply-To: <1114192702.31076.428.camel@axer.marchex.com>
[-- Attachment #1: Type: text/plain, Size: 2433 bytes --]
On Fri, 2005-04-22 at 10:58 -0700, Kyle Hayes wrote:
> On Fri, 2005-04-22 at 19:18 +0200, Petr Baudis wrote:
> > Dear diary, on Fri, Apr 22, 2005 at 06:58:25PM CEST, I got a letter
> > where Martin Schlemmer <azarah@nosferatu.za.org> told me that...
> > > Meaning, if they use a ',' in one of the fields (and it is a linux
> > > system with the chfn most probably from the shadow package), then they
> > > are looking for trouble. The only reason I added the ';' was because
> > > somebody said whatever OS used it instead of a ','.
> >
> > What about just swapping the two tests so that ; is cut off and , only
> > when no ; is around?
>
> Even nicer. I like it. Very clean!
>
Right, but ';' is not cutoff on linux for one, and from what you said
freebsd as well. How about this rather (note that I assumed that the
use of ';' as delimiter will be in the minority, but we can switch
things around if it turns out the other way):
----
(not signed off, etc, as just for comments)
Index: commit-tree.c
===================================================================
--- 5f61aecb06c2f2579bbb5951b1b53e0dedc434eb/commit-tree.c (mode:100644 sha1:c0b07f89286c3f6cceae8122b4c3142c8efaf8e1)
+++ uncommitted/commit-tree.c (mode:100644)
@@ -96,21 +96,6 @@
if (!c)
break;
}
-
- /*
- * Go back, and remove crud from the end: some people
- * have commas etc in their gecos field
- */
- dst--;
- while (--dst >= p) {
- unsigned char c = *dst;
- switch (c) {
- case ',': case ';': case '.':
- *dst = 0;
- continue;
- }
- break;
- }
}
static const char *month_names[] = {
@@ -311,6 +296,17 @@
if (!pw)
die("You don't exist. Go away!");
realgecos = pw->pw_gecos;
+ /*
+ * The GECOS fields are seperated via ',' on Linux, FreeBSD, etc,
+ * and ';' on AIX.
+ */
+#if defined(__aix__)
+ if (strchr(realgecos, ';'))
+ *strchr(realgecos, ';') = 0;
+#else
+ if (strchr(realgecos, ','))
+ *strchr(realgecos, ',') = 0;
+#endif
len = strlen(pw->pw_name);
memcpy(realemail, pw->pw_name, len);
realemail[len] = '@';
--
Martin Schlemmer
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2005-04-22 18:58 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-18 10:36 [patch] fixup GECOS handling Martin Schlemmer
2005-04-18 12:35 ` David Woodhouse
2005-04-18 12:58 ` Martin Schlemmer
2005-04-22 14:23 ` Martin Schlemmer
2005-04-22 16:16 ` Kyle Hayes
2005-04-22 16:58 ` Martin Schlemmer
2005-04-22 17:18 ` Petr Baudis
2005-04-22 17:25 ` Martin Schlemmer
2005-04-22 17:58 ` Kyle Hayes
2005-04-22 19:06 ` Martin Schlemmer [this message]
2005-04-22 20:46 ` Kyle Hayes
2005-04-23 23:38 ` Petr Baudis
2005-04-23 23:49 ` Martin Schlemmer
2005-04-22 17:43 ` Kyle Hayes
2005-04-22 23:30 ` Andy Isaacson
2005-04-25 17:02 ` Kyle Hayes
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=1114196803.29271.52.camel@nosferatu.lan \
--to=azarah@nosferatu.za.org \
--cc=git@vger.kernel.org \
--cc=kyle@marchex.com \
--cc=pasky@ucw.cz \
/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).