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

📄 hfield.c

📁 linux下qmail的源码 本人加了一些注释
💻 C
字号:
#include "hfield.h"static char *(hname[]) = {  "unknown-header", "sender", "from", "reply-to", "to", "cc", "bcc", "date", "message-id", "subject", "resent-sender", "resent-from", "resent-reply-to", "resent-to", "resent-cc", "resent-bcc", "resent-date", "resent-message-id", "return-receipt-to", "errors-to", "apparently-to", "received", "return-path", "delivered-to", "content-length", "content-type", "content-transfer-encoding", "notice-requested-upon-delivery-to", "mail-followup-to", 0};static int hmatch(s,len,t)char *s;int len;char *t;{ int i; char ch; for (i = 0;ch = t[i];++i)  {   if (i >= len) return 0;   if (ch != s[i])    {     if (ch == '-') return 0;     if (ch - 32 != s[i]) return 0;    }  } for (;;)  {   if (i >= len) return 0;   ch = s[i];   if (ch == ':') return 1;   if ((ch != ' ') && (ch != '\t')) return 0;   ++i;  }}int hfield_known(s,len)char *s;int len;{ int i; char *t; for (i = 1;t = hname[i];++i)   if (hmatch(s,len,t))     return i; return 0;}int hfield_valid(s,len)char *s;int len;{ int i; int j; char ch; for (j = 0;j < len;++j)   if (s[j] == ':')     break; if (j >= len) return 0; while (j)  {   ch = s[j - 1];   if ((ch != ' ') && (ch != '\t'))     break;   --j;  } if (!j) return 0; for (i = 0;i < j;++i)  {   ch = s[i];   if (ch <= 32) return 0;   if (ch >= 127) return 0;  } return 1;}unsigned int hfield_skipname(s,len)char *s;int len;{ int i; char ch; for (i = 0;i < len;++i)   if (s[i] == ':')     break; if (i < len) ++i; while (i < len)  {   ch = s[i];   if ((ch != '\t') && (ch != '\n') && (ch != '\r') && (ch != ' '))     break;   ++i;  } return i;}

⌨️ 快捷键说明

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