diff -c -r old/indent-2.2.5/backup.c new/indent-2.2.5/backup.c
*** old/indent-2.2.5/backup.c	Thu Nov  4 17:03:06 1999
--- new/indent-2.2.5/backup.c	Tue Apr 25 18:04:14 2000
***************
*** 221,230 ****
--- 221,239 ----
    int version;
  
    p = pathname + pathlen - 1;
+ #ifdef __MSDOS__
+   while (p > pathname && *p != '/' && *p != '\\' && *p != ':')
+ #else
    while (p > pathname && *p != '/')
+ #endif /* __MSDOS__ */
      p--;
  
+ #ifdef __MSDOS__
+   /* Under MSDOS, we have drive:path... */
+   if (*p == '/' || *p == '\\' || *p == ':')
+ #else
    if (*p == '/')
+ #endif /* __MSDOS__ */
      {
        int dirlen = p - pathname;
        char *dirname;
***************
*** 254,259 ****
--- 263,273 ----
  {
    int last_numbered_version;
    char *backup_name;
+ 
+ #ifdef __DJGPP__ /* DJGPP supports long file names, but only under Win9x. */
+   if (!_USE_LFN)
+     return simple_backup_name (pathname);
+ #endif /* __DJGPP__ */
  
    if (version_control == none)
      return 0;
diff -c -r old/indent-2.2.5/indent.c new/indent-2.2.5/indent.c
*** old/indent-2.2.5/indent.c	Sun Jan 16 15:15:52 2000
--- new/indent-2.2.5/indent.c	Tue Apr 25 18:04:14 2000
***************
*** 2090,2095 ****
--- 2090,2100 ----
  	  struct stat file_stats;
  
  	  in_name = out_name = in_file_names[i];
+ #ifdef __DJGPP__
+  	  /* Check if it is a directory. Skip, if so. */
+  	  if ((stat (in_file_names[i], &file_stats) == -1) ||
+  	      (S_ISDIR(file_stats.st_mode))) continue;
+ #endif
  	  current_input = read_file (in_file_names[i], &file_stats);
  	  output = fopen (out_name, "w");
  	  if (output == 0)
