Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Unified Diff: gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/smtp.gperf

Issue 10804012: Add native Windows binary for gperf. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/smtp.gperf
===================================================================
--- gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/smtp.gperf (revision 0)
+++ gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/smtp.gperf (revision 0)
@@ -0,0 +1,206 @@
+%{
+/* gperf --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case */
+/* Contributed by Bruce Lilly
+ derived from http://users.erols.com/blilly/mailparse/fields.gperf */
+
+#include <string.h>
+
+%}
+struct header_state { const char *field_name; };
+%%
+Accept-Language
+Action
+Alternate-Recipient
+Approved
+Archive
+Arrival-Date
+Autoforwarded
+Autosubmitted
+Bcc
+Cc
+Comments
+Complaints-To
+Content-alternative
+Content-Base
+Content-Description
+Content-Disposition
+Content-Duration
+Content-Features
+Content-ID
+Content-Language
+Content-Location
+Content-MD5
+Content-Transfer-Encoding
+Content-Type
+Control
+Conversion
+Conversion-With-Loss
+DL-Expansion-History
+DSN-Gateway
+Date
+Deferred-Delivery
+Delivery-Date
+Diagnostic-Code
+Discarded-X400-IPMS-Extensions
+Discarded-X400-MTS-Extensions
+Disclose-Recipients
+Disposition
+Disposition-Notification-Options
+Disposition-Notification-To
+Distribution
+Encrypted
+Error
+Expires
+Failure
+Final-Log-ID
+Final-Recipient
+Followup-To
+From
+Generate-Delivery-Report
+Importance
+In-Reply-To
+Incomplete-Copy
+Injector-Info
+Keywords
+Last-Attempt-Date
+Latest-Delivery-Time
+Lines
+List-Archive
+List-Help
+List-ID
+List-Post
+List-Owner
+List-Subscribe
+List-Unsubscribe
+MDN-Gateway
+Media-Accept-Features
+MIME-Version
+Mail-Copies-To
+Message-ID
+Message-Type
+Newsgroups
+Organization
+Original-Encoded-Information-Types
+Original-Envelope-ID
+Original-Message-ID
+Original-Recipient
+Originator-Return-Address
+Path
+Posted-And-Mailed
+Prevent-Nondelivery-Report
+Priority
+Received
+Received-content-MIC
+Received-From-MTA
+References
+Remote-MTA
+Reply-By
+Reply-To
+Reporting-MTA
+Reporting-UA
+Return-Path
+Sender
+Sensitivity
+Status
+Subject
+Summary
+Supersedes
+To
+User-Agent
+Warning
+Will-Retry-Until
+X400-Content-Identifier
+X400-Content-Return
+X400-Content-Type
+X400-MTS-Identifier
+X400-Originator
+X400-Received
+X400-Recipients
+Xref
+%%
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+static int
+my_case_strcmp (s1, s2)
+ register const char *s1;
+ register const char *s2;
+{
+ for (;;)
+ {
+ unsigned char c1 = *s1++;
+ unsigned char c2 = *s2++;
+ if (c1 >= 'A' && c1 <= 'Z')
+ c1 += 'a' - 'A';
+ if (c2 >= 'A' && c2 <= 'Z')
+ c2 += 'a' - 'A';
+ if (c1 != 0 && c1 == c2)
+ continue;
+ return (int)c1 - (int)c2;
+ }
+}
+
+int
+main (argc, argv)
+ int argc;
+ char *argv[];
+{
+ int i, j, k, n, exitcode;
+ unsigned int len;
+ const struct header_state *hs;
+
+ n = 1;
+ if (argc > 1)
+ n = atoi (argv[1]);
+ if (n < 1)
+ n = 1;
+
+ exitcode = 0;
+ for (i = 0; i < n; i++)
+ {
+ for (j = 0; j <= MAX_HASH_VALUE; j++)
+ {
+ const char *s = wordlist[j].field_name;
+ len = strlen (s);
+ if (len)
+ {
+ hs = header_entry (s, len);
+ if (!(hs && strcmp (hs->field_name, s) == 0))
+ {
+ fprintf (stderr, "%s != %s\n", s, hs ? hs->field_name : "(null)");
+ exitcode = 1;
+ }
+ }
+ }
+ for (j = 0; j <= MAX_HASH_VALUE; j++)
+ {
+ char s[MAX_WORD_LENGTH+1];
+ /* expensive copy with case conversion (for testing) */
+ strcpy (s, wordlist[j].field_name);
+ len = strlen (s);
+ if (len)
+ {
+ for (k = 0; k < len; k++)
+ if (isupper (s[k]))
+ s[k] = tolower (s[k]);
+ else if (islower (s[k]))
+ s[k] = toupper (s[k]);
+ hs = header_entry (s, len);
+ if (!(hs && my_case_strcmp (hs->field_name, s) == 0))
+ {
+ fprintf (stderr, "%s != %s\n", s, hs ? hs->field_name : "(null)");
+ exitcode = 1;
+ }
+ }
+ }
+ hs = header_entry ("Dave", 4);
+ if (hs)
+ {
+ fprintf (stderr, "Dave == %s\n", hs->field_name);
+ exitcode = 1;
+ }
+ }
+ return exitcode;
+}
« no previous file with comments | « gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/permutc2.gperf ('k') | gperf/src/gperf/3.0.1/gperf-3.0.1-src/tests/test.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698