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

📄 smbrep.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "headers.h"intsmbmatch(char *name, Reprog *rep){	Resub sub;	sub.sp = nil;	sub.ep = nil;	if (regexec(rep, name, &sub, 1) && sub.sp == name && *sub.ep == 0)		return 1;	return 0;}Reprog *smbmkrep(char *pattern){	Reprog *r;	int l;	char *tmp, *p, *q, *t;	l = strlen(pattern);	tmp = smbemalloc(l * 5 + 1);	t = tmp;	p = pattern;	while (*p) {		if (*p == '*') {			if (p[1] == '.') {				strcpy(t, "[^.]*");				t += 5;				p++;			}			else {				*t++ = '.';				*t++ = '*';				p++;			}		}		else if (*p == '?') {			for (q = p + 1; *q && *q == '?'; q++)				;			if (*q == 0 || *q == '.') {				/* at most n copies */				strcpy(t, "[^.]?");				t += 5;				p++;			}			else {				/* exactly n copies */				strcpy(t, "[^.]");				t += 4;				p++;			}		}		else if (strchr(".+{}()|\\^$", *p) != 0) {			/* regexp meta */			*t++ = '\\';			*t++ = *p++;		}		else			*t++ = *p++;	}	*t = 0;	smblogprintif(smbglobals.log.rep, "%s => %s\n", pattern, tmp);	r = regcomp(tmp);	free(tmp);	return r;}

⌨️ 快捷键说明

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