This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
handle perl extended utf8 start bytes
[perl5.git] / patchlevel.h
1 /*    patchlevel.h
2  *
3  *    Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4  *    2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
5  *
6  *    You may distribute under the terms of either the GNU General Public
7  *    License or the Artistic License, as specified in the README file.
8  *
9  */
10
11 #ifndef __PATCHLEVEL_H_INCLUDED__
12
13 /* do not adjust the whitespace! Configure expects the numbers to be
14  * exactly on the third column */
15
16 #define PERL_REVISION   5               /* age */
17 #define PERL_VERSION    13              /* epoch */
18 #define PERL_SUBVERSION 1               /* generation */
19
20 /* The following numbers describe the earliest compatible version of
21    Perl ("compatibility" here being defined as sufficient binary/API
22    compatibility to run XS code built with the older version).
23    Normally this should not change across maintenance releases.
24
25    Note that this only refers to an out-of-the-box build.  Many non-default
26    options such as usemultiplicity tend to break binary compatibility
27    more often.
28
29    This is used by Configure et al to figure out 
30    PERL_INC_VERSION_LIST, which lists version libraries
31    to include in @INC.  See INSTALL for how this works.
32 */
33 #define PERL_API_REVISION       5       /* Adjust manually as needed.  */
34 #define PERL_API_VERSION        13      /* Adjust manually as needed.  */
35 #define PERL_API_SUBVERSION     0       /* Adjust manually as needed.  */
36 /*
37    XXX Note:  The selection of non-default Configure options, such
38    as -Duselonglong may invalidate these settings.  Currently, Configure
39    does not adequately test for this.   A.D.  Jan 13, 2000
40 */
41
42 #define __PATCHLEVEL_H_INCLUDED__
43 #endif
44
45 /*
46         local_patches -- list of locally applied less-than-subversion patches.
47         If you're distributing such a patch, please give it a name and a
48         one-line description, placed just before the last NULL in the array
49         below.  If your patch fixes a bug in the perlbug database, please
50         mention the bugid.  If your patch *IS* dependent on a prior patch,
51         please place your applied patch line after its dependencies. This
52         will help tracking of patch dependencies.
53
54         Please either use 'diff --unified=0' if your diff supports
55         that or edit the hunk of the diff output which adds your patch
56         to this list, to remove context lines which would give patch
57         problems. For instance, if the original context diff is
58
59            *** patchlevel.h.orig        <date here>
60            --- patchlevel.h     <date here>
61            *** 38,43 ***
62            --- 38,44 ---
63                 ,"FOO1235 - some patch"
64                 ,"BAR3141 - another patch"
65                 ,"BAZ2718 - and another patch"
66            +    ,"MINE001 - my new patch"
67                 ,NULL
68              };
69         
70         please change it to 
71            *** patchlevel.h.orig        <date here>
72            --- patchlevel.h     <date here>
73            *** 41,43 ***
74            --- 41,44 ---
75            +    ,"MINE001 - my new patch"
76                 ,NULL
77              };
78         
79         (Note changes to line numbers as well as removal of context lines.)
80         This will prevent patch from choking if someone has previously
81         applied different patches than you.
82
83         History has shown that nobody distributes patches that also
84         modify patchlevel.h. Do it yourself. The following perl
85         program can be used to add a comment to patchlevel.h:
86
87 #!perl
88 die "Usage: perl -x patchlevel.h comment ..." unless @ARGV;
89 open PLIN, "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
90 open PLOUT, ">patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
91 my $seen=0;
92 while (<PLIN>) {
93     if (/\t,NULL/ and $seen) {
94        while (my $c = shift @ARGV){
95             $c =~ s|\\|\\\\|g;
96             $c =~ s|"|\\"|g;
97             print PLOUT qq{\t,"$c"\n};
98        }
99     }
100     $seen++ if /local_patches\[\]/;
101     print PLOUT;
102 }
103 close PLOUT or die "Couldn't close filehandle writing to patchlevel.new : $!";
104 close PLIN or die "Couldn't close filehandle reading from patchlevel.h : $!";
105 close DATA; # needed to allow unlink to work win32.
106 unlink "patchlevel.bak" or warn "Couldn't unlink patchlevel.bak : $!"
107   if -e "patchlevel.bak";
108 rename "patchlevel.h", "patchlevel.bak" or
109   die "Couldn't rename patchlevel.h to patchlevel.bak : $!";
110 rename "patchlevel.new", "patchlevel.h" or
111   die "Couldn't rename patchlevel.new to patchlevel.h : $!";
112 __END__
113
114 Please keep empty lines below so that context diffs of this file do
115 not ever collect the lines belonging to local_patches() into the same
116 hunk.
117
118  */
119
120 #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
121 #  if defined(PERL_IS_MINIPERL)
122 #    define PERL_PATCHNUM "UNKNOWN-miniperl"
123 #    define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
124 #  elif defined(PERL_MICRO)
125 #    define PERL_PATCHNUM "UNKNOWN-microperl"
126 #    define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
127 #  else
128 #include "git_version.h"
129 #  endif
130 static const char * const local_patches[] = {
131         NULL
132 #ifdef PERL_GIT_UNCOMMITTED_CHANGES
133         ,"uncommitted-changes"
134 #endif
135         PERL_GIT_UNPUSHED_COMMITS       /* do not remove this line */
136         ,NULL
137 };
138
139
140
141 /* Initial space prevents this variable from being inserted in config.sh  */
142 #  define       LOCAL_PATCH_COUNT       \
143         ((int)(sizeof(local_patches)/sizeof(local_patches[0])-2))
144
145 /* the old terms of reference, add them only when explicitly included */
146 #define PATCHLEVEL              PERL_VERSION
147 #undef  SUBVERSION              /* OS/390 has a SUBVERSION in a system header */
148 #define SUBVERSION              PERL_SUBVERSION
149 #endif