hholzgra                Wed Feb 26 05:06:47 2003 EDT

  Added files:                 
    /php4/scripts/ext_skel_ng   php_logo.php php_resource.php 
  Log:
  forgot to add these two on my last commit :(
  
  

Index: php4/scripts/ext_skel_ng/php_logo.php
+++ php4/scripts/ext_skel_ng/php_logo.php
<?php

        class php_logo extends php_element {
                function php_logo($name, $attr) {
                        $this->name = $name;
                        $this->attr = $attr;
                        $this->id = '"'.strtoupper($name).'_LOGO_ID"';

                        $this->data = file_get_contents($attr['src']);
                        $this->size = strlen($this->data);

                        $this->mime_type = "image/gif";
                } 
                
                function docbook_xml($base) {
                        return "";
                }

                function minit_code() {
                        return "  php_register_info_logo({$this->id}, 
\"{$this->mime_type}\", {$this->name}_logo, {$this->size});\n";
                }

                function c_code() {
                        return "
static unsigned char {$this->name}_logo[] = {
#include \"{$this->name}_logo.h\"
}; 
";
                }

                function h_code() {
                        $len = strlen($this->data);
                        $code = " ";
                        $i=0;
                        for($n = 0; $n < $len; $n++) {
                                $code .= sprintf(" %3d",ord($this->data[$n]));
                                if($n == $len - 1) break;
                                $code .=  ",";
                                if(++$i==8) {
                                        $code .= "\n ";
                                        $i=0;
                                }
                        }
                        
                        $code .= "\n";
                        
                        return $code;
                }
        }

?>
Index: php4/scripts/ext_skel_ng/php_resource.php
+++ php4/scripts/ext_skel_ng/php_resource.php
<?php

        class php_resource extends php_element {
                function php_resource($name, $payload, $destruct, $description) {
                        $this->name = $name;
                        $this->payload = $payload;
                        $this->destruct = $destruct;
                        $this->description = $description;

                        if (empty($this->destruct) && strstr($this->payload, "*")) {
                                $this->destruct = "  free(resource);\n";
                        }

                        if(empty($this->payload)) {
                                $this->payload = "int";
                        }
                } 
                
                function docbook_xml($base) {
                        return "
    <section id='$base.resources.{$this->name}'>
     <title><litera>{$this->name}</literal></title>
     <para>
      {$this->description}
     </para>
    </section>
";
                }

                function minit_code() {
                        return "
le_{$this->name} = zend_register_list_destructors_ex({$this->name}_dtor, 
                                                     NULL, 
                                                     \"{$this->name}\", 
                                                     module_number);

";
                }

                function c_code() {
                        return "
int le_{$this->name};

void {$this->name}_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
  {$this->payload} resource = ({$this->payload})(rsrc->ptr);

  {$this->destruct}
}
";
                }

                function h_code() {
      $upname = strtoupper($this->name);

                        return "
#define {$upname}_FETCH(r, z)   ZEND_FETCH_RESOURCE(r, {$this->payload}, z, -1, 
${$this->name}, le_{$this->name }); \
                                    if(!r) { RETURN_FALSE; }

#define {$upname}_REGISTER(r)   ZEND_REGISTER_RESOURCE(return_value, r, 
le_{$this->name });
";
                }
        }

?>


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to