From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26307 invoked by alias); 20 Dec 2010 06:07:26 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 28538 Received: (qmail 17732 invoked from network); 20 Dec 2010 06:07:13 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 Received-SPF: none (ns1.primenet.com.au: domain at sdf.lonestar.org does not designate permitted sender hosts) From: Paul Ackersviller Date: Mon, 20 Dec 2010 06:00:37 +0000 To: zsh-workers@zsh.org Subject: PATCH: Errors compiling on HP-UX with HP's compiler Message-ID: <20101220060037.GA14117@sverige> Mail-Followup-To: zsh-workers@zsh.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) I must be using gcc more often than not to have just run across this. HP's compiler, I think rightly, refuses to do arithmetic on these two void pointers. Does gcc treat them as char * for that purpose? The casts can obviously be done without. Index: Src/utils.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/utils.c,v retrieving revision 1.251 diff -u -r1.251 utils.c --- Src/utils.c 6 Dec 2010 19:34:33 -0000 1.251 +++ Src/utils.c 20 Dec 2010 03:41:01 -0000 @@ -2272,12 +2272,12 @@ /**/ mod_export ssize_t -read_loop(int fd, void *buf, size_t len) +read_loop(int fd, char *buf, size_t len) { ssize_t got = len; while (1) { - ssize_t ret = read(fd, buf, len); + ssize_t ret = read(fd, (void *) buf, len); if (ret == len) break; if (ret <= 0) { @@ -2298,12 +2298,12 @@ /**/ mod_export ssize_t -write_loop(int fd, const void *buf, size_t len) +write_loop(int fd, const char *buf, size_t len) { ssize_t wrote = len; while (1) { - ssize_t ret = write(fd, buf, len); + ssize_t ret = write(fd, (void *) buf, len); if (ret == len) break; if (ret < 0) { @@ -2407,7 +2407,7 @@ zbeep(); } if (c >= 0) - write_loop(SHTTY, &c, 1); + write_loop(SHTTY, (char *) &c, 1); if (nl) write_loop(SHTTY, "\n", 1);