+2001-10-02 Akim Demaille <akim@epita.fr>
+
+ * src/output.c (output_parser): Assert `skeleton'.
+ * src/files.c (skeleton_find): Look harder for skeletons on DOSish
+ systems.
+ From Shura.
+
2001-10-01 Marc Autret <autret_m@epita.fr>
* src/lex.h: Echo modifications.
* src/lex.c (unlex): Parameter is now token_t.
From Hans Aberg.
-
+
2001-10-01 Marc Autret <autret_m@epita.fr>
* src/main.c: Include lex.h.
From Hans Aberg.
-
+
2001-09-29 Akim Demaille <akim@epita.fr>
* src/getargs.c (longopts): `--debug' is `-t', not `-d'.
Piotr Gackiewicz gacek@intertel.com.pl
Richard Stallman rms@gnu.org
Robert Anisko anisko_r@epita.fr
+Shura debil_urod@ngs.ru
Many people are not named here because we lost track of them. We
thank them! Please, help us keeping this list up to date.
{
const char *res = getenv (envvar);
-#ifdef MSDOS
- const char *cp;
-
- /* File doesn't exist in current directory; try in INIT directory. */
- if (!res && (cp = getenv ("INIT")))
+#if defined (MSDOS) || defined (_WIN32)
+ if (!res)
{
- res = XMALLOC (char, strlen (cp) + strlen (skeleton_name) + 2);
- sprintf (res, "%s%c%s", cp, '/', skeleton_name);
+ /* Skeleton file name without path */
+ const char *skel_name = strrchr(skeleton_name, '/');
+ if (!skel_name)
+ skel_name = strrchr(skeleton_name, '\\');
+ if (!skel_name)
+ skel_name = skeleton_name;
+ else
+ ++skel_name;
+
+ /* File doesn't exist in current directory; try in INIT directory. */
+ const char *cp = getenv ("INIT");
+ if (cp)
+ {
+ res = XMALLOC (char, strlen (cp) + strlen (skel_name) + 2);
+ sprintf (res, "%s%c%s", cp, '\\', skel_name);
+ }
+ else if (access (skel_name, 4) == 0) /* Look in current dir. */
+ res = skel_name;
+ else
+ {
+ /* Look in program locations dir. */
+ extern char *program_name;
+ cp = strrchr(program_name, '\\');
+ if (!cp)
+ return skeleton_name;
+ else
+ ++cp;
+ res = XMALLOC (char, cp - program_name + strlen (skel_name) + 1);
+ strncpy (res, program_name, cp - program_name);
+ strcpy (res + (cp - program_name), skel_name);
+ }
}
-#endif /* !MSDOS */
-
+#endif /* defined (MSDOS) || defined (_WIN32) */
if (!res)
res = skeleton_name;