Update package documentation for POSIX-style flags
diff --git a/flag.go b/flag.go
index fa4d5e9..3a39733 100644
--- a/flag.go
+++ b/flag.go
@@ -3,12 +3,23 @@
 // license that can be found in the LICENSE file.
 
 /*
-	Package flag implements command-line flag parsing.
+	pflag is a drop-in replacement for Go's flag package, implementing
+	POSIX/GNU-style --flags.
 
 	Usage:
 
-	Define flags using flag.String(), Bool(), Int(), etc. Example:
-		import "flag"
+	See the documentation of the flag package. All of the existing
+	functionality of the flag package functions identically from a
+	developer's standpoint with one exception:
+
+	* There is an additional string field "Shortcut" in the Flag struct.
+	Most code never instantiates this struct directly, instead using the
+	flag.String(), Bool(), Int(), etc. functions, and is therefore
+	unaffected.
+
+	Import the pflag package under the name "flag" and all existing code
+	should continue to work with no changes.
+		import flag "pflag"
 		var ip *int = flag.Int("flagname", 1234, "help message for flagname")
 	If you like, you can bind the flag to a variable using the Var() functions.
 		var flagvar int
@@ -33,19 +44,39 @@
 	slice flag.Args() or individually as flag.Arg(i).
 	The arguments are indexed from 0 up to flag.NArg().
 
+	The pflag package also defines some new functions that are not in flag,
+	that give one-letter shortcuts for flags. You can use these by appending
+	'P' to the name of any function that defines a flag.
+		var ip = flag.IntP("flagname", "f", 1234, "help message")
+		var flagvar bool
+		func init() {
+			flag.BoolVarP("boolname", "b", true, "help message")
+		}
+		flag.VarP(&flagVar, "varname", "v", 1234, "help message")
+	Shortcut letters can be used with single dashes on the command line.
+	Boolean shortcut flags can be combined with other shortcut flags.
+
 	Command line flag syntax:
-		-flag
-		-flag=x
-		-flag x  // non-boolean flags only
-	One or two minus signs may be used; they are equivalent.
+		--flag    // boolean flags only
+		--flag=x
+		--flag x  // non-boolean flags only
 	The last form is not permitted for boolean flags because the
 	meaning of the command
-		cmd -x *
+		cmd --flag *
 	will change if there is a file called 0, false, etc.  You must
-	use the -flag=false form to turn off a boolean flag.
+	use the --flag=false form to turn off a boolean flag.
 
-	Flag parsing stops just before the first non-flag argument
-	("-" is a non-flag argument) or after the terminator "--".
+	Unlike the flag package, a single dash before an option means something
+	different than a double dash. Single dashes signify a series of shortcut
+	letters for flags. All but the last shortcut letter must be boolean flags.
+		-f          // f must be boolean
+		-abc        // all flags must be boolean
+		-abcn=1234
+		-abcn 1234  // n must be non-boolean
+
+	Flag parsing stops after the terminator "--". Unlike the flag package,
+	flags can be interspersed with arguments anywhere on the command line
+	before this terminator.
 
 	Integer flags accept 1234, 0664, 0x1234 and may be negative.
 	Boolean flags may be 1, 0, t, f, true, false, TRUE, FALSE, True, False.
@@ -71,7 +102,7 @@
 )
 
 // ErrHelp is the error returned if the flag -help is invoked but no such flag is defined.
-var ErrHelp = errors.New("flag: help requested")
+var ErrHelp = errors.New("pflag: help requested")
 
 // -- bool Value
 type boolValue bool