-const char *
-skeleton_find (const char *envvar, const char *skeleton_name)
-{
- const char *res = getenv (envvar);
-
-#if defined (MSDOS) || defined (_WIN32)
- if (!res)
- {
- /* 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 /* defined (MSDOS) || defined (_WIN32) */
- if (!res)
- res = skeleton_name;
-
- return res;
-}
-\f
-
-/*----------------------------------------------------------------.
-| Compute BASE_NAME, SHORT_BASE_NAME and output files extensions. |
-`----------------------------------------------------------------*/
-
-/* Replace all characters FROM by TO in the string IN.
- and returns a new allocated string. */
-static char *
-tr (const char *in, char from, char to)
-{
- char *temp;
- char *out;
-
- out = XMALLOC (char, strlen (in) + 1);
-
- for (temp = out; *in; in++, out++)
- if (*in == from)
- *out = to;
- else
- *out = *in;
- *out = 0;
- return (temp);
-}
-
-/* Gets the extension index in FILENAME. Returns 0 if fails to
- find an extension. */
-static int
-get_extension_index (const char *filename)