[gnu.emacs.bug] etags fix

mjs@MENTOR.CC.PURDUE.EDU (Mike Spitzer) (01/08/89)

Etags.c claims that malloc() and realloc() return ints; this is not
the case.  It happens to work most places, but not on machines such as
the ETA-10P where pointers != ints.  Here are the diffs for etags.c.
I moved xmalloc and xrealloc up in the file so that they wouldn't have
to be externed.

I'm in the process of porting Emacs to the ETA-10P (one of CDC/ETA's
new supercomputers running native System V Unix), but haven't gotten
very far.  Is there any chance of emacs running on a machine where
ints and pointers can't be used interchangeably?

		Mike Spitzer
		Purdue University Computing Center Unix Group

*** /tmp/,RCSt1a12790	Sat Jan  7 18:58:19 1989
--- /userb/mjs/dist-18.52/etc/etags.c	Sat Jan  7 15:30:54 1989
***************
*** 548,553 ****
--- 548,578 ----
    fclose(inf);
  }
  
+ /* Like malloc but get fatal error if memory is exhausted.  */
+ 
+ char *
+ xmalloc (size)
+      int size;
+ {
+   extern char *malloc();
+   char *result = malloc (size);
+   if (result == (char *) 0)
+     fatal ("virtual memory exhausted", 0);
+   return result;
+ }
+ 
+ char *
+ xrealloc (ptr, size)
+      char *ptr;
+      int size;
+ {
+   extern char *realloc();       
+   char *result = realloc (ptr, size);
+   if (result == (char *) 0)
+     fatal ("virtual memory exhausted");
+   return result;
+ }
+ 
  /* Record a tag on the current line.
    name is the tag name,
    f is nonzero to use a pattern, zero to use line number instead. */
***************
*** 564,569 ****
--- 589,595 ----
    register NODE *np;
    char *altname;
    char tem[51];
+   extern char *malloc();
  
    if ((np = (NODE *) malloc (sizeof (NODE))) == NULL)
      {
***************
*** 1662,1689 ****
    strcpy (result + len1 + len2, s3);
    *(result + len1 + len2 + len3) = 0;
  
-   return result;
- }
- 
- /* Like malloc but get fatal error if memory is exhausted.  */
- 
- int
- xmalloc (size)
-      int size;
- {
-   int result = malloc (size);
-   if (!result)
-     fatal ("virtual memory exhausted", 0);
-   return result;
- }
- 
- int
- xrealloc (ptr, size)
-      char *ptr;
-      int size;
- {
-   int result = realloc (ptr, size);
-   if (!result)
-     fatal ("virtual memory exhausted");
    return result;
  }