ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/doc2messages.xsl
(Generate patch)

Comparing kgsueme/doc/doc2messages.xsl (file contents):
Revision 1.5 by pcg, Tue Jun 10 08:01:17 2003 UTC vs.
Revision 1.9 by pcg, Sat Jul 19 14:19:39 2003 UTC

101sub enc_U64 { 101sub enc_U64 {
102 enc_U32 $_[0] & 0xffffffff; 102 enc_U32 $_[0] & 0xffffffff;
103 enc_U32 +($_[0] >> 32) & 0xffffffff; 103 enc_U32 +($_[0] >> 32) & 0xffffffff;
104} 104}
105 105
106sub enc_I8 {
107 $data .= pack "c", $_[0];
108}
109
110sub enc_I16 {
111 enc_U16 unpack "S", pack "s", $_[0];
112}
113
106sub enc_I32 { 114sub enc_I32 {
107 enc_U32 unpack "I", pack "i", $_[0]; 115 enc_U32 unpack "I", pack "i", $_[0];
108} 116}
109 117
110sub enc_DATA { 118sub enc_DATA {
114 122
115sub enc_STRING { 123sub enc_STRING {
116 # should use encode for speed and clarity ;) 124 # should use encode for speed and clarity ;)
117 $data .= pack "v*", map ord, split //, $_[0]; 125 $data .= pack "v*", map ord, split //, $_[0];
118} 126}
127
128sub enc_password {
129 require Math::BigInt; # I insist on 32-bit-perl.. should use C
130 # $hash must be 64 bit
131 my $hash = new Math::BigInt;
132 $hash = $hash * 1055 + ord for split //, $_[0];
133 enc_U64 $hash;
134}
135
119]]> 136]]>
120 137
121############################################################################# 138#############################################################################
122# types 139# types
123<xsl:apply-templates select="descendant::type"/> 140<xsl:apply-templates select="descendant::type"/>
187 204
188 } elsif ($type == 17 || $type == 18) { 205 } elsif ($type == 17 || $type == 18) {
189 push @r, [score => $type - 17, dec_score16]; 206 push @r, [score => $type - 17, dec_score16];
190 207
191 } elsif ($type == 19) { 208 } elsif ($type == 19) {
192 push @r, [result => dec_result]; 209 push @r, [result => dec_result]; # not certain
193 210
194 } elsif ($type == 30) { 211 } elsif ($type == 30) {
195 push @r, [active_player => dec_U8]; 212 push @r, [active_player => dec_U8];
196 213
197 } elsif ($type == 0) { # label(?) 214 } elsif ($type == 0) { # label(?)
325 342
326<xsl:template match="member" mode="enc"> 343<xsl:template match="member" mode="enc">
327 <!-- #d#, remove when kgs is repaired --><xsl:if test="@type = 'username'"> 344 <!-- #d#, remove when kgs is repaired --><xsl:if test="@type = 'username'">
328 $_[0]{<xsl:value-of select="@name"/>} =~ /^[A-Za-z][A-Za-z0-9]{0,11}$/ 345 $_[0]{<xsl:value-of select="@name"/>} =~ /^[A-Za-z][A-Za-z0-9]{0,11}$/
329 or Carp::confess "FATAL: tried to send illegal username '$_[0]{<xsl:value-of select="@name"/>}'"; 346 or Carp::confess "FATAL: tried to send illegal username '$_[0]{<xsl:value-of select="@name"/>}'";
330 </xsl:if><!--#d#-->
331 <!-- #d#, remove when kgs is repaired --><xsl:if test="@name = 'channel'">
332 $_[0]{<xsl:value-of select="@name"/>} > 0
333 or Carp::confess "FATAL: tried to send a zero channel id";
334 </xsl:if><!--#d#--> 347 </xsl:if><!--#d#-->
335 enc_<xsl:value-of select="@type"/> defined $_[0]{<xsl:value-of select="@name"/>} ? $_[0]{<xsl:value-of select="@name"/> 348 enc_<xsl:value-of select="@type"/> defined $_[0]{<xsl:value-of select="@name"/>} ? $_[0]{<xsl:value-of select="@name"/>
336 <xsl:text>} : (</xsl:text> 349 <xsl:text>} : (</xsl:text>
337 <xsl:value-of select="@default"/> 350 <xsl:value-of select="@default"/>
338 <xsl:text>);</xsl:text> 351 <xsl:text>);</xsl:text>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines