addr.c
来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 121 行
C
121 行
# include "postbox.h"static char SccsId[] = "@(#)addr.c 4.1 7/25/83";/*** PUTONQ -- put an address node on the end of a queue**** Parameters:** a -- the address to put on the queue.** q -- the queue to put it on.**** Returns:** none**** Side Effects:** none**** Called By:** alias** recipient*/putonq(a, q) register ADDRESS *a; register ADDRESS *q;{ if (q->q_prev == NULL) { q->q_prev = q->q_next = a; a->q_prev = NULL; } else { a->q_prev = q->q_prev; q->q_prev->q_next = a; q->q_prev = a; } a->q_next = NULL;}/*** TKOFFQ -- remove address node from queue**** Takes a node off of a queue, from anyplace in the queue.**** Parameters:** a -- the node to remove.** q -- the queue to remove it from.**** Returns:** none**** Side Effects:** none**** Called By:** alias*/tkoffq(a, q) register ADDRESS *a; register ADDRESS *q;{ if (a->q_prev != NULL) a->q_prev->q_next = a->q_next; else q->q_next = a->q_next; if (a->q_next != NULL) a->q_next->q_prev = a->q_prev; else q->q_prev = a->q_prev;}/*** SAMEADDR -- Determine if tow addresses are the same**** This is not just a straight comparison -- if the mailer doesn't** care about the host we just ignore it, etc.**** Parameters:** a, b -- pointers to the internal forms to compare.** wildflg -- if TRUE, 'a' may have no user specified,** in which case it is to match anything.**** Returns:** TRUE -- they represent the same mailbox.** FALSE -- they don't.**** Side Effects:** none.**** Called By:** recipient** alias*/boolsameaddr(a, b, wildflg) register ADDRESS *a; register ADDRESS *b; bool wildflg;{ /* if they don't have the same mailer, forget it */ if (a->q_mailer != b->q_mailer) return (FALSE); /* if the user isn't the same, we can drop out */ if ((!wildflg || a->q_user[0] != '\0') && strcmp(a->q_user, b->q_user) != 0) return (FALSE); /* if the mailer ignores hosts, we have succeeded! */ if (bitset(M_NOHOST, Mailer[a->q_mailer]->m_flags)) return (TRUE); /* otherwise compare hosts (but be careful for NULL ptrs) */ if (a->q_host == NULL || b->q_host == NULL) return (FALSE); if (strcmp(a->q_host, b->q_host) != 0) return (FALSE); return (TRUE);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?