home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 19 / AACD19.BIN / AACD / Programming / cvs-1.11 / source / amiga.diffs next >
Text File  |  2001-02-03  |  18KB  |  655 lines

  1. *** ORIG/lib/getopt.c    Thu Jan 02 14:07:41 1997
  2. --- lib/getopt.c    Thu Dec 14 14:26:42 2000
  3. ***************
  4. *** 66,71 ****
  5. --- 66,75 ----
  6.   #include <stdlib.h>
  7.   #endif    /* GNU C library.  */
  8.   
  9. + #ifdef AMIGA
  10. + #include <stdlib.h>
  11. + #endif /* AMIGA */
  12.   /* This version of `getopt' appears to the caller like standard Unix `getopt'
  13.      but it behaves differently for the user, since it allows the user
  14.      to intersperse the options with the other arguments.
  15. *** ORIG/lib/regex.c    Mon Jun 19 11:45:24 2000
  16. --- lib/regex.c    Thu Dec 14 18:12:59 2000
  17. ***************
  18. *** 145,151 ****
  19.   static char re_syntax_table[CHAR_SET_SIZE];
  20.   
  21.   static void
  22. ! init_syntax_once ()
  23.   {
  24.      register int c;
  25.      static int done = 0;
  26. --- 145,151 ----
  27.   static char re_syntax_table[CHAR_SET_SIZE];
  28.   
  29.   static void
  30. ! init_syntax_once (void)
  31.   {
  32.      register int c;
  33.      static int done = 0;
  34. ***************
  35. *** 358,364 ****
  36.   #define false 0
  37.   #define true 1
  38.   
  39. ! static int re_match_2_internal ();
  40.   
  41.   /* These are the command codes that appear in compiled regular
  42.      expressions.     Some opcodes are followed by argument bytes.  A
  43. --- 358,366 ----
  44.   #define false 0
  45.   #define true 1
  46.   
  47. ! static int re_match_2_internal(struct re_pattern_buffer *bufp, const char *string1,
  48. !                                int size1, const char *string2, int size2, int pos,
  49. !                                struct re_registers *regs, int stop); /* olsen */
  50.   
  51.   /* These are the command codes that appear in compiled regular
  52.      expressions.     Some opcodes are followed by argument bytes.  A
  53. ***************
  54. *** 540,548 ****
  55.   
  56.   #ifdef DEBUG
  57.   static void
  58. ! extract_number (dest, source)
  59. !     int *dest;
  60. !     unsigned char *source;
  61.   {
  62.     int temp = SIGN_EXTEND_CHAR (*(source + 1));
  63.     *dest = *source & 0377;
  64. --- 542,548 ----
  65.   
  66.   #ifdef DEBUG
  67.   static void
  68. ! extract_number (int *dest, unsigned char *source) /* olsen */
  69.   {
  70.     int temp = SIGN_EXTEND_CHAR (*(source + 1));
  71.     *dest = *source & 0377;
  72. ***************
  73. *** 567,575 ****
  74.   
  75.   #ifdef DEBUG
  76.   static void
  77. ! extract_number_and_incr (destination, source)
  78. !     int *destination;
  79. !     unsigned char **source;
  80.   {
  81.     extract_number (destination, *source);
  82.     *source += 2;
  83. --- 567,573 ----
  84.   
  85.   #ifdef DEBUG
  86.   static void
  87. ! extract_number_and_incr (int *destination, unsigned char **source)
  88.   {
  89.     extract_number (destination, *source);
  90.     *source += 2;
  91. ***************
  92. *** 1530,1540 ****
  93.   
  94.   /* Subroutine declarations and macros for regex_compile.  */
  95.   
  96. ! static void store_op1 (), store_op2 ();
  97. ! static void insert_op1 (), insert_op2 ();
  98. ! static boolean at_begline_loc_p (), at_endline_loc_p ();
  99. ! static boolean group_in_compile_stack ();
  100. ! static reg_errcode_t compile_range ();
  101.   
  102.   /* Fetch the next character in the uncompiled pattern---translating it
  103.      if necessary.  Also cast from a signed character in the constant
  104. --- 1528,1541 ----
  105.   
  106.   /* Subroutine declarations and macros for regex_compile.  */
  107.   
  108. ! /* olsen */
  109. ! static void store_op1(re_opcode_t op, unsigned char *loc, int arg);
  110. ! static void store_op2(re_opcode_t op, unsigned char *loc, int arg1, int arg2);
  111. ! static void insert_op1(re_opcode_t op, unsigned char *loc, int arg, unsigned char *end);
  112. ! static void insert_op2(re_opcode_t op, unsigned char *loc, int arg1, int arg2, unsigned char *end);
  113. ! static boolean at_begline_loc_p(const char *pattern, const char *p, reg_syntax_t syntax);
  114. ! static boolean at_endline_loc_p(const char *p, const char *pend, int syntax);
  115. ! static boolean group_in_compile_stack(struct compile_stack_type compile_stack, unsigned regnum);
  116.   
  117.   /* Fetch the next character in the uncompiled pattern---translating it
  118.      if necessary.  Also cast from a signed character in the constant
  119. ***************
  120. *** 1687,1693 ****
  121.   } compile_stack_elt_t;
  122.   
  123.   
  124. ! typedef struct
  125.   {
  126.     compile_stack_elt_t *stack;
  127.     unsigned size;
  128. --- 1688,1694 ----
  129.   } compile_stack_elt_t;
  130.   
  131.   
  132. ! typedef struct compile_stack_type
  133.   {
  134.     compile_stack_elt_t *stack;
  135.     unsigned size;
  136. ***************
  137. *** 1809,1816 ****
  138.      but don't make them smaller.     */
  139.   
  140.   static
  141. ! regex_grow_registers (num_regs)
  142. !      int num_regs;
  143.   {
  144.     if (num_regs > regs_allocated_size)
  145.       {
  146. --- 1810,1816 ----
  147.      but don't make them smaller.     */
  148.   
  149.   static
  150. ! regex_grow_registers (int num_regs) /* olsen */
  151.   {
  152.     if (num_regs > regs_allocated_size)
  153.       {
  154. ***************
  155. *** 1857,1867 ****
  156.     } while (0)
  157.   
  158.   static reg_errcode_t
  159. ! regex_compile (pattern, size, syntax, bufp)
  160. !      const char *pattern;
  161. !      int size;
  162. !      reg_syntax_t syntax;
  163. !      struct re_pattern_buffer *bufp;
  164.   {
  165.     /* We fetch characters from PATTERN here.  Even though PATTERN is
  166.        `char *' (i.e., signed), we declare these variables as unsigned, so
  167. --- 1857,1865 ----
  168.     } while (0)
  169.   
  170.   static reg_errcode_t
  171. ! regex_compile (const char *pattern, int size,
  172. !                reg_syntax_t syntax,
  173. !                struct re_pattern_buffer *bufp) /* olsen */
  174.   {
  175.     /* We fetch characters from PATTERN here.  Even though PATTERN is
  176.        `char *' (i.e., signed), we declare these variables as unsigned, so
  177. ***************
  178. *** 3107,3117 ****
  179.     const char *prev = p - 2;
  180.     boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
  181.   
  182. !   return
  183.          /* After a subexpression?  */
  184.          (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
  185.          /* After an alternative?     */
  186. !     || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash));
  187.   }
  188.   
  189.   
  190. --- 3105,3115 ----
  191.     const char *prev = p - 2;
  192.     boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
  193.   
  194. !   return (boolean)( /* olsen */
  195.          /* After a subexpression?  */
  196.          (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
  197.          /* After an alternative?     */
  198. !     || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash)));
  199.   }
  200.   
  201.   
  202. ***************
  203. *** 3127,3139 ****
  204.     boolean next_backslash = *next == '\\';
  205.     const char *next_next = p + 1 < pend ? p + 1 : 0;
  206.   
  207. !   return
  208.          /* Before a subexpression?  */
  209.          (syntax & RE_NO_BK_PARENS ? *next == ')'
  210.       : next_backslash && next_next && *next_next == ')')
  211.          /* Before an alternative?  */
  212.       || (syntax & RE_NO_BK_VBAR ? *next == '|'
  213. !     : next_backslash && next_next && *next_next == '|');
  214.   }
  215.   
  216.   
  217. --- 3125,3137 ----
  218.     boolean next_backslash = *next == '\\';
  219.     const char *next_next = p + 1 < pend ? p + 1 : 0;
  220.   
  221. !   return (boolean)( /* olsen */
  222.          /* Before a subexpression?  */
  223.          (syntax & RE_NO_BK_PARENS ? *next == ')'
  224.       : next_backslash && next_next && *next_next == ')')
  225.          /* Before an alternative?  */
  226.       || (syntax & RE_NO_BK_VBAR ? *next == '|'
  227. !     : next_backslash && next_next && *next_next == '|'));
  228.   }
  229.   
  230.   
  231. ***************
  232. *** 3937,3946 ****
  233.   
  234.   /* Declarations and macros for re_match_2.  */
  235.   
  236. ! static int bcmp_translate ();
  237. ! static boolean alt_match_null_string_p (),
  238. !            common_op_match_null_string_p (),
  239. !            group_match_null_string_p ();
  240.   
  241.   /* This converts PTR, a pointer into one of the search strings `string1'
  242.      and `string2' into an offset from the beginning of that string.  */
  243. --- 3935,3944 ----
  244.   
  245.   /* Declarations and macros for re_match_2.  */
  246.   
  247. ! static int bcmp_translate(unsigned char *s1, unsigned char *s2, int len, RE_TRANSLATE_TYPE translate); /* olsen */
  248. ! static boolean alt_match_null_string_p(unsigned char *p, unsigned char *end, register_info_type *reg_info);
  249. ! static boolean common_op_match_null_string_p(unsigned char **p, unsigned char *end, register_info_type *reg_info);
  250. ! static boolean group_match_null_string_p(unsigned char **p, unsigned char *end, register_info_type *reg_info);
  251.   
  252.   /* This converts PTR, a pointer into one of the search strings `string1'
  253.      and `string2' into an offset from the beginning of that string.  */
  254. *** ORIG/lib/sighandle.c    Wed Feb 23 05:11:25 2000
  255. --- lib/sighandle.c    Thu Dec 14 14:25:52 2000
  256. ***************
  257. *** 65,71 ****
  258.   
  259.   /* Define linked list of signal handlers structure */
  260.   struct SIG_hlist {
  261. !     RETSIGTYPE        (*handler)();
  262.       struct SIG_hlist    *next;
  263.   };
  264.   
  265. --- 65,71 ----
  266.   
  267.   /* Define linked list of signal handlers structure */
  268.   struct SIG_hlist {
  269. !     RETSIGTYPE        (*handler)(int sig); /* olsen */
  270.       struct SIG_hlist    *next;
  271.   };
  272.   
  273. *** ORIG/lib/xgetwd.c    Sat Nov 29 17:52:35 1997
  274. --- lib/xgetwd.c    Thu Dec 14 14:29:14 2000
  275. ***************
  276. *** 29,36 ****
  277.   /* Amount by which to increase buffer size when allocating more space. */
  278.   #define PATH_INCR 32
  279.   
  280. ! char *xmalloc ();
  281. ! char *xrealloc ();
  282.   
  283.   /* Return the current directory, newly allocated, arbitrarily long.
  284.      Return NULL and set errno on error. */
  285. --- 29,36 ----
  286.   /* Amount by which to increase buffer size when allocating more space. */
  287.   #define PATH_INCR 32
  288.   
  289. ! char *xmalloc (size_t); /* olsen */
  290. ! char *xrealloc (void *ptr,size_t bytes); /* olsen */
  291.   
  292.   /* Return the current directory, newly allocated, arbitrarily long.
  293.      Return NULL and set errno on error. */
  294. *** ORIG/lib/getopt.h    Fri Mar 26 10:47:21 1999
  295. --- lib/getopt.h    Thu Dec 14 14:01:49 2000
  296. ***************
  297. *** 97,103 ****
  298. --- 97,107 ----
  299.      exactly why), and there is no particular need to prototype it.
  300.      We really shouldn't be trampling on the system's namespace at all by
  301.      declaring getopt() but that is a bigger issue.  */
  302. + #ifdef AMIGA
  303. + extern int getopt (int argc, char * const * argv, const char * optstring);
  304. + #else
  305.   extern int getopt ();
  306. + #endif /* AMIGA */
  307.   
  308.   extern int getopt_long (int argc, char *const *argv, const char *shortopts,
  309.                   const struct option *longopts, int *longind);
  310. *** ORIG/lib/regex.h    Mon Jun 19 11:45:24 2000
  311. --- lib/regex.h    Thu Dec 14 14:14:42 2000
  312. ***************
  313. *** 485,493 ****
  314.   #ifdef _REGEX_RE_COMP
  315.   /* 4.2 bsd compatibility.  */
  316.   /* CVS: don't use prototypes: they may conflict with system headers.  */
  317.   extern char *re_comp _RE_ARGS (());
  318.   extern int re_exec _RE_ARGS (());
  319. ! #endif
  320.   
  321.   /* POSIX compatibility.  */
  322.   extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
  323. --- 485,497 ----
  324.   #ifdef _REGEX_RE_COMP
  325.   /* 4.2 bsd compatibility.  */
  326.   /* CVS: don't use prototypes: they may conflict with system headers.  */
  327. + #ifdef AMIGA
  328. + extern char *re_comp _RE_ARGS ((const char * s));
  329. + extern int re_exec _RE_ARGS ((const char * s));
  330. + #else
  331.   extern char *re_comp _RE_ARGS (());
  332.   extern int re_exec _RE_ARGS (());
  333. ! #endif /* AMIGA */
  334.   
  335.   /* POSIX compatibility.  */
  336.   extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
  337. *** ORIG/lib/system.h    Mon Feb 16 13:55:18 1998
  338. --- lib/system.h    Thu Dec 14 17:14:26 2000
  339. ***************
  340. *** 494,499 ****
  341. --- 494,509 ----
  342.   
  343.   #endif /* defined (__CYGWIN32__) || defined (WIN32) */
  344.   
  345. + #ifdef AMIGA
  346. + #include "amiga.h"
  347. + #define FOLD_FN_CHAR(c) amiga_fold_fn_char(c)
  348. + #define FILENAMES_CASE_INSENSITIVE 1
  349. + #define ISDIRSEP(c) ((c) == ':' || (c) == '/')
  350. + #endif /* AMIGA */
  351.   /* Some file systems are case-insensitive.  If FOLD_FN_CHAR is
  352.      #defined, it maps the character C onto its "canonical" form.  In a
  353.      case-insensitive system, it would map all alphanumeric characters
  354. *** ORIG/zlib/deflate.c    Fri Sep 06 15:59:08 1996
  355. --- zlib/deflate.c    Thu Dec 14 14:30:48 2000
  356. ***************
  357. *** 792,798 ****
  358.       } while ((cur_match = prev[cur_match & wmask]) > limit
  359.                && --chain_length != 0);
  360.   
  361. !     if ((uInt)best_len <= s->lookahead) return best_len;
  362.       return s->lookahead;
  363.   }
  364.   #endif /* ASMV */
  365. --- 792,798 ----
  366.       } while ((cur_match = prev[cur_match & wmask]) > limit
  367.                && --chain_length != 0);
  368.   
  369. !     if ((uInt)best_len <= s->lookahead) return (uInt)best_len; /* olsen */
  370.       return s->lookahead;
  371.   }
  372.   #endif /* ASMV */
  373. *** ORIG/zlib/zconf.h    Fri Jul 12 18:06:34 1996
  374. --- zlib/zconf.h    Thu Dec 14 13:52:50 2000
  375. ***************
  376. *** 181,184 ****
  377. --- 181,188 ----
  378.   #  define EXPORT
  379.   #endif
  380.   
  381. + #ifdef AMIGA
  382. + #include "amiga.h"
  383. + #endif /* AMIGA */
  384.   #endif /* _ZCONF_H */
  385. *** ORIG/diff/diff3.c    Thu Aug 03 14:47:23 2000
  386. --- diff/diff3.c    Thu Dec 14 19:03:12 2000
  387. ***************
  388. *** 1304,1310 ****
  389.     if (wstatus == 2)
  390.       diff3_fatal ("subsidiary diff failed");
  391.   
  392. !   if (-1 == (fd = open (diffout, O_RDONLY)))
  393.       diff3_fatal ("could not open temporary diff file");
  394.   
  395.     current_chunk_size = 8 * 1024;
  396. --- 1304,1310 ----
  397.     if (wstatus == 2)
  398.       diff3_fatal ("subsidiary diff failed");
  399.   
  400. !   if (-1 == (fd = open (diffout, O_RDONLY, 0))) /* olsen */
  401.       diff3_fatal ("could not open temporary diff file");
  402.   
  403.     current_chunk_size = 8 * 1024;
  404. *** ORIG/diff/system.h    Wed Feb 17 11:52:10 1999
  405. --- diff/system.h    Thu Dec 14 13:48:59 2000
  406. ***************
  407. *** 269,271 ****
  408. --- 269,275 ----
  409.       *(q)++ = '\''; \
  410.     }
  411.   #endif
  412. + #ifdef AMIGA
  413. + #include "amiga.h"
  414. + #endif /* AMIGA */
  415. *** ORIG/src/cvs.h    Sat Jul 08 14:57:21 2000
  416. --- src/cvs.h    Mon Dec 18 20:56:07 2000
  417. ***************
  418. *** 58,63 ****
  419. --- 58,67 ----
  420.   #include <strings.h>
  421.   #endif
  422.   
  423. + #ifdef AMIGA
  424. + #include "amiga.h"
  425. + #endif /* AMIGA */
  426.   #ifdef SERVER_SUPPORT
  427.   /* If the system doesn't provide strerror, it won't be declared in
  428.      string.h.  */
  429. *** ORIG/src/hash.h    Fri Jun 09 15:54:01 2000
  430. --- src/hash.h    Thu Dec 14 14:19:33 2000
  431. ***************
  432. *** 11,16 ****
  433. --- 11,20 ----
  434.    */
  435.   #define HASHSIZE    151
  436.   
  437. + #ifdef AMIGA
  438. + #undef NT_UNKNOWN
  439. + #endif /* AMIGA */
  440.   /*
  441.    * Types of nodes
  442.    */
  443. ***************
  444. *** 31,37 ****
  445.       struct node *hashprev;
  446.       char *key;
  447.       char *data;
  448. !     void (*delproc) ();
  449.   };
  450.   typedef struct node Node;
  451.   
  452. --- 35,41 ----
  453.       struct node *hashprev;
  454.       char *key;
  455.       char *data;
  456. !     void (*delproc) (void *); /* olsen */
  457.   };
  458.   typedef struct node Node;
  459.   
  460. *** ORIG/src/client.c    Thu Jul 06 11:20:41 2000
  461. --- src/client.c    Thu Dec 14 18:49:36 2000
  462. ***************
  463. *** 3415,3421 ****
  464.   
  465.       memcpy (buf, data, nread);
  466.   
  467. !     return nread;
  468.   }
  469.   
  470.   /*
  471. --- 3415,3421 ----
  472.   
  473.       memcpy (buf, data, nread);
  474.   
  475. !     return (size_t)nread; /* olsen */
  476.   }
  477.   
  478.   /*
  479. ***************
  480. *** 3731,3737 ****
  481.   
  482.       if (resultp == NULL)
  483.       free (result);
  484. !     return input_index;
  485.   }
  486.   
  487.   /* Connect to a forked server process. */
  488. --- 3731,3737 ----
  489.   
  490.       if (resultp == NULL)
  491.       free (result);
  492. !     return (int)input_index; /* olsen */
  493.   }
  494.   
  495.   /* Connect to a forked server process. */
  496. ***************
  497. *** 4921,4927 ****
  498.       else
  499.       fd = CVS_OPEN (file, O_RDONLY | OPEN_BINARY);
  500.   #else
  501. !     fd = CVS_OPEN (file, O_RDONLY | (bin ? OPEN_BINARY : 0));
  502.   #endif
  503.   
  504.       if (fd < 0)
  505. --- 4921,4927 ----
  506.       else
  507.       fd = CVS_OPEN (file, O_RDONLY | OPEN_BINARY);
  508.   #else
  509. !     fd = CVS_OPEN (file, O_RDONLY | (bin ? OPEN_BINARY : 0), 0); /* olsen */
  510.   #endif
  511.   
  512.       if (fd < 0)
  513. *** ORIG/src/hash.c    Fri Jun 09 15:54:01 2000
  514. --- src/hash.c    Thu Dec 14 14:19:49 2000
  515. ***************
  516. *** 21,28 ****
  517.   
  518.   /* hash function */
  519.   static int
  520. ! hashp (key)
  521. !     const char *key;
  522.   {
  523.       unsigned int h = 0;
  524.       unsigned int g;
  525. --- 21,27 ----
  526.   
  527.   /* hash function */
  528.   static int
  529. ! hashp (const char *key) /* olsen */
  530.   {
  531.       unsigned int h = 0;
  532.       unsigned int g;
  533. ***************
  534. *** 38,44 ****
  535.           h = (h ^ (g >> 24)) ^ g;
  536.       }
  537.   
  538. !     return (h % HASHSIZE);
  539.   }
  540.   
  541.   /*
  542. --- 37,43 ----
  543.           h = (h ^ (g >> 24)) ^ g;
  544.       }
  545.   
  546. !     return (int)(h % HASHSIZE); /* olsen */
  547.   }
  548.   
  549.   /*
  550. ***************
  551. *** 184,190 ****
  552.   freenode_mem (p)
  553.       Node *p;
  554.   {
  555. !     if (p->delproc != (void (*) ()) NULL)
  556.       p->delproc (p);            /* call the specified delproc */
  557.       else
  558.       {
  559. --- 183,189 ----
  560.   freenode_mem (p)
  561.       Node *p;
  562.   {
  563. !     if (p->delproc != (void (*) (void *)) NULL) /* olsen */
  564.       p->delproc (p);            /* call the specified delproc */
  565.       else
  566.       {
  567. ***************
  568. *** 196,202 ****
  569.   
  570.       /* to be safe, re-initialize these */
  571.       p->key = p->data = (char *) NULL;
  572. !     p->delproc = (void (*) ()) NULL;
  573.   }
  574.   
  575.   /*
  576. --- 195,201 ----
  577.   
  578.       /* to be safe, re-initialize these */
  579.       p->key = p->data = (char *) NULL;
  580. !     p->delproc = (void (*) (void *)) NULL; /* olsen */
  581.   }
  582.   
  583.   /*
  584. *** ORIG/src/history.c    Tue May 02 17:13:25 2000
  585. --- src/history.c    Thu Dec 14 18:50:48 2000
  586. ***************
  587. *** 1061,1067 ****
  588.       int fd;
  589.       struct stat st_buf;
  590.   
  591. !     if ((fd = CVS_OPEN (fname, O_RDONLY | OPEN_BINARY)) < 0)
  592.       error (1, errno, "cannot open history file: %s", fname);
  593.   
  594.       if (fstat (fd, &st_buf) < 0)
  595. --- 1061,1067 ----
  596.       int fd;
  597.       struct stat st_buf;
  598.   
  599. !     if ((fd = CVS_OPEN (fname, O_RDONLY | OPEN_BINARY, 0)) < 0)    /* olsen */
  600.       error (1, errno, "cannot open history file: %s", fname);
  601.   
  602.       if (fstat (fd, &st_buf) < 0)
  603. *** ORIG/src/main.c    Wed Sep 06 18:35:04 2000
  604. --- src/main.c    Thu Feb 01 17:43:37 2001
  605. ***************
  606. *** 18,24 ****
  607. --- 18,26 ----
  608.   #ifdef HAVE_WINSOCK_H
  609.   #include <winsock.h>
  610.   #else
  611. + #ifndef AMIGA
  612.   extern int gethostname ();
  613. + #endif /* AMIGA */
  614.   #endif
  615.   
  616.   char *program_name;
  617. ***************
  618. *** 95,101 ****
  619.       char *nick1;
  620.       char *nick2;
  621.       
  622. !     int (*func) ();        /* Function takes (argc, argv) arguments. */
  623.   } cmds[] =
  624.   
  625.   {
  626. --- 97,103 ----
  627.       char *nick1;
  628.       char *nick2;
  629.       
  630. !     int (*func) (int argc,char ** argv);    /* Function takes (argc, argv) arguments. */ /* olsen */
  631.   } cmds[] =
  632.   
  633.   {
  634. *** ORIG/src/subr.c    Tue Aug 01 11:20:26 2000
  635. --- src/subr.c    Thu Dec 14 14:12:11 2000
  636. ***************
  637. *** 722,727 ****
  638. --- 722,728 ----
  639.       newname = xreadlink (*filename);
  640.   #else
  641.       error (1, 0, "internal error: islink doesn't like readlink");
  642. +     newname = ""; /* olsen */
  643.   #endif
  644.       
  645.       if (isabsolute (newname))
  646.