From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Joachim Schmitz" Subject: RE: Porting git to HP NonStop Date: Wed, 22 Aug 2012 19:18:41 +0200 Message-ID: <002f01cd808a$2e027e90$8a077bb0$@schmitz-digital.de> References: <003a01cd7709$63725260$2a56f720$@schmitz-digital.de> <004701cd771e$21b7cbb0$65276310$@schmitz-digital.de> <01a801cd7de8$b4c311a0$1e4934e0$@schmitz-digital.de> <7v628epzia.fsf@alter.siamese.dyndns.org> <000601cd7ebd$a4ef5740$eece05c0$@schmitz-digital.de> <7vy5l9lj6m.fsf@alter.siamese.dyndns.org> <001801cd7eee$24f95a50$6eec0ef0$@schmitz-digital.de> <7v4nnxld24.fsf@alter.siamese.dyndns.org> <002a01cd8083$69fb9960$3df2cc20$@schmitz-digital.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8BIT Cc: "'Junio C Hamano'" , "'Shawn Pearce'" , , To: "'Brandon Casey'" X-From: git-owner@vger.kernel.org Wed Aug 22 19:18:57 2012 Return-path: Envelope-to: gcvg-git-2@plane.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1T4Ea0-0005VB-KC for gcvg-git-2@plane.gmane.org; Wed, 22 Aug 2012 19:18:56 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964864Ab2HVRSv (ORCPT ); Wed, 22 Aug 2012 13:18:51 -0400 Received: from moutng.kundenserver.de ([212.227.17.8]:54332 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964848Ab2HVRSt convert rfc822-to-8bit (ORCPT ); Wed, 22 Aug 2012 13:18:49 -0400 Received: from DualCore (dsdf-4d0a052e.pool.mediaWays.net [77.10.5.46]) by mrelayeu.kundenserver.de (node=mrbap0) with ESMTP (Nemesis) id 0LtUF2-1TlMrs02K4-010wBr; Wed, 22 Aug 2012 19:18:48 +0200 In-Reply-To: X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQJtb+yK82c1fE/4VXt1krEuodTb9QKmN7EfAdIAjkoB0Br5KAKVWWsnAm8TuDMCb+a+7QMjYLRhAalBYtECWH7b+QJMED4YAf2RaVKVXNXygA== Content-Language: de X-Provags-ID: V02:K0:WaRZCgqWm9FWW2eGwuwBX+JVEk3zXm9Zgv/D9lpkCSR /4b1gRSTLQaU17JZBJJdHge/La4BHt145C6f9ZVPmbgCBaKt6P knhOh6m2oKp95fy91X96KCv1vX3+Nz0sOuQk5geG9iNQ5ABtaL IAQlc1hai/kF4iM5c+vKxZuariKDGovhP9MtL+Hwed4p/fdhZK fI8kcc5xqUiTsgwUwLzcwCqSgYN4Otmg6yjVAQLNCO+kYwAEH2 OgB9hT7UqNm7qd6MGYGP1H8V84PpIu4dF9mssjS3yp86HCahmh fuIwkPrVQ50RBAFAbPdtEhg+gJf9YTKkuIfkEZRWVCxJijeKol QuXEz3NbABWIncgbWzk8U1h7Jf3B3SQatKTD7fazOcbV/icVA2 G3hLDcqtYsN1g== Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: > From: Brandon Casey [mailto:drafnel@gmail.com] > Sent: Wednesday, August 22, 2012 7:01 PM > To: Joachim Schmitz > Cc: Junio C Hamano; Shawn Pearce; git@vger.kernel.org; > rsbecker@nexbridge.com > Subject: Re: Porting git to HP NonStop > > On Wed, Aug 22, 2012 at 9:30 AM, Joachim Schmitz > wrote: > > > OK, so how about this: > > /usr/local/bin/diff -EBbu ./compat/mkdir.c.orig ./compat/mkdir.c > > --- ./compat/mkdir.c.orig 2012-08-21 05:02:11 -0500 > > +++ ./compat/mkdir.c 2012-08-21 05:02:11 -0500 > > @@ -0,0 +1,24 @@ > > +#include "../git-compat-util.h" > > +#undef mkdir > > + > > +/* for platforms that can't deal with a trailing '/' */ int > > +compat_mkdir_wo_trailing_slash(const char *dir, mode_t mode) { > > + int retval; > > + char *tmp_dir = NULL; > > + size_t len = strlen(dir); > > + > > + if (len && dir[len-1] == '/') { > > + if ((tmp_dir = strdup(dir)) == NULL) > > + return -1; > > + tmp_dir[len-1] = '\0'; > > + } > > + else > > + tmp_dir = (char *)dir; > > + > > + retval = mkdir(tmp_dir, mode); > > + if (tmp_dir != dir) > > + free(tmp_dir); > > + > > + return retval; > > +} > > Why not rearrange this so that you assign to dir the value of tmp_dir and then > just pass dir to mkdir. Then you can avoid the recast of dir to (char*) in the > else branch. Later, just call free(tmp_dir). Also, we have xstrndup. So I think > the body of your function can become something like: > > if (len && dir[len-1] == '/') > dir = tmp_dir = xstrndup(dir, len-1); xstndup() can't fail? > retval = mkdir(dir, mode); > free(tmp_dir); > > -Brandon Bye, Jojo