⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.c

📁 MTOOLS version 2.0 Mtools is a public domain collection of programs to allow Unix systems t
💻 C
字号:
#include <stdio.h>#include <ctype.h>#include "msdos.h"extern char *mcwd;/* * Get name component of filename.  Translates name to upper case.  Returns * pointer to static area. */char *get_name(filename)char *filename;{	char *s, *temp, *strcpy(), *strrchr(), buf[MAX_PATH];	static char ans[13];	strcpy(buf, filename);	temp = buf;					/* skip drive letter */	if (buf[0] && buf[1] == ':')		temp = &buf[2];					/* find the last separator */	if (s = strrchr(temp, '/'))		temp = s + 1;	if (s = strrchr(temp, '\\'))		temp = s + 1;					/* xlate to upper case */	for (s = temp; *s; ++s) {		if (islower(*s))			*s = toupper(*s);	}	strcpy(ans, temp);	return(ans);}/* * Get the path component of the filename.  Translates to upper case. * Returns pointer to a static area.  Doesn't alter leading separator, * always strips trailing separator (unless it is the path itself). */char *get_path(filename)char *filename;{	char *s, *end, *begin, *strcpy(), *strrchr(), buf[MAX_PATH];	char drive, *strcat();	static char ans[MAX_PATH];	int has_sep;	strcpy(buf, filename);	begin = buf;					/* skip drive letter */	drive = '\0';	if (buf[0] && buf[1] == ':') {		drive = (islower(buf[0])) ? toupper(buf[0]) : buf[0];		begin = &buf[2];	}					/* if absolute path */	if (*begin == '/' || *begin == '\\')		ans[0] = '\0';	else {		if (!drive || drive == *mcwd)			strcpy(ans, mcwd + 2);		else			strcpy(ans, "/");	}					/* find last separator */	has_sep = 0;	end = begin;	if (s = strrchr(end, '/')) {		has_sep++;		end = s;	}	if (s = strrchr(end, '\\')) {		has_sep++;		end = s;	}					/* zap the trailing separator */	*end = '\0';					/* translate to upper case */	for (s = begin; *s; ++s) {		if (islower(*s))			*s = toupper(*s);		if (*s == '\\')			*s = '/';	}					/* if separator alone, put it back */	if (!strlen(begin) && has_sep)		strcat(ans, "/");	strcat(ans, begin);	return(ans);}/* * get the drive letter designation */charget_drive(filename)char *filename;{	if (*filename && *(filename + 1) == ':') {		if (islower(*filename))			return(toupper(*filename));		else			return(*filename);	}	else		return(*mcwd);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -