p4ruby 2017.1.1699426-x64-mingw32 → 2021.1.2156749-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/LICENSE.txt +451 -20
- data/README.md +3 -879
- data/ext/P4/clientprogressruby.cpp +0 -1
- data/ext/P4/clientuserruby.cpp +155 -0
- data/ext/P4/clientuserruby.h +44 -0
- data/ext/P4/extconf.rb +69 -13
- data/ext/P4/p4.cpp +84 -9
- data/ext/P4/p4clientapi.cpp +64 -6
- data/ext/P4/p4clientapi.h +11 -2
- data/ext/P4/p4result.cpp +1 -0
- data/ext/P4/p4specdata.cpp +29 -0
- data/ext/P4/p4specdata.h +2 -0
- data/ext/P4/specmgr.cpp +63 -89
- data/lib/2.6/P4.so +0 -0
- data/lib/2.7/P4.so +0 -0
- data/lib/3.0/P4.so +0 -0
- data/lib/P4.rb +1 -1
- data/lib/P4.so +0 -0
- data/lib/P4/version.rb +3 -3
- metadata +15 -16
- data/lib/2.0/P4.so +0 -0
- data/lib/2.1/P4.so +0 -0
- data/lib/2.2/P4.so +0 -0
- data/lib/2.3/P4.so +0 -0
- data/lib/2.4/P4.so +0 -0
    
        data/ext/P4/p4clientapi.cpp
    CHANGED
    
    | @@ -37,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| 37 37 | 
             
            #include <ruby.h>
         | 
| 38 38 | 
             
            #include "undefdups.h"
         | 
| 39 39 | 
             
            #include <p4/clientapi.h>
         | 
| 40 | 
            +
            #include <p4/strtable.h>
         | 
| 40 41 | 
             
            #include <p4/i18napi.h>
         | 
| 41 42 | 
             
            #include <p4/enviro.h>
         | 
| 42 43 | 
             
            #include <p4/hostenv.h>
         | 
| @@ -142,6 +143,21 @@ P4ClientApi::GetEnviroFile() | |
| 142 143 | 
             
                return enviro->GetEnviroFile();
         | 
| 143 144 | 
             
            }
         | 
| 144 145 |  | 
| 146 | 
            +
            void
         | 
| 147 | 
            +
            P4ClientApi::SetEVar( const char *var, const char *val )
         | 
| 148 | 
            +
            {
         | 
| 149 | 
            +
                StrRef sVar( var );
         | 
| 150 | 
            +
                StrRef sVal( val );
         | 
| 151 | 
            +
                client.SetEVar( sVar, sVal );
         | 
| 152 | 
            +
            }
         | 
| 153 | 
            +
             | 
| 154 | 
            +
            const StrPtr *
         | 
| 155 | 
            +
            P4ClientApi::GetEVar( const char *var )
         | 
| 156 | 
            +
            {
         | 
| 157 | 
            +
                StrRef sVar( var );
         | 
| 158 | 
            +
                return client.GetEVar( sVar );
         | 
| 159 | 
            +
            }
         | 
| 160 | 
            +
             | 
| 145 161 | 
             
            void
         | 
| 146 162 | 
             
            P4ClientApi::SetApiLevel( int level )
         | 
| 147 163 | 
             
            {
         | 
| @@ -323,6 +339,9 @@ P4ClientApi::Disconnect() | |
| 323 339 | 
             
                // Clear the specdef cache.
         | 
| 324 340 | 
             
                specMgr.Reset();
         | 
| 325 341 |  | 
| 342 | 
            +
                // Clear out any results from the last command
         | 
| 343 | 
            +
                ui.Reset();
         | 
| 344 | 
            +
             | 
| 326 345 | 
             
                return Qtrue;
         | 
| 327 346 | 
             
            }
         | 
| 328 347 |  | 
| @@ -426,12 +445,6 @@ P4ClientApi::IsIgnored( const char *path ) | |
| 426 445 | 
             
                return ignore->Reject( p, client.GetIgnoreFile() );
         | 
| 427 446 | 
             
            }
         | 
| 428 447 |  | 
| 429 | 
            -
            VALUE
         | 
| 430 | 
            -
            P4ClientApi::Reset()
         | 
| 431 | 
            -
            {
         | 
| 432 | 
            -
                ui.Reset();
         | 
| 433 | 
            -
            }
         | 
| 434 | 
            -
             | 
| 435 448 | 
             
            //
         | 
| 436 449 | 
             
            // Run returns the results of the command. If the client has not been
         | 
| 437 450 | 
             
            // connected, then an exception is raised but errors from Perforce
         | 
| @@ -764,3 +777,48 @@ P4ClientApi::Except( const char *func, Error *e ) | |
| 764 777 | 
             
                Except( func, m.Text() );
         | 
| 765 778 | 
             
            }
         | 
| 766 779 |  | 
| 780 | 
            +
            //
         | 
| 781 | 
            +
            // SSO Handlers
         | 
| 782 | 
            +
            //
         | 
| 783 | 
            +
             | 
| 784 | 
            +
            VALUE
         | 
| 785 | 
            +
            P4ClientApi::SetEnableSSO( VALUE e )
         | 
| 786 | 
            +
            {
         | 
| 787 | 
            +
                return ui.EnableSSO( e );
         | 
| 788 | 
            +
            }
         | 
| 789 | 
            +
             | 
| 790 | 
            +
            VALUE
         | 
| 791 | 
            +
            P4ClientApi::GetEnableSSO()
         | 
| 792 | 
            +
            {
         | 
| 793 | 
            +
                return ui.SSOEnabled();
         | 
| 794 | 
            +
            }
         | 
| 795 | 
            +
             | 
| 796 | 
            +
            VALUE
         | 
| 797 | 
            +
            P4ClientApi::GetSSOVars()
         | 
| 798 | 
            +
            {
         | 
| 799 | 
            +
                return ui.GetSSOVars();
         | 
| 800 | 
            +
            }
         | 
| 801 | 
            +
             | 
| 802 | 
            +
            VALUE
         | 
| 803 | 
            +
            P4ClientApi::SetSSOPassResult( VALUE r )
         | 
| 804 | 
            +
            {
         | 
| 805 | 
            +
                return ui.SetSSOPassResult( r );
         | 
| 806 | 
            +
            }
         | 
| 807 | 
            +
             | 
| 808 | 
            +
            VALUE
         | 
| 809 | 
            +
            P4ClientApi::GetSSOPassResult()
         | 
| 810 | 
            +
            {
         | 
| 811 | 
            +
                return ui.GetSSOPassResult();
         | 
| 812 | 
            +
            }
         | 
| 813 | 
            +
             | 
| 814 | 
            +
            VALUE
         | 
| 815 | 
            +
            P4ClientApi::SetSSOFailResult( VALUE r )
         | 
| 816 | 
            +
            {
         | 
| 817 | 
            +
               return ui.SetSSOFailResult( r );
         | 
| 818 | 
            +
            }
         | 
| 819 | 
            +
             | 
| 820 | 
            +
            VALUE
         | 
| 821 | 
            +
            P4ClientApi::GetSSOFailResult()
         | 
| 822 | 
            +
            {
         | 
| 823 | 
            +
                return ui.GetSSOFailResult();
         | 
| 824 | 
            +
            }
         | 
    
        data/ext/P4/p4clientapi.h
    CHANGED
    
    | @@ -73,6 +73,7 @@ public: | |
| 73 73 | 
             
                void SetClient( const char *c )	{ client.SetClient( c );	}
         | 
| 74 74 | 
             
                void SetCwd( const char *c );
         | 
| 75 75 | 
             
                void SetEnviroFile( const char *c );
         | 
| 76 | 
            +
                void SetEVar( const char *var, const char *val );
         | 
| 76 77 | 
             
                void SetHost( const char *h )	{ client.SetHost( h );		}
         | 
| 77 78 | 
             
                void SetIgnoreFile( const char *f )	{ client.SetIgnoreFile( f );	}
         | 
| 78 79 | 
             
                void SetMaxResults( int v )		{ maxResults = v;		}
         | 
| @@ -96,6 +97,7 @@ public: | |
| 96 97 | 
             
                const StrPtr &GetCwd()		{ return client.GetCwd();	}
         | 
| 97 98 | 
             
                const char * GetEnv( const char *v);
         | 
| 98 99 | 
             
                const StrPtr *GetEnviroFile();
         | 
| 100 | 
            +
                const StrPtr *GetEVar(const char *v);
         | 
| 99 101 | 
             
                const StrPtr &GetHost()		{ return client.GetHost();	}
         | 
| 100 102 | 
             
                const StrPtr &GetIgnoreFile()	{ return client.GetIgnoreFile();}
         | 
| 101 103 | 
             
                const StrPtr &GetLanguage()		{ return client.GetLanguage();	}
         | 
| @@ -121,7 +123,6 @@ public: | |
| 121 123 | 
             
                VALUE Connect();		// P4Exception on error
         | 
| 122 124 | 
             
                VALUE Connected();		// Return true if connected and not dropped.
         | 
| 123 125 | 
             
                VALUE Disconnect();
         | 
| 124 | 
            -
                VALUE Reset();          // Clear out any results from the previous command
         | 
| 125 126 |  | 
| 126 127 | 
             
                // Executing commands.
         | 
| 127 128 | 
             
                VALUE Run( const char *cmd, int argc, char * const *argv );
         | 
| @@ -170,6 +171,15 @@ public: | |
| 170 171 | 
             
                VALUE SetProgress( VALUE progress );
         | 
| 171 172 | 
             
                VALUE GetProgress() { return ui.GetProgress(); }
         | 
| 172 173 |  | 
| 174 | 
            +
                // SSO handler
         | 
| 175 | 
            +
                VALUE SetEnableSSO( VALUE e );
         | 
| 176 | 
            +
                VALUE GetEnableSSO();
         | 
| 177 | 
            +
                VALUE GetSSOVars();
         | 
| 178 | 
            +
                VALUE SetSSOPassResult( VALUE r );
         | 
| 179 | 
            +
                VALUE GetSSOPassResult();
         | 
| 180 | 
            +
                VALUE SetSSOFailResult( VALUE r );
         | 
| 181 | 
            +
                VALUE GetSSOFailResult();
         | 
| 182 | 
            +
             | 
| 173 183 | 
             
                // Ruby garbage collection
         | 
| 174 184 | 
             
                void  GCMark();
         | 
| 175 185 |  | 
| @@ -248,4 +258,3 @@ private: | |
| 248 258 | 
             
                int			maxScanRows;
         | 
| 249 259 | 
             
                int			maxLockTime;
         | 
| 250 260 | 
             
            };
         | 
| 251 | 
            -
             | 
    
        data/ext/P4/p4result.cpp
    CHANGED
    
    
    
        data/ext/P4/p4specdata.cpp
    CHANGED
    
    | @@ -106,3 +106,32 @@ SpecDataRuby::SetLine( SpecElem *sd, int x, const StrPtr *v, Error *e ) | |
| 106 106 | 
             
            	}
         | 
| 107 107 | 
             
            	return;
         | 
| 108 108 | 
             
            }
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            void
         | 
| 111 | 
            +
            SpecDataRuby::Comment ( SpecElem *sd, int x, const char **wv,  int nl, Error *e )
         | 
| 112 | 
            +
            {
         | 
| 113 | 
            +
            	VALUE 	key;
         | 
| 114 | 
            +
            	VALUE	val;
         | 
| 115 | 
            +
            	VALUE	ary;
         | 
| 116 | 
            +
            	StrBuf	t;
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            	key = P4Utils::ruby_string( sd->tag.Text(), sd->tag.Length() );
         | 
| 119 | 
            +
            	val = P4Utils::ruby_string( *wv );
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            	if( sd->IsList() )
         | 
| 122 | 
            +
            	{
         | 
| 123 | 
            +
             | 
| 124 | 
            +
            	    ary = rb_hash_aref( hash, key ); // rb_hash_aref  - get the value for hash key
         | 
| 125 | 
            +
            	    if( ary == Qnil )
         | 
| 126 | 
            +
            	    {
         | 
| 127 | 
            +
            		ary = rb_ary_new();
         | 
| 128 | 
            +
            		rb_hash_aset( hash, key, ary ); // rb_hash_aset(hash, key, value) - set the hash key to value
         | 
| 129 | 
            +
            	    }
         | 
| 130 | 
            +
            	    rb_ary_store( ary, x, val );
         | 
| 131 | 
            +
            	}
         | 
| 132 | 
            +
            	else
         | 
| 133 | 
            +
            	{ 
         | 
| 134 | 
            +
            	    rb_hash_aset( hash, key, val );
         | 
| 135 | 
            +
            	}
         | 
| 136 | 
            +
            	return;
         | 
| 137 | 
            +
            }
         | 
    
        data/ext/P4/p4specdata.h
    CHANGED
    
    | @@ -44,6 +44,8 @@ class SpecDataRuby : public SpecData | |
| 44 44 | 
             
            	virtual StrPtr *GetLine( SpecElem *sd, int x, const char **cmt );
         | 
| 45 45 | 
             
            	virtual void	SetLine( SpecElem *sd, int x, const StrPtr *val,
         | 
| 46 46 | 
             
            				Error *e );
         | 
| 47 | 
            +
            	virtual void	Comment( SpecElem *sd, int x, const char **wv,
         | 
| 48 | 
            +
            	            int nl, Error *e );
         | 
| 47 49 |  | 
| 48 50 | 
             
                private:
         | 
| 49 51 | 
             
            	VALUE	hash;
         | 
    
        data/ext/P4/specmgr.cpp
    CHANGED
    
    | @@ -63,21 +63,6 @@ struct defaultspec { | |
| 63 63 | 
             
                        "unlocked/locked;;"
         | 
| 64 64 | 
             
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 65 65 | 
             
                },
         | 
| 66 | 
            -
                {
         | 
| 67 | 
            -
                    "changeX",
         | 
| 68 | 
            -
                    "Change;code:201;rq;ro;fmt:L;seq:1;len:10;;"
         | 
| 69 | 
            -
                    "Date;code:202;type:date;ro;fmt:R;seq:3;len:20;;"
         | 
| 70 | 
            -
                    "Client;code:203;ro;fmt:L;seq:2;len:32;;"
         | 
| 71 | 
            -
                    "User;code:204;ro;fmt:L;seq:4;len:32;;"
         | 
| 72 | 
            -
                    "Status;code:205;ro;fmt:R;seq:5;len:10;;"
         | 
| 73 | 
            -
                    "Type;code:211;seq:6;type:select;fmt:L;len:10;"
         | 
| 74 | 
            -
                        "val:public/restricted;;"
         | 
| 75 | 
            -
                    "ImportedBy;code:212;type:line;ro;fmt:L;len:32;;"
         | 
| 76 | 
            -
                    "Identity;code:213;type:line;;"
         | 
| 77 | 
            -
                    "Description;code:206;type:text;rq;;"
         | 
| 78 | 
            -
                    "Jobs;code:209;type:wlist;words:2;len:32;;"
         | 
| 79 | 
            -
                    "Files;code:210;type:llist;len:64;;"
         | 
| 80 | 
            -
                },
         | 
| 81 66 | 
             
                {
         | 
| 82 67 | 
             
                    "change",
         | 
| 83 68 | 
             
                    "Change;code:201;rq;ro;fmt:L;seq:1;len:10;;"
         | 
| @@ -92,6 +77,7 @@ struct defaultspec { | |
| 92 77 | 
             
                    "Description;code:206;type:text;rq;seq:7;;"
         | 
| 93 78 | 
             
                    "JobStatus;code:207;fmt:I;type:select;seq:9;;"
         | 
| 94 79 | 
             
                    "Jobs;code:208;type:wlist;seq:8;len:32;;"
         | 
| 80 | 
            +
                    "Stream;code:214;type:line;len:64;;"
         | 
| 95 81 | 
             
                    "Files;code:210;type:llist;len:64;;"
         | 
| 96 82 | 
             
                },
         | 
| 97 83 | 
             
                {
         | 
| @@ -115,47 +101,12 @@ struct defaultspec { | |
| 115 101 | 
             
                    "Stream;code:314;type:line;len:64;;"
         | 
| 116 102 | 
             
                    "StreamAtChange;code:316;type:line;len:64;;"
         | 
| 117 103 | 
             
                    "ServerID;code:315;type:line;ro;len:64;;"
         | 
| 118 | 
            -
                    "Type;code:318;type:select;len:10;val: | 
| 104 | 
            +
                    "Type;code:318;type:select;len:10;val:"
         | 
| 105 | 
            +
                        "writeable/readonly/graph/partitioned;;"
         | 
| 119 106 | 
             
                    "Backup;code:319;type:select;len:10;val:enable/disable;;"
         | 
| 120 107 | 
             
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 121 108 | 
             
                    "ChangeView;code:317;type:llist;len:64;;"
         | 
| 122 109 | 
             
                },
         | 
| 123 | 
            -
                {
         | 
| 124 | 
            -
                    "clientX",
         | 
| 125 | 
            -
                    "Client;code:301;rq;ro;seq:1;len:32;;"
         | 
| 126 | 
            -
                    "Update;code:302;type:date;ro;seq:2;fmt:L;len:20;;"
         | 
| 127 | 
            -
                    "Access;code:303;type:date;ro;seq:4;fmt:L;len:20;;"
         | 
| 128 | 
            -
                    "Owner;code:304;seq:3;fmt:R;len:32;;"
         | 
| 129 | 
            -
                    "Host;code:305;seq:5;fmt:R;len:32;;"
         | 
| 130 | 
            -
                    "Description;code:306;type:text;len:128;;"
         | 
| 131 | 
            -
                    "Root;code:307;rq;type:line;len:64;;"
         | 
| 132 | 
            -
                    "AltRoots;code:308;type:llist;len:64;;"
         | 
| 133 | 
            -
                    "Options;code:309;type:line;len:64;val:"
         | 
| 134 | 
            -
                        "noallwrite/allwrite,noclobber/clobber,nocompress/compress,"
         | 
| 135 | 
            -
                        "unlocked/locked,nomodtime/modtime,normdir/rmdir;;"
         | 
| 136 | 
            -
                    "SubmitOptions;code:313;type:select;fmt:L;len:25;val:"
         | 
| 137 | 
            -
                        "submitunchanged/submitunchanged+reopen/revertunchanged/"
         | 
| 138 | 
            -
                        "revertunchanged+reopen/leaveunchanged/leaveunchanged+reopen;;"
         | 
| 139 | 
            -
                    "LineEnd;code:310;type:select;fmt:L;len:12;val:"
         | 
| 140 | 
            -
                        "local/unix/mac/win/share;;"
         | 
| 141 | 
            -
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 142 | 
            -
                },
         | 
| 143 | 
            -
                {
         | 
| 144 | 
            -
                    "clientSpecing021",
         | 
| 145 | 
            -
                    "Client;code:301;rq;ro;len:32;;"
         | 
| 146 | 
            -
                    "Update;code:302;type:date;ro;len:20;;"
         | 
| 147 | 
            -
                    "Access;code:303;type:date;ro;len:20;;"
         | 
| 148 | 
            -
                    "Owner;code:304;len:32;;"
         | 
| 149 | 
            -
                    "Host;code:305;len:32;;"
         | 
| 150 | 
            -
                    "Description;code:306;type:text;len:128;;"
         | 
| 151 | 
            -
                    "Root;code:307;rq;type:line;len:64;;"
         | 
| 152 | 
            -
                    "AltRoots;code:308;type:text;len:64;;"
         | 
| 153 | 
            -
                    "Options;code:309;type:line;len:64;val:"
         | 
| 154 | 
            -
                        "noallwrite/allwrite,noclobber/clobber,nocompress/compress,"
         | 
| 155 | 
            -
                        "unlocked/locked,nomodtime/modtime,normdir/rmdir;;"
         | 
| 156 | 
            -
                    "LineEnd;code:310;type:select;len:12;val:local/unix/mac/win/share;;"
         | 
| 157 | 
            -
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 158 | 
            -
                },
         | 
| 159 110 | 
             
                {
         | 
| 160 111 | 
             
                    "depot",
         | 
| 161 112 | 
             
                    "Depot;code:251;rq;ro;len:32;;"
         | 
| @@ -175,11 +126,13 @@ struct defaultspec { | |
| 175 126 | 
             
                    "MaxResults;code:402;type:word;len:12;;"
         | 
| 176 127 | 
             
                    "MaxScanRows;code:403;type:word;len:12;;"
         | 
| 177 128 | 
             
                    "MaxLockTime;code:407;type:word;len:12;;"
         | 
| 129 | 
            +
                    "MaxOpenFiles;code:413;type:word;len:12;;"
         | 
| 178 130 | 
             
                    "Timeout;code:406;type:word;len:12;;"
         | 
| 179 131 | 
             
                    "PasswordTimeout;code:409;type:word;len:12;;"
         | 
| 180 132 | 
             
                    "LdapConfig;code:410;type:line;len:128;;"
         | 
| 181 133 | 
             
                    "LdapSearchQuery;code:411;type:line;len:128;;"
         | 
| 182 134 | 
             
                    "LdapUserAttribute;code:412;type:line;len:128;;"
         | 
| 135 | 
            +
                    "LdapUserDNAttribute;code:414;type:line;len:128;;"
         | 
| 183 136 | 
             
                    "Subgroups;code:404;type:wlist;len:32;opt:default;;"
         | 
| 184 137 | 
             
                    "Owners;code:408;type:wlist;len:32;opt:default;;"
         | 
| 185 138 | 
             
                    "Users;code:405;type:wlist;len:32;opt:default;;"
         | 
| @@ -247,36 +200,67 @@ struct defaultspec { | |
| 247 200 | 
             
                    "Clients;code:458;len:8;;"
         | 
| 248 201 | 
             
                    "Users;code:459;len:8;;"
         | 
| 249 202 | 
             
                    "Files;code:460;len:8;;"
         | 
| 250 | 
            -
             | 
| 203 | 
            +
                    "Repos;code:462;len:8;;"
         | 
| 204 | 
            +
                    "ExtraCapabilities;code:463;type:llist;len:512;;"
         | 
| 205 | 
            +
                    },
         | 
| 251 206 | 
             
                {
         | 
| 252 207 | 
             
                    "protect",
         | 
| 253 | 
            -
                    " | 
| 208 | 
            +
                    "SubPath;code:502;ro;len:64;;"
         | 
| 209 | 
            +
                    "Update;code:503;type:date;ro;fmt:L;len:20;;"
         | 
| 210 | 
            +
                    "Protections;code:501;fmt:C;type:wlist;words:5;opt:default;z;len:64;;"
         | 
| 254 211 | 
             
                },
         | 
| 255 212 | 
             
                {
         | 
| 256 213 | 
             
                    "remote",
         | 
| 257 | 
            -
                    "RemoteID;code:851;rq;ro;len:32;;"
         | 
| 214 | 
            +
                    "RemoteID;code:851;rq;ro;fmt:L;len:32;;"
         | 
| 258 215 | 
             
                    "Address;code:852;rq;type:line;len:32;;"
         | 
| 259 216 | 
             
                    "Owner;code:853;fmt:R;len:32;;"
         | 
| 260 217 | 
             
                    "RemoteUser;code:861;fmt:R;len:32;;"
         | 
| 261 218 | 
             
                    "Options;code:854;type:line;len:32;val:"
         | 
| 262 | 
            -
                        "unlocked/ | 
| 219 | 
            +
                        "unlocked/locked,nocompress/compress,copyrcs/nocopyrcs;;"
         | 
| 263 220 | 
             
                    "Update;code:855;type:date;ro;fmt:L;len:20;;"
         | 
| 264 221 | 
             
                    "Access;code:856;type:date;ro;fmt:L;len:20;;"
         | 
| 265 222 | 
             
                    "Description;code:857;type:text;len:128;;"
         | 
| 266 223 | 
             
                    "LastFetch;code:858;fmt:L;len:10;;"
         | 
| 267 224 | 
             
                    "LastPush;code:859;fmt:L;len:10;;"
         | 
| 268 225 | 
             
                    "DepotMap;code:860;type:wlist;words:2;len:64;;"
         | 
| 226 | 
            +
                    "ArchiveLimits;code:862;type:wlist;words:2;len:64;;"
         | 
| 269 227 | 
             
                },
         | 
| 270 228 | 
             
                {
         | 
| 271 | 
            -
                    " | 
| 272 | 
            -
                    " | 
| 273 | 
            -
                    " | 
| 274 | 
            -
                    " | 
| 275 | 
            -
                    " | 
| 276 | 
            -
                    " | 
| 277 | 
            -
                    " | 
| 278 | 
            -
                    " | 
| 279 | 
            -
                    " | 
| 229 | 
            +
                    "repo",
         | 
| 230 | 
            +
                    "Repo;code:1001;rq;ro;fmt:L;len:128;;"
         | 
| 231 | 
            +
                    "Owner;code:1002;fmt:R;len:32;;"
         | 
| 232 | 
            +
                    "Created;code:1003;type:date;ro;fmt:L;len:20;;"
         | 
| 233 | 
            +
                    "Pushed;code:1004;type:date;ro;fmt:R;len:20;;"
         | 
| 234 | 
            +
                    "ForkedFrom;code:1005;ro;fmt:L;len:128;;"
         | 
| 235 | 
            +
                    "Description;code:1006;type:text;len:128;;"
         | 
| 236 | 
            +
                    "DefaultBranch;code:1007;fmt:L;len:32;;"
         | 
| 237 | 
            +
                    "MirroredFrom;code:1008;fmt:R;len:32;;"
         | 
| 238 | 
            +
                    "Options;code:1009;type:select;len:10;val:lfs/nolfs;;"
         | 
| 239 | 
            +
                    "GconnMirrorServerId;code:1010;fmt:L;len:32;;"
         | 
| 240 | 
            +
                    "GconnMirrorSecretToken;code:NNN;len:36;;"
         | 
| 241 | 
            +
                    "GconnMirrorStatus;code:NNN;len:8;;"
         | 
| 242 | 
            +
                    "GconnMirrorExcludedBranches;code:NNN;len:256;;"
         | 
| 243 | 
            +
                    "GconnMirrorHideFetchUrl;code:NNN;len:5;;"
         | 
| 244 | 
            +
                },
         | 
| 245 | 
            +
                {
         | 
| 246 | 
            +
                    "server",
         | 
| 247 | 
            +
                    "ServerID;code:751;rq;ro;len:32;;"
         | 
| 248 | 
            +
                    "Type;code:752;rq;len:32;;"
         | 
| 249 | 
            +
                    "Name;code:753;type:line;len:32;;"
         | 
| 250 | 
            +
                    "Address;code:754;type:line;len:32;;"
         | 
| 251 | 
            +
                    "ExternalAddress;code:755;type:line;len:32;;"
         | 
| 252 | 
            +
                    "Services;code:756;rq;len:128;;"
         | 
| 253 | 
            +
                    "Options;code:764;type:line;len:32;val:"
         | 
| 254 | 
            +
                        "nomandatory/mandatory;;"
         | 
| 255 | 
            +
                    "ReplicatingFrom;code:765;type:line;len:32;;"
         | 
| 256 | 
            +
                    "Description;code:757;type:text;len:128;;"
         | 
| 257 | 
            +
                    "User;code:761;type:line;len:64;;"
         | 
| 258 | 
            +
                    "AllowedAddresses;code:763;type:wlist;len:64;;"
         | 
| 259 | 
            +
                    "UpdateCachedRepos;code:766;type:wlist;len:64;;"
         | 
| 260 | 
            +
                    "ClientDataFilter;code:758;type:wlist;len:64;;"
         | 
| 261 | 
            +
                    "RevisionDataFilter;code:759;type:wlist;len:64;;"
         | 
| 262 | 
            +
                    "ArchiveDataFilter;code:760;type:wlist;len:64;;"
         | 
| 263 | 
            +
                    "DistributedConfig;code:762;type:text;len:128;;"
         | 
| 280 264 | 
             
                },
         | 
| 281 265 | 
             
                {
         | 
| 282 266 | 
             
                    "spec",
         | 
| @@ -286,6 +270,7 @@ struct defaultspec { | |
| 286 270 | 
             
                    "Values;code:354;type:wlist;words:2;;"
         | 
| 287 271 | 
             
                    "Presets;code:355;type:wlist;words:2;;"
         | 
| 288 272 | 
             
                    "Openable;code:362;type:wlist;words:2;;"
         | 
| 273 | 
            +
                        "Maxwords;code:361;type:wlist;words:2;;"
         | 
| 289 274 | 
             
                    "Comments;code:356;type:text;;"
         | 
| 290 275 | 
             
                },
         | 
| 291 276 | 
             
                {
         | 
| @@ -293,28 +278,30 @@ struct defaultspec { | |
| 293 278 | 
             
                    "Stream;code:701;rq;ro;len:64;;"
         | 
| 294 279 | 
             
                    "Update;code:705;type:date;ro;fmt:L;len:20;;"
         | 
| 295 280 | 
             
                    "Access;code:706;type:date;ro;fmt:L;len:20;;"
         | 
| 296 | 
            -
                    "Owner;code:704;len:32;;"
         | 
| 297 | 
            -
                    "Name;code:703;rq;type:line;len:32;;"
         | 
| 281 | 
            +
                    "Owner;code:704;len:32;open:isolate;;"
         | 
| 282 | 
            +
                    "Name;code:703;rq;type:line;len:32;open:isolate;;"
         | 
| 298 283 | 
             
                    "Parent;code:702;rq;len:64;open:isolate;;"
         | 
| 299 284 | 
             
                    "Type;code:708;rq;len:32;open:isolate;;"
         | 
| 300 | 
            -
                    "Description;code:709;type:text;len:128;;"
         | 
| 285 | 
            +
                    "Description;code:709;type:text;len:128;open:isolate;;"
         | 
| 301 286 | 
             
                    "Options;code:707;type:line;len:64;val:"
         | 
| 302 287 | 
             
                        "allsubmit/ownersubmit,unlocked/locked,"
         | 
| 303 288 | 
             
                        "toparent/notoparent,fromparent/nofromparent,"
         | 
| 304 | 
            -
                        "mergedown/mergeany;;"
         | 
| 305 | 
            -
                    " | 
| 306 | 
            -
                    " | 
| 307 | 
            -
                    " | 
| 289 | 
            +
                        "mergedown/mergeany;open:isolate;;"
         | 
| 290 | 
            +
                    "ParentView;code:NNN;rq;open:isolate;"
         | 
| 291 | 
            +
                    "pre:inherit;val:noinherit/inherit;;"
         | 
| 292 | 
            +
                    "Paths;code:710;rq;type:wlist;words:2;maxwords:3;len:64;open:propagate;fmt:C;;"
         | 
| 293 | 
            +
                    "Remapped;code:711;type:wlist;words:2;len:64;open:propagate;fmt:C;;"
         | 
| 294 | 
            +
                    "Ignored;code:712;type:wlist;words:1;len:64;open:propagate;fmt:C;;"
         | 
| 308 295 | 
             
                    "View;code:713;type:wlist;words:2;len:64;;"
         | 
| 309 296 | 
             
                    "ChangeView;code:714;type:llist;ro;len:64;;"
         | 
| 310 297 | 
             
                },
         | 
| 311 298 | 
             
                {
         | 
| 312 299 | 
             
                    "triggers",
         | 
| 313 | 
            -
                    "Triggers;code:551;type:wlist;words:4;len:64;opt:default;"
         | 
| 300 | 
            +
                    "Triggers;code:551;type:wlist;words:4;len:64;opt:default;z;;"
         | 
| 314 301 | 
             
                },
         | 
| 315 302 | 
             
                {
         | 
| 316 303 | 
             
                   "typemap",
         | 
| 317 | 
            -
                    "TypeMap;code:601;type:wlist;words:2;len:64;opt:default;"
         | 
| 304 | 
            +
                    "TypeMap;code:601;type:wlist;words:2;len:64;opt:default;z;;"
         | 
| 318 305 | 
             
                },
         | 
| 319 306 | 
             
                {
         | 
| 320 307 | 
             
                    "user",
         | 
| @@ -326,23 +313,10 @@ struct defaultspec { | |
| 326 313 | 
             
                    "FullName;code:655;fmt:R;type:line;rq;len:32;;"
         | 
| 327 314 | 
             
                    "JobView;code:656;type:line;len:64;;"
         | 
| 328 315 | 
             
                    "Password;code:657;len:32;;"
         | 
| 329 | 
            -
                    "AuthMethod;code:662;fmt:L;len:10;val: | 
| 316 | 
            +
                    "AuthMethod;code:662;fmt:L;len:10;val:"
         | 
| 317 | 
            +
                        "perforce/perforce+2fa/ldap/ldap+2fa;;"
         | 
| 330 318 | 
             
                    "Reviews;code:658;type:wlist;len:64;;"
         | 
| 331 319 | 
             
                },
         | 
| 332 | 
            -
                {
         | 
| 333 | 
            -
                    "server",
         | 
| 334 | 
            -
                    "ServerID;code:751;rq;ro;len:32;;"
         | 
| 335 | 
            -
                    "Type;code:752;rq;len:32;;"
         | 
| 336 | 
            -
                    "Name;code:753;type:line;len:32;;"
         | 
| 337 | 
            -
                    "Address;code:754;type:line;len:32;;"
         | 
| 338 | 
            -
                    "ExternalAddress;code:755;type:line;len:32;;"
         | 
| 339 | 
            -
                    "Services;code:756;rq;len:128;;"
         | 
| 340 | 
            -
                    "Description;code:757;type:text;len:128;;"
         | 
| 341 | 
            -
                    "User;code:761;type:line;len:64;;"
         | 
| 342 | 
            -
                    "ClientDataFilter;code:758;type:wlist;len:64;;"
         | 
| 343 | 
            -
                    "RevisionDataFilter;code:759;type:wlist;len:64;;"
         | 
| 344 | 
            -
                    "ArchiveDataFilter;code:760;type:wlist;len:64;;"
         | 
| 345 | 
            -
                },
         | 
| 346 320 | 
             
                { 0, 0 }
         | 
| 347 321 | 
             
            };
         | 
| 348 322 |  | 
    
        data/lib/2.6/P4.so
    ADDED
    
    | Binary file | 
    
        data/lib/2.7/P4.so
    ADDED
    
    | Binary file | 
    
        data/lib/3.0/P4.so
    ADDED
    
    | Binary file |