From 3e809852494b85de87f0d7ffb28c117c34f4bb1c Mon Sep 17 00:00:00 2001 From: brettlangdon Date: Sat, 7 Dec 2013 08:21:11 -0500 Subject: [PATCH] setup php dev environment for emacs --- emacs | 2 + .../flymake-easy-autoloads.el | 18 + .../elpa/flymake-easy-0.9/flymake-easy-pkg.el | 1 + .../flymake-easy-0.9/flymake-easy-pkg.elc | Bin 0 -> 654 bytes emacs.d/elpa/flymake-easy-0.9/flymake-easy.el | 148 + .../elpa/flymake-easy-0.9/flymake-easy.elc | Bin 0 -> 4940 bytes .../flymake-php-0.5/flymake-php-autoloads.el | 29 + .../elpa/flymake-php-0.5/flymake-php-pkg.el | 1 + .../elpa/flymake-php-0.5/flymake-php-pkg.elc | Bin 0 -> 663 bytes emacs.d/elpa/flymake-php-0.5/flymake-php.el | 40 + emacs.d/elpa/flymake-php-0.5/flymake-php.elc | Bin 0 -> 1272 bytes emacs.d/elpa/geben-0.26/ChangeLog | 244 ++ emacs.d/elpa/geben-0.26/LICENSE | 504 +++ emacs.d/elpa/geben-0.26/NEWS | 187 + emacs.d/elpa/geben-0.26/README | 189 + emacs.d/elpa/geben-0.26/dbgp.el | 938 +++++ emacs.d/elpa/geben-0.26/dbgp.elc | Bin 0 -> 27237 bytes emacs.d/elpa/geben-0.26/geben-autoloads.el | 111 + emacs.d/elpa/geben-0.26/geben-pkg.el | 3 + emacs.d/elpa/geben-0.26/geben-pkg.elc | Bin 0 -> 632 bytes emacs.d/elpa/geben-0.26/geben.el | 3679 +++++++++++++++++ emacs.d/elpa/geben-0.26/geben.elc | Bin 0 -> 202640 bytes .../geben-0.26/tree-widget/geben/close.png | Bin 0 -> 1341 bytes .../geben-0.26/tree-widget/geben/empty.png | Bin 0 -> 1334 bytes .../tree-widget/geben/end-guide.png | Bin 0 -> 177 bytes .../geben-0.26/tree-widget/geben/guide.png | Bin 0 -> 178 bytes .../geben-0.26/tree-widget/geben/handle.png | Bin 0 -> 180 bytes .../geben-0.26/tree-widget/geben/leaf.png | Bin 0 -> 1317 bytes .../geben-0.26/tree-widget/geben/no-guide.png | Bin 0 -> 171 bytes .../tree-widget/geben/no-handle.png | Bin 0 -> 173 bytes .../geben-0.26/tree-widget/geben/open.png | Bin 0 -> 1343 bytes emacs.d/elpa/php-extras-1.0.0.20130923/README | 96 + emacs.d/elpa/php-extras-1.0.0.20130923/dir | 18 + .../php-extras-autoloads.el | 83 + .../php-extras-eldoc-functions.el | 9 + .../php-extras-eldoc-functions.elc | Bin 0 -> 367349 bytes .../php-extras-gen-eldoc.el | 102 + .../php-extras-gen-eldoc.elc | Bin 0 -> 3093 bytes .../php-extras-pkg.el | 3 + .../php-extras-pkg.elc | Bin 0 -> 673 bytes .../php-extras-1.0.0.20130923/php-extras.el | 208 + .../php-extras-1.0.0.20130923/php-extras.elc | Bin 0 -> 5947 bytes .../php-extras-1.0.0.20130923/php-extras.info | 175 + .../elpa/php-mode-1.5.0/php-mode-autoloads.el | 36 + emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.el | 1 + emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.elc | Bin 0 -> 633 bytes emacs.d/elpa/php-mode-1.5.0/php-mode.el | 1104 +++++ emacs.d/elpa/php-mode-1.5.0/php-mode.elc | Bin 0 -> 21209 bytes 48 files changed, 7929 insertions(+) create mode 100644 emacs.d/elpa/flymake-easy-0.9/flymake-easy-autoloads.el create mode 100644 emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.el create mode 100644 emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.elc create mode 100644 emacs.d/elpa/flymake-easy-0.9/flymake-easy.el create mode 100644 emacs.d/elpa/flymake-easy-0.9/flymake-easy.elc create mode 100644 emacs.d/elpa/flymake-php-0.5/flymake-php-autoloads.el create mode 100644 emacs.d/elpa/flymake-php-0.5/flymake-php-pkg.el create mode 100644 emacs.d/elpa/flymake-php-0.5/flymake-php-pkg.elc create mode 100644 emacs.d/elpa/flymake-php-0.5/flymake-php.el create mode 100644 emacs.d/elpa/flymake-php-0.5/flymake-php.elc create mode 100644 emacs.d/elpa/geben-0.26/ChangeLog create mode 100644 emacs.d/elpa/geben-0.26/LICENSE create mode 100644 emacs.d/elpa/geben-0.26/NEWS create mode 100644 emacs.d/elpa/geben-0.26/README create mode 100644 emacs.d/elpa/geben-0.26/dbgp.el create mode 100644 emacs.d/elpa/geben-0.26/dbgp.elc create mode 100644 emacs.d/elpa/geben-0.26/geben-autoloads.el create mode 100644 emacs.d/elpa/geben-0.26/geben-pkg.el create mode 100644 emacs.d/elpa/geben-0.26/geben-pkg.elc create mode 100644 emacs.d/elpa/geben-0.26/geben.el create mode 100644 emacs.d/elpa/geben-0.26/geben.elc create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/close.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/empty.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/end-guide.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/guide.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/handle.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/leaf.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/no-guide.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/no-handle.png create mode 100644 emacs.d/elpa/geben-0.26/tree-widget/geben/open.png create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/README create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/dir create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-autoloads.el create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.el create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.elc create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.el create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.elc create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.el create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.elc create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.el create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.elc create mode 100644 emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.info create mode 100644 emacs.d/elpa/php-mode-1.5.0/php-mode-autoloads.el create mode 100644 emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.el create mode 100644 emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.elc create mode 100644 emacs.d/elpa/php-mode-1.5.0/php-mode.el create mode 100644 emacs.d/elpa/php-mode-1.5.0/php-mode.elc diff --git a/emacs b/emacs index 55f97b0..e33be29 100644 --- a/emacs +++ b/emacs @@ -62,6 +62,8 @@ ; to force json-mode for .json files (add-to-list 'auto-mode-alist '("\\.json$" . json-mode)) +(add-to-list 'auto-mode-alist '("\\.php$" . php-mode)) + ;solarize ALL the things (color-theme-initialize) (color-theme-clarity) diff --git a/emacs.d/elpa/flymake-easy-0.9/flymake-easy-autoloads.el b/emacs.d/elpa/flymake-easy-0.9/flymake-easy-autoloads.el new file mode 100644 index 0000000..9b7c3d2 --- /dev/null +++ b/emacs.d/elpa/flymake-easy-0.9/flymake-easy-autoloads.el @@ -0,0 +1,18 @@ +;;; flymake-easy-autoloads.el --- automatically extracted autoloads +;; +;;; Code: + + +;;;### (autoloads nil nil ("flymake-easy-pkg.el" "flymake-easy.el") +;;;;;; (21154 21336 876004 0)) + +;;;*** + +(provide 'flymake-easy-autoloads) +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; coding: utf-8 +;; End: +;;; flymake-easy-autoloads.el ends here diff --git a/emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.el b/emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.el new file mode 100644 index 0000000..7ef67c5 --- /dev/null +++ b/emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.el @@ -0,0 +1 @@ +(define-package "flymake-easy" "0.9" "Helpers for easily building flymake checkers" (quote nil)) diff --git a/emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.elc b/emacs.d/elpa/flymake-easy-0.9/flymake-easy-pkg.elc new file mode 100644 index 0000000000000000000000000000000000000000..43d329679325b7d83c45cda40900edb9b6672d1a GIT binary patch literal 654 zcmbtSO;5ux4BfeZfUC6=NNc(;0b4J?7-AAgNWc&961R<-CRLJw#;?cgCbWs;e25hL z<-KP+`SN9P(d+e+JkMd_npPW9u-?MjQ;Y^}shqt#zND`xADpYxH}8aT5)C*DPhP_# zNq}n@-OQ)c`E&^5;b_wF7Tz^bFf(MIfqcl0`7%Kb${f`oU!Ts`(m{MS)oT6+2o*; zN2?$>kZ55|U>u%^9GVG0=#3^1v0~tOve)G$ofSI+=SGqwmx>B)DQ!{KSQ7M)m)3_q luZ_=V-Y0hrh4b7^(1t(NMjOQ=hQk9M4#}E9eX!bGCBGvD$l?G1 literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/flymake-easy-0.9/flymake-easy.el b/emacs.d/elpa/flymake-easy-0.9/flymake-easy.el new file mode 100644 index 0000000..54c1589 --- /dev/null +++ b/emacs.d/elpa/flymake-easy-0.9/flymake-easy.el @@ -0,0 +1,148 @@ + +;;; flymake-easy.el --- Helpers for easily building flymake checkers + +;; Copyright (C) 2012 Steve Purcell + +;; Author: Steve Purcell +;; URL: https://github.com/purcell/flymake-easy +;; Version: 0.9 +;; Keywords: convenience, internal + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; This library provides the `flymake-easy-load' helper function for +;; setting up flymake checkers. Just call that function with the +;; appropriate arguments in a major mode hook function. See +;; `flymake-ruby' for an example: +;; https://github.com/purcell/flymake-ruby + +;;; Code: + +(require 'flymake) + +(defvar flymake-easy--active nil + "Indicates when flymake-easy-load has successfully run in this buffer.") +(defvar flymake-easy--command-fn nil + "The user-specified function for building the flymake command.") +(defvar flymake-easy--location nil + "Where to create the temp file when checking, one of 'tempdir or 'inplace.") +(defvar flymake-easy--extension nil + "The canonical file name extension to use for the current file.") + +(mapc 'make-variable-buffer-local + '(flymake-easy--active + flymake-easy--command-fn + flymake-easy--location + flymake-easy--extension)) + +(defun flymake-easy--tempfile-in-temp-dir (file-name prefix) + "Create a temporary file for storing the contents of FILE-NAME in the system tempdir. +Argument PREFIX temp file prefix, supplied by flymake." + (make-temp-file (or prefix "flymake-easy") + nil + (concat "." flymake-easy--extension))) + +(defun flymake-easy--flymake-init () + "A catch-all flymake init function for use in `flymake-allowed-file-name-masks'." + (let* ((tempfile + (flymake-init-create-temp-buffer-copy + (cond + ((eq 'tempdir flymake-easy--location) + 'flymake-easy--tempfile-in-temp-dir) + ((eq 'inplace flymake-easy--location) + 'flymake-create-temp-inplace) + (t + (error "unknown location for flymake-easy: %s" flymake-easy--location))))) + (command (funcall flymake-easy--command-fn tempfile))) + (list (car command) (cdr command)))) + +(defun flymake-easy-exclude-buffer-p () + "Whether to skip flymake in the current buffer." + (and (fboundp 'tramp-tramp-file-p) + (buffer-file-name) + (tramp-tramp-file-p (buffer-file-name)))) + +(defun flymake-easy-load (command-fn &optional err-line-patterns location extension warning-re info-re) + "Enable flymake in the containing buffer using a specific narrow configuration. +Argument COMMAND-FN function called to build the + command line to run (receives filename, returns list). +Argument ERR-LINE-PATTERNS patterns for identifying errors (see `flymake-err-line-patterns'). +Argument EXTENSION a canonical extension for this type of source file, e.g. \"rb\". +Argument LOCATION where to create the temporary copy: one of 'tempdir (default) or 'inplace. +Argument WARNING-RE a pattern which identifies error messages as warnings. +Argument INFO-RE a pattern which identifies messages as infos (supported only +by the flymake fork at https://github.com/illusori/emacs-flymake)." + (let ((executable (car (funcall command-fn "dummy")))) + (if (executable-find executable) ;; TODO: defer this checking + (unless (flymake-easy-exclude-buffer-p) + (setq flymake-easy--command-fn command-fn + flymake-easy--location (or location 'tempdir) + flymake-easy--extension extension + flymake-easy--active t) + (set (make-local-variable 'flymake-allowed-file-name-masks) + '(("." flymake-easy--flymake-init))) + (when err-line-patterns + (set (make-local-variable 'flymake-err-line-patterns) err-line-patterns)) + (dolist (var '(flymake-warning-re flymake-warn-line-regexp)) + (set (make-local-variable var) (or warning-re "^[wW]arn"))) + (when (boundp 'flymake-info-line-regexp) + (set (make-local-variable 'flymake-info-line-regexp) + (or info-re "^[iI]nfo"))) + (flymake-mode t)) + (message "Not enabling flymake: '%s' program not found" executable)))) + +;; Internal overrides for flymake + +(defun flymake-easy--find-all-matches (str) + "Return every match for `flymake-err-line-patterns' in STR. + +This is a judicious override for `flymake-split-output', enabled +by the advice below, which allows for matching multi-line +patterns." + (let (matches + (last-match-end-pos 0)) + (dolist (pattern flymake-err-line-patterns) + (let ((regex (car pattern)) + (pos 0)) + (while (string-match regex str pos) + (push (match-string 0 str) matches) + (setq pos (match-end 0))) + (setq last-match-end-pos (max pos last-match-end-pos)))) + (let ((residual (substring str last-match-end-pos))) + (list matches + (unless (string= "" residual) residual))))) + +(defadvice flymake-split-output (around flymake-easy--split-output (output) activate protect) + "Override `flymake-split-output' to support mult-line error messages." + (setq ad-return-value (if flymake-easy--active + (flymake-easy--find-all-matches output) + ad-do-it))) + + +(defadvice flymake-post-syntax-check (before flymake-easy--force-check-was-interrupted activate) + (when flymake-easy--active + (setq flymake-check-was-interrupted t))) + + +(provide 'flymake-easy) + +;; Local Variables: +;; coding: utf-8 +;; byte-compile-warnings: (not cl-functions) +;; eval: (checkdoc-minor-mode 1) +;; End: + +;;; flymake-easy.el ends here diff --git a/emacs.d/elpa/flymake-easy-0.9/flymake-easy.elc b/emacs.d/elpa/flymake-easy-0.9/flymake-easy.elc new file mode 100644 index 0000000000000000000000000000000000000000..1d00f13a84eebc3c94bcd02d2b43b96a2d663dc7 GIT binary patch literal 4940 zcmbtY`)}Ju64prTWey9OiaJ$k8Zq9IwMy?%eM-=S{D>S?}i9L~uFXWITx zqT*z`%x}A`=F(2u&bIO+x$XLkxx7+B$z&lq?cKG7w(>PYFQ6knL?6J-gZOU0-D_KV z@7haeBzQ?kP#l_1ViSL|RV5C?A$kB`Zo$ynMcl-$zdW#CW}k}U(8D)K|Q zCL}i|AthtqQ!%A85O#Y;E&}w2{#b!O`d6)1o3Z*m^I}DfJW{Rdv;C1p$ARP7GKE8~ zXDXnzFtVXElL;l6ZL1`4Gv8lOoCWOQltVJjTvx^Ie^i@}azDs;{k(t=y$^~4&!^_I z@2E|Kok5EQ4|{YzQ-ol~B8imkxgNsiW&sW$E!;2$YtMHOS_o1FTLf%AM=(AsFy9w$ zP!c-o47JeFfZoj%T#zD^v4YW>cdF)*$t~>xd#3Cw$lXGDC<MLPlCJY2Lnrjg+BDTI*^6L7=(%SXqr9#?nt8dYvaknJ) zWf;qNVXWssCuztftYg6i340Uv`>W%VBQZXBePpstQL;#IT(dwp+SP;jGMlq^-kcr1 zI{sO27`9QYT<>NJc^gHjNDYj+in$l1?;)>?S}>?3SUH9};RX6xaMYi@Z|XH2D8sl# z^+~VOy))@{hJUKyv4>9|pTXTX&#*YE(|bc%ByKKX=@`->VR=I1YrX8iy3XBtyM94~ zylyOOcei!Hm9t~f0e~pAXM({pKL;0i$dYpXa2laZe=RtJI=ohnmM7R4F_+0z()f}? zinE&gv-g}{YQ5g|g1b*AUCVm3 zfA8S=%iL9k6x}*>Ug`=eqEXnG`>>RZ`Qws+)fA?(P5kmyx5H>rq|K7pNGpV_g*-3v zC25&uv8Un~xm(YIt024%&=c~y=Zr2Jv`6131 zSYwU*&*w+ux5uYr7{BTQD@!*jA|e?%-^EJpQ*hJA%HsK@jBGv%(P`oNDS|j_E*N z;uWBJE#m+l!sxaH=;QIL)BnS#%)txXkX;M(4&xMY4g-Ht#c*351>mhKk}1v7G)nfi zw=Xe2X45t>VcYZlEJ0J*))T78%c}JSq|=iQkiG;iKkytH2I$kbqPnW~Rq%4F1;W7U z;~QOq5pno*{~^9c41Aqlq>+*S#buaQ?)>c@9)=Hi(fWF0^8o|pCde&x6sylri2}9; zn-jP84Il3@CGQROUhSLB8eT?|Ubpk)5d-U!$4vIFQhU6=`G{$2kDk`PWg#ax+OgUA5344ya&XAD=3;AX}ALnn^15f@!I3eSyz>UfmqJV)?L0nKjZya4~cVN1pwcDpNjmD&K zk6Iv17;QA#{<;+Yv1=RLA>W>#;ew?vhPa4G`Yppn#tSpdj$jl6tJk?Cm;_T1W@(hA z4Zx}HR!)H`()r*4YNrZA(pHXgIx7tFYpvLma{#8NBUddj{tK|8GnD5v%vvxD_y~-_ zjnxd0D4ove0cIjb30=Lqcy}ukcc1I?t9>T;_Q^d|T&H%gHgPw2y6g$AP;TENEKTZn zfBGvwPrBW~eJ;!Um5n4xoJXq~HwCi3hdN7@jsBWaGiTz<`P7lrG--%5I4yE@neAmB z4Lur~HmFliXWmCW7YKzZB>f$~eW2KQumQmNnWCoW7L}g^Z(hJlWXcf@FuIncg?3=* zgo0rXKqq5{3LQ;$4Bzbe23@!XkxoUj!0#zHLSLaj_6_>Ajrj5HT3pKn12+b%IE%Qy qbBf$@5-&FOmAsI#hC;^XV(Zg}Ecl&ZilSN7vc3#Y>s2k$WamsT)jly|1y7NmDk-h+UoK zO;s?dJ4j_<-LAn0;VBX@p0Wwcy56S>C7>oPc~!Y*&hsH3B%X`+?s$iybF19OBItWUsszA@Dd&JKq7}7 zJsJVt0!IT|3EJWr$?+Hu5}j7kK`3c(JUQ@^MgNLcz<(o(qP~#1GUO2Q3JVGGiDfaw pWE#CoI97o!5SmWOt%KIo+6vhj;A6P#_kWfp`hB~c#e=~h`UaNO$vOZ4 literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/flymake-php-0.5/flymake-php.el b/emacs.d/elpa/flymake-php-0.5/flymake-php.el new file mode 100644 index 0000000..9ae51c7 --- /dev/null +++ b/emacs.d/elpa/flymake-php-0.5/flymake-php.el @@ -0,0 +1,40 @@ + +;;; flymake-php.el --- A flymake handler for php-mode files +;; +;;; Author: Steve Purcell +;;; URL: https://github.com/purcell/flymake-php +;;; Version: 0.5 +;;; Package-Requires: ((flymake-easy "0.1")) +;;; +;;; Commentary: +;; Usage: +;; (require 'flymake-php) +;; (add-hook 'php-mode-hook 'flymake-php-load) +;; +;; Uses flymake-easy, from https://github.com/purcell/flymake-easy + +;;; Code: +(require 'flymake-easy) + +(defconst flymake-php-err-line-patterns + '(("\\(?:Parse\\|Fatal\\|syntax\\) error[:,] \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil 1))) + +(defvar flymake-php-executable "php" + "The php executable to use for syntax checking.") + +(defun flymake-php-command (filename) + "Construct a command that flymake can use to check php source." + (list flymake-php-executable "-l" "-f" filename)) + +;;;###autoload +(defun flymake-php-load () + "Configure flymake mode to check the current buffer's php syntax." + (interactive) + (flymake-easy-load 'flymake-php-command + flymake-php-err-line-patterns + 'tempdir + "php")) + + +(provide 'flymake-php) +;;; flymake-php.el ends here diff --git a/emacs.d/elpa/flymake-php-0.5/flymake-php.elc b/emacs.d/elpa/flymake-php-0.5/flymake-php.elc new file mode 100644 index 0000000000000000000000000000000000000000..1fac82e2d1565ecc69aedfe2157ec00c108817ce GIT binary patch literal 1272 zcmbtTU2oGc6x}1_5AeuUI%x?sY4fpeZ66qnO_~JKB*s(I2iI{{YmOakXRL@H&vn|4 zOoOLIO4Hca=bU@a&HUoa`J01-18+W`!?~&(E?5bx4XiY?RuFkxDtXp_iM|s0NvXT& zTB}$nN(3kgmzu+8Mgb;}oXqlkmM4&oldQw7w5p*(WEg!nOq)?3ZxpkdP!pFUCK@uT z#HJ>9ENa$GG>(t^?=ce{9G7t6j=())aU@UkIE#~R?3ju~=YYuiLy? zbF#wD#Vb=0#(uyEN*QTo#Kj& zK7KpDx&pc;nox@(haEkUB^U*iNLVotiaa6NHDiDgEjZI)*I1ZlTV9OkMVAxs(#!L_ zK(ik$*9?yKIWb~3p%;{_LL1P!{kqGKX&nhJF-&6725I0Z2>hZ5KFqF(HmoRqUlL0M zKFtO_d?<<#@Q~7r*>DM17{7B%=Yd$geo+mRx7N7iXFs@0V3NQvMCjp_TgM;a^w_toH(vJm`NMK(_H z&R$;@>G;HlMgL5%&;1$jBjMvu literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/ChangeLog b/emacs.d/elpa/geben-0.26/ChangeLog new file mode 100644 index 0000000..a89a469 --- /dev/null +++ b/emacs.d/elpa/geben-0.26/ChangeLog @@ -0,0 +1,244 @@ +2010-03-29 reedom + + * [ADD] New command `geben-find-file', bound to 'C-c f' in geben-mode. + * [ADD] New custom variable `geben-get-tramp-spec-for'. + * [CHG] If there only single session alive, `geben-end' ends the session + without port inquiry. + +2009-11-19 reedom + + * [ADD] An additional parameter `session-port' to `geben-proxy', to tell the + proxy to use that port for for incoming debugging session. + * [ADD] The 5th element to `geben-dbgp-default-proxy', for the same purpose + of above. + +2009-05-09 reedom + + * [ADD] New command `geben-run-to-cursor', bound to 'c' in geben-mode. + * [FIX] With Komodo's Perl Debugging Extension, GEBEN possibly caused + an internal error when user attempted to set a lineno breakpoint + at a blank line. + +2009-05-08 reedom + + * [ADD] New variable `geben-version'. + * [ADD] New command `geben-clear-breakpoints', bound to 'U' in geben-mode. + * [ADD] New custom variable `geben-query-on-clear-breakpoints'. + * [ADD] New custom variable `geben-pause-at-entry-line'. + * [ADD] New command `geben-toggle-pause-at-entry-line-flag'. + * [CHG] Key bindings of `geben-set-redirect' is assigned to `>'. + * [CHG] Key bindings of `geben-show-backtrace is also assigned to `t'. + * [FIX] Even if you unset a breakpoint successfully in the current + session, it was not removed from the persist storage. + +2009-04-30 reedom + + * [ADD] Add a new command `geben-eval-current-word'. + +2009-02-25 reedom + + * [FIX] With HTTP server running on Windows GEBEN failed to + create script file copies. + * [FIX] Now `eval' command works against PHP(Xdebug) same as + before. + +2009-02-07 reedom + + * [FIX] Suppressed unwanted focus changing: when the context + variable buffer was visible in any window, the focus was + moved from the debugging buffer to the context variable + buffer after proceeding any continuous command. + +2009-01-22 reedom + + * [FIX] Bug in Makefile: cannot byte-compile geben.el if the + working directory is not one of the Emacs' default + directories. + +2009-01-10 reedom + + * [FIX] Implemented `geben-quit-window' + * [FIX] Type mismatch error was occurred in breakpoint list mode + when any breakpoint deletion was executed. + +2009-01-08 reedom + + * [CHG] Redesigned. + * [CHG] Make not to require an external DBGp client program. + +2008-11-06 reedom + + * [FIX] When setting breakpoint which needed fileuri against + remote script file interactively, GEBEN asked with + invalid fileuri as a default. + * [FIX] Once debugger engine passed invalid fileuri, which + have http:// scheme instead of file://, GEBEN made + Emacs raise exceptions at exitting Emacs. + +2008-11-04 reedom + + * [ADD] Added Makefile. + * [ADD] New commands `geben-mode-help' and similar to display + description and key bindings of GEBEN's each mode. + * [CHG] Face definition: `geben-backtrace-fileuri' + * [CHG] Face definition: `geben-breakpoint-face' + +2008-11-01 reedom + + * [CHG] Dropped Emacs 21.4 due to use tree-widget.el for the + context buffer. + * [ADD] New command `geben-display-context and related commands. + +2008-10-29 reedom + + * [CHG] Renamed `ogeben-debug-target-remotep' + to `geben-always-use-mirror-file-p'. + * [CHG] Renamed `geben-close-remote-file-after-finish' + to `geben-close-mirror-file-after-finish'. + +2008-10-27 reedom + + * [FIX] Location path for remotely fetched source files. + +2008-10-25 reedom + + * [CHG] Rearranged function/variable appearance order + * [FIX] hit-value of breakpoints were ignored. + * [FIX] In the breakpoint list buffer it was not able for + breakpoints except line type to went to setting + line. + * [FIX] Breakpoint marker handling was not enough for + breakpoints except line type. + +2008-10-24 reedom + + * [FIX] Improved session finishing handling. + * [FIX] When reopen a debuggee script file which has + any line breakpoints, GEBEN had failed to restore + overlays. + * [CHG] Wrote some breakpoints related code to overcome + the difference between DBGp server implementation. + +2008-10-23 reedom + + * [ADD] Support for Komodo Debugger Extentions are added. + +2008-10-22 reedom + + * [ADD] Supports a kind of breakpoint features found in + DBGp specification. + * [ADD] New command `geben-breakpoint-menu' and related + commands to set a kind of breakpoint. + Assigned to `B' key in geben-mode. + * [ADD] New command `geben-breakpoint-list' and related + commands to display defined breakpoint list. + Assigned to `C-c b' key in geben-mode. + * [ADD] New face `geben-breakpoint-fileuri'. + * [ADD] New face `geben-breakpoint-lineno'. + * [ADD] New face `geben-breakpoint-function'. + * [ADD] Custom variable `geben-dbgp-feature-list'. + * [DEL] Custom variable `geben-dbgp-feature-alist' is + now obsolete. + +2008-10-15 reedom + + * [FIX] Runtime errors on Emacs 21.4. + +2008-10-13 reedom + + * [CHG] Improved redirection buffer scrolling behavior. + + +2008-10-13 reedom + + * [ADD] New command 'geben-where'. + Assigned to `w' key in geben-mode. + * [ADD] New face `geben-backtrace-fileuri'. + * [ADD] New face `geben-backtrace-lineno'. + * [CHG] Renamed DBGp client's buffer name to `*GEBEN process*. + * [FIX] Macro version of `geben-dbgp-redirect-buffer-visiblep' + causes runtime error on Emacs 22.1.1. + +2008-10-11 reedom + + * [ADD] STDOUT and STDERR redirection features. + * [ADD] New command `geben-set-redirect'. + Assigned to `t' key in geben-mode. + * [ADD] Custom variable `geben-dbgp-redirect-stdout'. + * [ADD] Custom variable `geben-dbgp-redirect-stderr'. + * [ADD] Custom variable `geben-dbgp-redirect-combine'. + * [ADD] Custom variable `geben-dbgp-redirect-coding-system'. + * [ADD] Custom variable `geben-dbgp-redirect-buffer-init-hook'. + +2008-10-10 reedom + + * [ADD] Backtrace display feature. + * [ADD] New command `geben-backtrace'. + Assigned to `d' key in geben-mode. + * [ADD] Custom variable `geben-display-window-function'. + * [FIX] `defface' caused an error on Emacs 21.4 because of using + the newly added attribute `min-color'. + +2008-10-09 reedom + + * [ADD] Variable `geben-dbgp-current-stack'. + +2008-10-08 reedom + + * [FIX] Fixed increasing breakpoints as often as entering + debugging session. + * [UPD] Now GEBEN sets/unsets breakpoint in off session state. + * [FIX] Make GEBEN do not send commands while off session state. + * [ADD] New argument QUIT to `geben' command. It can be specified + by the prefix arg, as typing like `M-x C-u geben'. + It asks executed GEBEN to quit. + +2008-10-08 reedom + + * [FIX] Macro version of `geben-what-line' didn't run on Meadow 3.00. + * [FIX] Byte compiled geben.el could raise undefined symbol error. + +2008-10-07 reedom + + * [ADD] Custom face `geben-breakpoint-face'. + * [ADD] Suppress inquiry of DBGp client termination at exiting emacs. + +2008-10-06 reedom + + * [UPD] Now GEBEN manages buffer modification around where line-no + breakpoint set. If there was line insertion before + breakpoint, GEBEN moves the following line-no breakpoints + downwards. Highlight effect(overlay) will be managed as it + should be. + * [ADD] Custom variable `geben-temporary-file-directory'. + * [ADD] Custom variable `geben-close-remote-file-after-finish'. + * [ADD] Custom variable `geben-show-breakpoints-debugging-only'. + +2008-10-05 reedom + + * [FIX] Make GEBEN to call `step_into' at the end of the + initial state to place debugger's cursor at the + entry point of the debuggee script. + * [FIX] Make GEBEN to call `stop' at the stopping state + to finish up a debugging session as user expect. + * [ADD] Custom variable `geben-dbgp-feature-alist'. + * [UPD] Now GEBEN send `feature_set' commands with the variable + `geben-dbgp-feature-alist' in the initial state. + * [ADD] Custom variable `geben-dbgp-command-line'. + +2008-10-04 reedom + + * geben.el: [CHG] Removed dependency on CEDET. With this changing + many functions were removed/renamed/added + * geben.el: [CHG] Moved all of GEBEN implementation to geben.el. + +2007-07-04 thoney_f(reedom) + + * geben-dbgp.el: [FIX] geben-response-eval didn't decode `PHP object'. + * geben-dbgp.el: [FIX] An overlay-arrow-position leaved after finishing + a debug session. + +2006-12-26 thoney_f(reedom) + + * Released version 0.01, a sample implementation. + diff --git a/emacs.d/elpa/geben-0.26/LICENSE b/emacs.d/elpa/geben-0.26/LICENSE new file mode 100644 index 0000000..b1e3f5a --- /dev/null +++ b/emacs.d/elpa/geben-0.26/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/emacs.d/elpa/geben-0.26/NEWS b/emacs.d/elpa/geben-0.26/NEWS new file mode 100644 index 0000000..9d00120 --- /dev/null +++ b/emacs.d/elpa/geben-0.26/NEWS @@ -0,0 +1,187 @@ +Version 0.26 (20010-03-29) + + * new command: + - `geben-find-file', bound to 'C-c f' in geben-mode. + * new custom variable: + - `geben-get-tramp-spec-for'. + * improved: + - If there only single session alive, `geben-end' ends the session + without port inquiry. + +Version 0.25 (2009-11-19) + + * improved: + - to `geben-proxy' now you can specify any fixed port number to + which incoming debugging session is bound. + +Version 0.24 (2009-05-08) + + * new commands added: + - geben-clear-breakpoints; bound to 'U' in geben-mode. + - geben-run-to-cursor; bound to 'c' in geben-mode. + * new custom variables added: + - geben-query-on-clear-breakpoints + * new variables added: + - geben-version + * changed: Key bindings of `geben-set-redirect' is assigned to `>'. + * changed: Key bindings of `geben-show-backtrace is also assigned to `t'. + * fixed: Even if you unset a breakpoint successfully in the current + session, it was not removed from the persist storage. + * fixed: With Komodo's Perl Debugging Extension, GEBEN possibly + caused an internal error when user attempted to set a + lineno breakpoint at a blank line. + +Version 0.23 (2009-02-25) + + * improved: Suppressed unwanted focus changing - when the context + variable buffer was visible in any window, the focus was + moved from the debugging buffer to the context variable + buffer after proceeding any continuous command. + + * fixed: Now GEBEN works With HTTP server running on Windows unlike + before. + * fixed: Now `eval' command works against PHP(Xdebug) same as + before. + +Version 0.22 (2009-01-22) + + * fixed: Bug in Makefile: cannot byte-compile geben.el if the + working directory is not one of the Emacs' default + directories. + +Version 0.21 (2009-01-10) + + * fixed: Implemented `geben-quit-window'. + * fixed: Type mismatch error was occurred in breakpoint list mode + when any breakpoint deletion was executed. + +Version 0.20 (2009-01-08) + + Redesigned. + + From this release GEBEN does not require an external DBGp client + program. + + * changed: + - GEBEN always mirrors debuggee script files under `geben-mode'. + When you need to open the original script file to edit, hit any + unbound keys of geben-mode and GEBEN asks you to open one. If + you respond `yes' then GEBEN attempts to visit the file via + `TRAMP'. + - More, many things. + +Version 0.19 (2008-11-06) + + * fixed: Emacs may not be able to exit by exception. + * fixed: Default fileuri parameter on setting breakpoint may be + invalid. + +Version 0.18 (2008-11-04) + + From this release GEBEN has shifted from beta stage. + + Incompatible changes: + * GEBEN dropped Emacs 21.4 support. + Now GEBEN requires Emacs 22.1 and later. + + Visible changes: + * new commands added: + - geben-display-context and related commands. + - `geben-mode-help' and similar commands to display description + and key bindings of GEBEN's each mode. + * custom face added: + - geben-context-category-face + - geben-context-variable-face + - geben-context-type-face + - geben-context-class-face + - geben-context-string-face + - geben-context-constant-face + +Version 0.17 (2008-10-27) + + Visible changes: + * fixed: Location path for remotely fetched source files. + +Version 0.16 (2008-10-25) + + Visible changes: + * support for Komodo Debugger Extensions are added. + + * fixed: improved session finishing handling. + * fixed: when reopen a debuggee script file which has any line + breakpoints, GEBEN had failed to restore overlays. + +Version 0.15 (2008-10-22) + + Visible changes: + * new commands added: + - geben-breakpoint-menu and related commands. + - geben-breakpoint-list and related commands. + * custom variables added: + - geben-dbgp-feature-list + * custom face added: + - geben-breakpoint-fileuri + - geben-breakpoint-lineno + - geben-breakpoint-function + * custom variables remove: + - geben-dbgp-feature-alist + +Version 0.14 (2008-10-15) + + * fixed: Runtime erros on Emacs 21.4. + +Version 0.13 (2008-10-13) + + Visible changes: + * new commands added: + - geben-backtrace + - geben-where + - geben-set-redirect + * custom variables added: + - geben-display-window-function + - geben-dbgp-redirect-stdout + - geben-dbgp-redirect-stderr + - geben-dbgp-redirect-combine + - geben-dbgp-redirect-coding-system + - geben-dbgp-redirect-buffer-init-hook + * custom face added: + - geben-backtrace-fileuri + - geben-backtrace-lineno + * fixed: compiling error on Emacs 21.4 in `defface' definition. + * changed: renamed DBGp client's buffer name to `*GEBEN process*. + +Version 0.12 (2008-10-08) + + Visible changes: + * added: New argument QUIT to `geben' command. + It can be specified by the prefix arg, as typing like + `M-x C-u geben'. This asks executed GEBEN to quit. + * Now GEBEN sets/unsets breakpoint even in off session state. + * fixed: Make GEBEN do not send commands while off session state. + * fixed: Increasing breakpoints by entering debugging session. + +Version 0.11 (2008-10-08) + + * fixed: Byte compiled geben.el could raise undefined + symbol error. + +Version 0.10 (2008-10-07) + + Incompatible changes: + * Removed dependencies on `CEDET' package. + + Visible changes: + * fixed: Improved line-no breakpoint handling. + * fixed: Improved initial and final state handling. + * custom variables added: + - geben-dbgp-feature-alist + - geben-dbgp-command-line + - geben-temporary-file-directory + - geben-close-remote-file-after-finish + - geben-show-breakpoints-debugging-only + * custom face added: + - geben-breakpoint-face + +Version 0.01 (2006-12-26) + + * Sample implementation. diff --git a/emacs.d/elpa/geben-0.26/README b/emacs.d/elpa/geben-0.26/README new file mode 100644 index 0000000..ad295dd --- /dev/null +++ b/emacs.d/elpa/geben-0.26/README @@ -0,0 +1,189 @@ +GEBEN-0.26 (Beta) +----------------- + +GEBEN is a software package that interfaces Emacs to DBGp protocol +with which you can debug running scripts interactive. At this present +DBGp protocol are supported in several script languages with help of +custom extensions. + + * PHP with Xdebug 2.0.* + * Perl, Python, Ruby and Tcl with Komodo Debugger Extensions + +Currently GEBEN implements the following features. + + * continuation commands: run/stop/step-in/step-over/step-out + * set/unset/listing breakpoints + * expression evaluation + * STDOUT/STDERR redirection + * backtrace listing + * variable inspection + + +REQUIREMENTS +------------ + +[server side] + - DBGp protocol enabled script engine, like: + - PHP with Xdebug + - Python with Komode Debugger Extension + - etc. + +[client side] + - Emacs22.1 or later + + +BIG CHANGES +----------- + +- Since version 0.20 GEBEN does not require an external DBGp client + program `debugclient'. + +- At version 0.18 GEBEN dropped Emacs 21.4. + +- Since version 0.1 GEBEN does not depend on CEDET emacs library. + If you have installed CEDET previously only for GEBEN-pre-alpha, + you can uninstall CEDET if you want. + +- Now GEBEN lisp package forms a monolithic file. + If you have installed previous version, you should remove all of old + GEBEN files from installation directory. + + +INSTALLATION +------------ + +[server side] + +- To debug PHP scripts, you'll need to install PHP, Xdebug and + optionally a web server. Please visit their official sites to get + packages and instructions of installation and configuration. + PHP: http://php.net + Xdebug: http://xdebug.org + +- To debug Perl, Python, Ruby and Tcl with GEBEN, Komodo + Debugging Extensions will give you a big help. + Distribution: http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging + Documentation: http://aspn.activestate.com/ASPN/Reference/Products/Komodo/komodo-doc-debugger.html + +[client side] + +1. Unpack GEBEN source code package and change directory to the + unpacked directory. + + +a. run `make'(or `gmake', depends on your environment). +b. If you are an administrator, Run: sudo make install +b' Or Run: SITELISP=$HOME/path/to/install make install + + +a. Byte compile 'dbgp.el'. +b. Byte compile `geben.el'. +c. Copy `dbgp.elc', `geben.elc' and entire `tree-widget' directory to + any directory where Emacs can find.(Or add the path to `load-path' + list) + + +2. Insert autoload hooks into your .Emacs file. + -> (autoload 'geben "geben" "PHP Debugger on Emacs" t) +3. Restart Emacs. + + +DEBUGGING +--------- + +Here is an illustration on PHP debugging. + +1. Run Emacs. + +2. Start geben, type: M-x geben + +3. Access to the target PHP script page with any browser. + You may need to add a query parameter `XDEBUG_SESSION_START' if you + configured Xdebug to require manual trigger to start a remote + debugging session. + e.g.) http://www.example.com/test.php?XDEBUG_SESSION_START=1 + +4. Soon the server and GEBEN establish a debugging session + connection. Then Emacs loads the script source code of the entry + page in a buffer. + +5. Now the buffer is under the minor-mode 'geben-mode'. + You can control the debugger with several keys. + + spc step into/step over + i step into + o step over + r step out + g run + c run to cursor + b set a breakpoint at a line + B set a breakpoint interactively + u unset a breakpoint at a line + U clear all breakpoints + \C-c b display breakpoint list + > set redirection mode + \C-u t change redirection mode + d display backtrace + t display backtrace + v display context variables + \C-c f visit script file + w where + q stop + + When you hit any unbound key of `geben-mode', GEBEN will ask you to + edit the original script file. Say yes and GEBEN will attempts to + load the script file via `TRAMP'. + +6. If you felt you'd debugged enough, it's time to quit GEBEN. + To quit GEBEN, type: M-x geben-end + +Known Issues +------------ + +* This version is not tested with Xdebug 2.1.* yet. + +* There are some issues related Xdebug, version of at least 2.0.3. + + - Xdebug does not support STDERR command feature so that STDERR + redirection feature does not work expectedly. + + - Xdebug does not implement `dbgp:' scheme feature so that with + `step-in' command into a lambda function (you can create it with + `create_function' in PHP) the cursor position is located at + invalid line. + + - Xdebug may tell invalid line number on breaking by `return' type + breakpoint. To this case GEBEN indicates the cursor at the top of + the file in where the current breakpoint exists. + + - Xdebug unexpectedly breaks on returning from class/instance method + if there is a `call' type breakpoint to the method. + + - If Xdebug is not loaded not as `zend_extension', some feature do + not work as expectedly (e.g. step_into). + + +SUPPORT +------- + +We all time need your supports - bug reports, feature requests, +code/documents/design contributions, and donations. +To submit one or more of them, please visit our web site. + + http://code.google.com/p/geben-on-emacs/ + +Also there are mailinglists. + +For usage questions: + http://groups.google.com/group/geben-users + +For package contributions: + http://groups.google.com/group/geben-dev + +Your posts will make GEBEN development progress. + +Thank you. + +-- + +reedom diff --git a/emacs.d/elpa/geben-0.26/dbgp.el b/emacs.d/elpa/geben-0.26/dbgp.el new file mode 100644 index 0000000..ccc69b5 --- /dev/null +++ b/emacs.d/elpa/geben-0.26/dbgp.el @@ -0,0 +1,938 @@ +;;; dbgp.el --- DBGp protocol interface +;; $Id: dbgp.el 116 2010-03-29 12:35:47Z fujinaka.tohru $ +;; +;; Filename: dbgp.el +;; Author: reedom +;; Maintainer: reedom +;; Version: 0.26 +;; URL: http://code.google.com/p/geben-on-emacs/ +;; Keywords: DBGp, debugger, PHP, Xdebug, Perl, Python, Ruby, Tcl, Komodo +;; Compatibility: Emacs 22.1 +;; +;; This file is not part of GNU Emacs +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth +;; Floor, Boston, MA 02110-1301, USA. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Code: + +(eval-when-compile + (when (or (not (boundp 'emacs-version)) + (string< emacs-version "22.1")) + (error (concat "geben.el: This package requires Emacs 22.1 or later.")))) + +(eval-and-compile + (require 'cl) + (require 'xml)) + +(require 'comint) + +;;-------------------------------------------------------------- +;; customization +;;-------------------------------------------------------------- + +;; For compatibility between versions of custom +(eval-and-compile + (condition-case () + (require 'custom) + (error nil)) + (if (and (featurep 'custom) (fboundp 'custom-declare-variable) + ;; Some XEmacsen w/ custom don't have :set keyword. + ;; This protects them against custom. + (fboundp 'custom-initialize-set)) + nil ;; We've got what we needed + ;; We have the old custom-library, hack around it! + (if (boundp 'defgroup) + nil + (defmacro defgroup (&rest args) + nil)) + (if (boundp 'defcustom) + nil + (defmacro defcustom (var value doc &rest args) + `(defvar (,var) (,value) (,doc)))))) + +;; customize group + +(defgroup dbgp nil + "DBGp protocol interface." + :group 'debug) + +(defgroup dbgp-highlighting-faces nil + "Faces for DBGp process buffer." + :group 'dbgp + :group 'font-lock-highlighting-faces) + +(defcustom dbgp-default-port 9000 + "DBGp listener's default port number." + :type 'integer + :group 'dbgp) + +(defcustom dbgp-local-address "127.0.0.1" + "Local host address. It is used for DBGp proxy. +This value is passed to DBGp proxy at connection negotiation. +When the proxy receive a new debugging session, the proxy tries +to connect to DBGp listener of this address." + :type 'string + :group 'dbgp) + +(defface dbgp-response-face + '((((class color)) + :foreground "brightblue")) + "Face for displaying DBGp protocol response message." + :group 'dbgp-highlighting-faces) + +(defface dbgp-decoded-string-face + '((((class color)) + :inherit 'font-lock-string-face)) + "Face for displaying decoded string." + :group 'dbgp-highlighting-faces) +;;-------------------------------------------------------------- +;; utilities +;;-------------------------------------------------------------- + +(defsubst dbgp-plist-get (proc prop) + (plist-get (process-plist proc) prop)) + +(defsubst dbgp-plist-put (proc prop val) + (let ((plist (process-plist proc))) + (if plist + (plist-put plist prop val) + (set-process-plist proc (list prop val))))) + +(defsubst dbgp-xml-get-error-node (xml) + (car + (xml-get-children xml 'error))) + +(defsubst dbgp-xml-get-error-message (xml) + (let ((err (dbgp-xml-get-error-node xml))) + (if (stringp (car err)) + (car err) + (car (xml-node-children + (car (xml-get-children err 'message))))))) + +(defsubst dbgp-make-listner-name (port) + (format "DBGp listener<%d>" port)) + +(defsubst dbgp-process-kill (proc) + "Kill DBGp process PROC." + (if (memq (process-status proc) '(listen open)) + (delete-process proc)) + ;; (ignore-errors + ;; (with-temp-buffer + ;; (set-process-buffer proc (current-buffer))))) + ) + +(defsubst dbgp-ip-get (proc) + (first (process-contact proc))) + +(defsubst dbgp-port-get (proc) + (second (process-contact proc))) + +(defsubst dbgp-proxy-p (proc) + (and (dbgp-plist-get proc :proxy) + t)) + +(defsubst dbgp-proxy-get (proc) + (dbgp-plist-get proc :proxy)) + +(defsubst dbgp-listener-get (proc) + (dbgp-plist-get proc :listener)) + +;;-------------------------------------------------------------- +;; DBGp +;;-------------------------------------------------------------- + +(defcustom dbgp-command-prompt "(cmd) " + "DBGp client process buffer's command line prompt to display." + :type 'string + :group 'dbgp) + +;;-------------------------------------------------------------- +;; DBGp listener process +;;-------------------------------------------------------------- + +;; -- What is DBGp listener process -- +;; +;; DBGp listener process is a network connection, as an entry point +;; for DBGp protocol connection. +;; The process listens at a specific network address to a specific +;; port for a new session connection(from debugger engine) coming. +;; When a new connection has accepted, the DBGp listener creates +;; a new DBGp session process. Then the new process takes over +;; the connection and the DBGp listener process starts listening +;; for another connection. +;; +;; -- DBGp listener custom properties -- +;; +;; :session-init default function for a new DBGp session +;; process to initialize a new session. +;; :session-filter default function for a new DBGp session +;; process to filter protocol messages. +;; :session-sentinel default function for a new DBGp session +;; called when the session is disconnected. + +(defvar dbgp-listeners nil + "List of DBGp listener processes. + +DBGp listener process is a network connection, as an entry point +for DBGp protocol connection. +The process listens at a specific network address to a specific +port for a new session connection(from debugger engine) coming. +When a new connection has accepted, the DBGp listener creates +a new DBGp session process. Then the new process takes over +the connection and the DBGp listener process starts listening +for another connection. + +-- DBGp listener process custom properties -- + +:session-accept function to determine to accept a new + DBGp session. +:session-init function to initialize a new session. +:session-filter function to filter protocol messages. +:session-sentinel function called when the session is + disconnected. +:proxy if the listener is created for a proxy + connection, this value has a plist of + (:addr :port :idekey :multi-session). + Otherwise the value is nil. +") + +(defvar dbgp-sessions nil + "List of DBGp session processes. + +DBGp session process is a network connection, talks with a DBGp +debugger engine. + +A DBGp session process is created by a DBGp listener process +after a DBGp session connection from a DBGp debugger engine +is accepted. +The session process is alive until the session is disconnected. + +-- DBGp session process custom properties -- + +:listener The listener process which creates this + session process. +") + +(defvar dbgp-listener-port-history nil) +(defvar dbgp-proxy-address-history nil) +(defvar dbgp-proxy-port-history nil) +(defvar dbgp-proxy-idekey-history nil) +(defvar dbgp-proxy-session-port-history nil) + +;;-------------------------------------------------------------- +;; interactive read functions +;;-------------------------------------------------------------- + +(defun dbgp-read-string (prompt &optional initial-input history default-value) + "Read a string from the terminal, not allowing blanks. +Prompt with PROMPT. Whitespace terminates the input. +If non-nil, second arg INITIAL-INPUT is a string to insert before reading. + This argument has been superseded by DEFAULT-VALUE and should normally + be nil in new code. It behaves as in `read-from-minibuffer'. See the + documentation string of that function for details. +The third arg HISTORY, if non-nil, specifies a history list + and optionally the initial position in the list. +See `read-from-minibuffer' for details of HISTORY argument. +Fourth arg DEFAULT-VALUE is the default value. If non-nil, it is used + for history commands, and as the value to return if the user enters + the empty string. +" + (let (str + (temp-history (and history + (copy-list (symbol-value history))))) + (while + (progn + (setq str (read-string prompt initial-input 'temp-history default-value)) + (if (zerop (length str)) + (setq str (or default-value "")) + (setq str (replace-regexp-in-string "^[ \t\r\n]+" "" str)) + (setq str (replace-regexp-in-string "[ \t\r\n]+$" "" str))) + (zerop (length str)))) + (and history + (set history (cons str (remove str (symbol-value history))))) + str)) + +(defun dbgp-read-integer (prompt &optional default history) + "Read a numeric value in the minibuffer, prompting with PROMPT. +DEFAULT specifies a default value to return if the user just types RET. +The third arg HISTORY, if non-nil, specifies a history list + and optionally the initial position in the list. +See `read-from-minibuffer' for details of HISTORY argument." + (let (n + (temp-history (and history + (mapcar 'number-to-string + (symbol-value history))))) + (while + (let ((str (read-string prompt nil 'temp-history (if (numberp default) + (number-to-string default) + "")))) + (ignore-errors + (setq n (cond + ((numberp str) str) + ((zerop (length str)) default) + ((stringp str) (read str))))) + (unless (integerp n) + (message "Please enter a number.") + (sit-for 1) + t))) + (and history + (set history (cons n (remq n (symbol-value history))))) + n)) + +;;-------------------------------------------------------------- +;; DBGp listener start/stop +;;-------------------------------------------------------------- + +(defsubst dbgp-listener-find (port) + (find-if (lambda (listener) + (eq port (second (process-contact listener)))) + dbgp-listeners)) + +;;;###autoload +(defun dbgp-start (port) + "Start a new DBGp listener listening to PORT." + (interactive (let (;;(addrs (mapcar (lambda (intf) + ;; (format-network-address (cdar (network-interface-list)) t)) + ;; (network-interface-list))) + ;;(addr-default (or (car dbgp-listener-address-history) + ;; (and (member "127.0.0.1" addrs) + ;; "127.0.0.1") + ;; (car addrs))) + (port-default (or (car dbgp-listener-port-history) + 9000))) + ;; (or addrs + ;; (error "This machine has no network interface to bind.")) + (list + ;; (completing-read (format "Listener address to bind(default %s): " default) + ;; addrs nil t + ;; 'dbgp-listener-address-history default) + (dbgp-read-integer (format "Listen port(default %s): " port-default) + port-default 'dbgp-listener-port-history)))) + (let ((result (dbgp-exec port + :session-accept 'dbgp-default-session-accept-p + :session-init 'dbgp-default-session-init + :session-filter 'dbgp-default-session-filter + :session-sentinel 'dbgp-default-session-sentinel))) + (when (interactive-p) + (message (cdr result))) + result)) + +;;;###autoload +(defun dbgp-exec (port &rest session-params) + "Start a new DBGp listener listening to PORT." + (if (dbgp-listener-alive-p port) + (cons (dbgp-listener-find port) + (format "The DBGp listener for %d has already been started." port)) + (let ((listener (make-network-process :name (dbgp-make-listner-name port) + :server 1 + :service port + :family 'ipv4 + :nowait t + :noquery t + :filter 'dbgp-comint-setup + :sentinel 'dbgp-listener-sentinel + :log 'dbgp-listener-log))) + (unless listener + (error "Failed to create DBGp listener for port %d" port)) + (dbgp-plist-put listener :listener listener) + (and session-params + (nconc (process-plist listener) session-params)) + (setq dbgp-listeners (cons listener + (remq (dbgp-listener-find port) dbgp-listeners))) + (cons listener + (format "The DBGp listener for %d is started." port))))) + +(defun dbgp-stop (port &optional include-proxy) + "Stop the DBGp listener listening to PORT." + (interactive + (let ((ports (remq nil + (mapcar (lambda (listener) + (and (or current-prefix-arg + (not (dbgp-proxy-p listener))) + (number-to-string (second (process-contact listener))))) + dbgp-listeners)))) + (list + ;; ask user for the target idekey. + (read (completing-read "Listener port: " ports nil t + (and (eq 1 (length ports)) + (car ports)))) + current-prefix-arg))) + (let ((listener (dbgp-listener-find port))) + (dbgp-listener-kill port) + (and (interactive-p) + (message (if listener + "The DBGp listener for port %d is terminated." + "DBGp listener for port %d does not exist.") + port)) + (and listener t))) + +(defun dbgp-listener-kill (port) + (let ((listener (dbgp-listener-find port))) + (when listener + (delete-process listener)))) + +;;-------------------------------------------------------------- +;; DBGp proxy listener register/unregister +;;-------------------------------------------------------------- + +;;;###autoload +(defun dbgp-proxy-register (proxy-ip-or-addr proxy-port idekey multi-session-p &optional session-port) + "Register a new DBGp listener to an external DBGp proxy. +The proxy should be found at PROXY-IP-OR-ADDR / PROXY-PORT. +This creates a new DBGp listener and register it to the proxy +associating with the IDEKEY." + (interactive (list + (let ((default (or (car dbgp-proxy-address-history) "localhost"))) + (dbgp-read-string (format "Proxy address (default %s): " default) + nil 'dbgp-proxy-address-history default)) + (let ((default (or (car dbgp-proxy-port-history) 9001))) + (dbgp-read-integer (format "Proxy port (default %d): " default) + default 'dbgp-proxy-port-history)) + (dbgp-read-string "IDE key: " nil 'dbgp-proxy-idekey-history) + (not (memq (read-char "Multi session(Y/n): ") '(?N ?n))) + (let ((default (or (car dbgp-proxy-session-port-history) t))) + (unless (numberp default) + (setq default 0)) + (dbgp-read-integer (format "Port for debug session (%s): " + (if (< 0 default) + (format "default %d, 0 to use any free port" default) + (format "leave empty to use any free port"))) + default 'dbgp-proxy-session-port-history)))) + (let ((result (dbgp-proxy-register-exec proxy-ip-or-addr proxy-port idekey multi-session-p + (if (integerp session-port) session-port t) + :session-accept 'dbgp-default-session-accept-p + :session-init 'dbgp-default-session-init + :session-filter 'dbgp-default-session-filter + :session-sentinel 'dbgp-default-session-sentinel))) + (and (interactive-p) + (consp result) + (message (cdr result))) + result)) + +;;;###autoload +(defun dbgp-proxy-register-exec (ip-or-addr port idekey multi-session-p session-port &rest session-params) + "Register a new DBGp listener to an external DBGp proxy. +The proxy should be found at IP-OR-ADDR / PORT. +This create a new DBGp listener and register it to the proxy +associating with the IDEKEY." + (block dbgp-proxy-register-exec + ;; check whether the proxy listener already exists + (let ((listener (find-if (lambda (listener) + (let ((proxy (dbgp-proxy-get listener))) + (and proxy + (equal ip-or-addr (plist-get proxy :addr)) + (eq port (plist-get proxy :port)) + (equal idekey (plist-get proxy :idekey))))) + dbgp-listeners))) + (if listener + (return-from dbgp-proxy-register-exec + (cons listener + (format "The DBGp proxy listener has already been started. idekey: %s" idekey))))) + + ;; send commands to the external proxy instance + (let* ((listener-proc (make-network-process :name "DBGp proxy listener" + :server t + :service (if (and (numberp session-port) (< 0 session-port)) + session-port + t) + :family 'ipv4 + :noquery t + :filter 'dbgp-comint-setup + :sentinel 'dbgp-listener-sentinel)) + (listener-port (second (process-contact listener-proc))) + (result (dbgp-proxy-send-command ip-or-addr port + (format "proxyinit -a %s:%s -k %s -m %d" + dbgp-local-address listener-port idekey + (if multi-session-p 1 0))))) + (if (and (consp result) + (not (equal "1" (xml-get-attribute result 'success)))) + ;; successfully connected to the proxy, but respond an error. + ;; try to send another command. + (setq result (dbgp-proxy-send-command ip-or-addr port + (format "proxyinit -p %s -k %s -m %d" + listener-port idekey + (if multi-session-p 1 0))))) + (when (not (and (consp result) + (equal "1" (xml-get-attribute result 'success)))) + ;; connection failed or the proxy respond an error. + ;; give up. + (dbgp-process-kill listener-proc) + (return-from dbgp-proxy-register-exec + (if (not (consp result)) + (cons result + (cond + ((eq :proxy-not-found result) + (format "Cannot connect to DBGp proxy \"%s:%s\"." ip-or-addr port)) + ((eq :no-response result) + "DBGp proxy responds no message.") + ((eq :invalid-xml result) + "DBGp proxy responds with invalid XML.") + (t (symbol-name result)))) + (cons :error-response + (format "DBGp proxy returns an error: %s" + (dbgp-xml-get-error-message result)))))) + + ;; well done. + (dbgp-plist-put listener-proc :proxy (list :addr ip-or-addr + :port port + :idekey idekey + :multi-session multi-session-p)) + (dbgp-plist-put listener-proc :listener listener-proc) + (and session-params + (nconc (process-plist listener-proc) session-params)) + (setq dbgp-listeners (cons listener-proc dbgp-listeners)) + (cons listener-proc + (format "New DBGp proxy listener is registered. idekey: `%s'" idekey))))) + +;;;###autoload +(defun dbgp-proxy-unregister (idekey &optional proxy-ip-or-addr proxy-port) + "Unregister the DBGp listener associated with IDEKEY from a DBGp proxy. +After unregistration, it kills the listener instance." + (interactive + (let (proxies idekeys idekey) + ;; collect idekeys. + (mapc (lambda (listener) + (let ((proxy (dbgp-proxy-get listener))) + (and proxy + (setq proxies (cons listener proxies)) + (add-to-list 'idekeys (plist-get proxy :idekey))))) + dbgp-listeners) + (or proxies + (error "No DBGp proxy listener exists.")) + ;; ask user for the target idekey. + (setq idekey (completing-read "IDE key: " idekeys nil t + (and (eq 1 (length idekeys)) + (car idekeys)))) + ;; filter proxies and leave ones having the selected ideky. + (setq proxies (remove-if (lambda (proxy) + (not (equal idekey (plist-get (dbgp-proxy-get proxy) :idekey)))) + proxies)) + (let ((proxy (if (= 1 (length proxies)) + ;; solo proxy. + (car proxies) + ;; two or more proxies has the same ideky. + ;; ask user to select a proxy unregister from. + (let* ((addrs (mapcar (lambda (proxy) + (let ((prop (dbgp-proxy-get proxy))) + (format "%s:%s" (plist-get prop :addr) (plist-get prop :port)))) + proxies)) + (addr (completing-read "Proxy candidates: " addrs nil t (car addrs))) + (pos (position addr addrs))) + (and pos + (nth pos proxies)))))) + (list idekey + (plist-get (dbgp-proxy-get proxy) :addr) + (plist-get (dbgp-proxy-get proxy) :port))))) + + (let* ((proxies + (remq nil + (mapcar (lambda (listener) + (let ((prop (dbgp-proxy-get listener))) + (and prop + (equal idekey (plist-get prop :idekey)) + (or (not proxy-ip-or-addr) + (equal proxy-ip-or-addr (plist-get prop :addr))) + (or (not proxy-port) + (equal proxy-port (plist-get prop :port))) + listener))) + dbgp-listeners))) + (proxy (if (< 1 (length proxies)) + (error "Multiple proxies are found. Needs more parameters to determine for unregistration.") + (car proxies))) + (result (and proxy + (dbgp-proxy-unregister-exec proxy))) + (status (cons result + (cond + ((processp result) + (format "The DBGp proxy listener of `%s' is unregistered." idekey)) + ((null result) + (format "DBGp proxy listener of `%s' is not registered." idekey)) + ((stringp result) + (format "DBGp proxy returns an error: %s" result)) + ((eq :proxy-not-found result) + (format "Cannot connect to DBGp proxy \"%s:%s\"." proxy-ip-or-addr proxy-port)) + ((eq :no-response result) + "DBGp proxy responds no message.") + ((eq :invalid-xml result) + "DBGp proxy responds with invalid XML."))))) + (and (interactive-p) + (cdr status) + (message (cdr status))) + status)) + +;;;###autoload +(defun dbgp-proxy-unregister-exec (proxy) + "Unregister PROXY from a DBGp proxy. +After unregistration, it kills the listener instance." + (with-temp-buffer + (let* ((prop (dbgp-proxy-get proxy)) + (result (dbgp-proxy-send-command (plist-get prop :addr) + (plist-get prop :port) + (format "proxystop -k %s" (plist-get prop :idekey))))) + ;; no matter of the result, remove proxy listener from the dbgp-listeners list. + (dbgp-process-kill proxy) + (if (consp result) + (or (equal "1" (xml-get-attribute result 'success)) + (dbgp-xml-get-error-message result)) + result)))) + +(defun dbgp-sessions-kill-all () + (interactive) + (mapc 'delete-process dbgp-sessions) + (setq dbgp-sessions nil)) + +;;-------------------------------------------------------------- +;; DBGp listener functions +;;-------------------------------------------------------------- + +(defun dbgp-proxy-send-command (addr port string) + "Send DBGp proxy command string to an external DBGp proxy. +ADDR and PORT is the address of the target proxy. +This function returns an xml list if the command succeeds, +or a symbol: `:proxy-not-found', `:no-response', or `:invalid-xml'." + (with-temp-buffer + (let ((proc (ignore-errors + (make-network-process :name "DBGp proxy negotiator" + :buffer (current-buffer) + :host addr + :service port + :sentinel (lambda (proc string) "")))) + xml) + (if (null proc) + :proxy-not-found + (process-send-string proc string) + (dotimes (x 50) + (if (= (point-min) (point-max)) + (sit-for 0.1 t))) + (if (= (point-min) (point-max)) + :no-response + (or (ignore-errors + (setq xml (car (xml-parse-region (point-min) (point-max))))) + :invalid-xml)))))) + +(defun dbgp-listener-alive-p (port) + "Return t if any listener for POST is alive." + (let ((listener (dbgp-listener-find port))) + (and listener + (eq 'listen (process-status listener))))) + +;;-------------------------------------------------------------- +;; DBGp listener process log and sentinel +;;-------------------------------------------------------------- + +(defun dbgp-listener-sentinel (proc string) + (with-current-buffer (get-buffer-create "*DBGp Listener*") + (insert (format "[SNT] %S %s\n" proc string))) + (setq dbgp-listeners (remq proc dbgp-listeners))) + +(defun dbgp-listener-log (&rest arg) + (with-current-buffer (get-buffer-create "*DBGp Listener*") + (insert (format "[LOG] %S\n" arg)))) + +;;-------------------------------------------------------------- +;; DBGp session process filter and sentinel +;;-------------------------------------------------------------- + +(defvar dbgp-filter-defer-flag nil + "Non-nil means don't process anything from the debugger right now. +It is saved for when this flag is not set.") +(defvar dbgp-filter-defer-faced nil + "Non-nil means this is text that has been saved for later in `gud-filter'.") +(defvar dbgp-filter-pending-text nil + "Non-nil means this is text that has been saved for later in `gud-filter'.") +(defvar dbgp-delete-prompt-marker nil) +(defvar dbgp-filter-input-list nil) + +(defvar dbgp-buffer-process nil + "") +(put 'dbgp-buffer-process 'permanent-local t) + +(defadvice open-network-stream (around debugclient-pass-process-to-comint) + "[comint hack] Pass the spawned DBGp client process to comint." + (let* ((buffer (ad-get-arg 1)) + (proc (buffer-local-value 'dbgp-buffer-process buffer))) + (set-process-buffer proc buffer) + (setq ad-return-value proc))) + +(defun dbgp-comint-setup (proc string) + "Setup a new comint buffer for a newly created session process PROC. +This is the first filter function for a new session process created by a +listener process. After the setup is done, `dbgp-session-filter' function +takes over the filter." + (if (not (dbgp-session-accept-p proc)) + ;; multi session is disabled + (when (memq (process-status proc) '(run connect open)) + ;; refuse this session + (set-process-filter proc nil) + (set-process-sentinel proc nil) + (process-send-string proc "run -i 1\0") + (dotimes (i 50) + (and (eq 'open (process-status proc)) + (sleep-for 0 1))) + (dbgp-process-kill proc)) + ;; accept + (setq dbgp-sessions (cons proc dbgp-sessions)) + ;; initialize sub process + (set-process-query-on-exit-flag proc nil) + + (let* ((listener (dbgp-listener-get proc)) + (buffer-name (format "DBGp <%s:%s>" + (first (process-contact proc)) + (second (process-contact listener)))) + (buf (or (find-if (lambda (buf) + ;; find reusable buffer + (let ((proc (get-buffer-process buf))) + (and (buffer-local-value 'dbgp-buffer-process buf) + (not (and proc + (eq 'open (process-status proc))))))) + (buffer-list)) + (get-buffer-create buffer-name)))) + (with-current-buffer buf + (rename-buffer buffer-name) + ;; store PROC to `dbgp-buffer-process'. + ;; later the adviced `open-network-stream' will pass it + ;; comint. + (set (make-local-variable 'dbgp-buffer-process) proc) + (set (make-local-variable 'dbgp-filter-defer-flag) nil) + (set (make-local-variable 'dbgp-filter-defer-faced) nil) + (set (make-local-variable 'dbgp-filter-input-list) nil) + (set (make-local-variable 'dbgp-filter-pending-text) nil)) + ;; setup comint buffer + (ad-activate 'open-network-stream) + (unwind-protect + (make-comint-in-buffer "DBGp-Client" buf (cons t t)) + (ad-deactivate 'open-network-stream)) + ;; update PROC properties + (set-process-filter proc #'dbgp-session-filter) + (set-process-sentinel proc #'dbgp-session-sentinel) + (with-current-buffer buf + (set (make-local-variable 'dbgp-delete-prompt-marker) + (make-marker)) + ;;(set (make-local-variable 'comint-use-prompt-regexp) t) + ;;(setq comint-prompt-regexp (concat "^" dbgp-command-prompt)) + (setq comint-input-sender 'dbgp-session-send-string) + ;; call initializer function + (funcall (or (dbgp-plist-get listener :session-init) + 'null) + proc)) + (dbgp-session-filter proc string)))) + +(defun dbgp-session-accept-p (proc) + "Determine whether PROC should be accepted to be a new session." + (let ((accept-p (dbgp-plist-get proc :session-accept))) + (or (not accept-p) + (funcall accept-p proc)))) + +(defun dbgp-session-send-string (proc string &optional echo-p) + "Send a DBGp protocol STRING to PROC." + (if echo-p + (dbgp-session-echo-input proc string)) + (comint-send-string proc (concat string "\0"))) + +(defun dbgp-session-echo-input (proc string) + (with-current-buffer (process-buffer proc) + (if dbgp-filter-defer-flag + (setq dbgp-filter-input-list + (append dbgp-filter-input-list (list string))) + (let ((eobp (eobp)) + (process-window (get-buffer-window (current-buffer)))) + (save-excursion + (save-restriction + (widen) + (goto-char (process-mark proc)) + (insert (propertize + (concat string "\n") + 'front-sticky t + 'font-lock-face 'comint-highlight-input)) + (set-marker (process-mark proc) (point)))) + (when eobp + (if process-window + (with-selected-window process-window + (goto-char (point-max))) + (goto-char (point-max)))))))) + +(defun dbgp-session-filter (proc string) + ;; Here's where the actual buffer insertion is done + (let ((buf (process-buffer proc)) + (listener (dbgp-listener-get proc)) + (session-filter (dbgp-plist-get proc :session-filter)) + output process-window chunks) + (block dbgp-session-filter + (unless (buffer-live-p buf) + (return-from dbgp-session-filter)) + + (with-current-buffer buf + (when dbgp-filter-defer-flag + ;; If we can't process any text now, + ;; save it for later. + (setq dbgp-filter-defer-faced t + dbgp-filter-pending-text (if dbgp-filter-pending-text + (concat dbgp-filter-pending-text string) + string)) + (return-from dbgp-session-filter)) + + ;; If we have to ask a question during the processing, + ;; defer any additional text that comes from the debugger + ;; during that time. + (setq dbgp-filter-defer-flag t) + (setq dbgp-filter-defer-faced nil) + + (ignore-errors + ;; Process now any text we previously saved up. + (setq dbgp-filter-pending-text (if dbgp-filter-pending-text + (concat dbgp-filter-pending-text string) + string)) + (setq chunks (dbgp-session-response-to-chunk)) + + ;; If we have been so requested, delete the debugger prompt. + (if (marker-buffer dbgp-delete-prompt-marker) + (save-restriction + (widen) + (let ((inhibit-read-only t)) + (delete-region (process-mark proc) + dbgp-delete-prompt-marker) + (comint-update-fence) + (set-marker dbgp-delete-prompt-marker nil)))) + + ;; Save the process output, checking for source file markers. + (and chunks + (setq output + (concat + (mapconcat (if (functionp session-filter) + (lambda (chunk) (funcall session-filter proc chunk)) + #'quote) + chunks + "\n") + "\n")) + (setq output + (concat output + (if dbgp-filter-input-list + (mapconcat (lambda (input) + (concat + (propertize dbgp-command-prompt + 'font-lock-face 'comint-highlight-prompt) + (propertize (concat input "\n") + 'font-lock-face 'comint-highlight-input))) + dbgp-filter-input-list + "") + dbgp-command-prompt))) + (setq dbgp-filter-input-list nil)))) + ;; Let the comint filter do the actual insertion. + ;; That lets us inherit various comint features. + (and output + (ignore-errors + (comint-output-filter proc output)))) + (if (with-current-buffer buf + (setq dbgp-filter-defer-flag nil) + dbgp-filter-defer-faced) + (dbgp-session-filter proc "")))) + +(defun dbgp-session-response-to-chunk () + (let* ((string dbgp-filter-pending-text) + (send (length string)) ; string end + (lbeg 0) ; line begin + tbeg ; text begin + tlen ; text length + (i 0) ; running pointer + chunks) + (while (< i send) + (if (< 0 (elt string i)) + (incf i) + (setq tlen (string-to-number (substring string lbeg i))) + (setq tbeg (1+ i)) + (setq i (+ tbeg tlen)) + (when (< i send) + (setq chunks (cons (substring string tbeg i) chunks)) + (incf i) + (setq lbeg i)))) + ;; Remove chunk from `dbgp-filter-pending-text'. + (setq dbgp-filter-pending-text + (and (< lbeg i) + (substring dbgp-filter-pending-text lbeg))) + (nreverse chunks))) + +(defun dbgp-session-sentinel (proc string) + (let ((sentinel (dbgp-plist-get proc :session-sentinel))) + (ignore-errors + (and (functionp sentinel) + (funcall sentinel proc string)))) + (setq dbgp-sessions (remq proc dbgp-sessions))) + +;;-------------------------------------------------------------- +;; default session initializer, filter and sentinel +;;-------------------------------------------------------------- + +(defun dbgp-default-session-accept-p (proc) + "Determine whether PROC should be accepted to be a new session." + (or (not dbgp-sessions) + (if (dbgp-proxy-p proc) + (plist-get (dbgp-proxy-get proc) :multi-session) + (dbgp-plist-get proc :multi-session)))) + +(defun dbgp-default-session-init (proc) + (with-current-buffer (process-buffer proc) + (pop-to-buffer (current-buffer)))) + +(defun dbgp-default-session-filter (proc string) + (with-temp-buffer + ;; parse xml + (insert (replace-regexp-in-string "\n" "" string)) + (let ((xml (car (xml-parse-region (point-min) (point-max)))) + text) + ;; if the xml has a child node encoded with base64, decode it. + (when (equal "base64" (xml-get-attribute xml 'encoding)) + ;; remain decoded string + (setq text (with-current-buffer (process-buffer proc) + (decode-coding-string + (base64-decode-string (car (xml-node-children xml))) + buffer-file-coding-system))) + ;; decoded string may have invalid characters for xml, + ;; so replace the child node with a placeholder + (setcar (xml-node-children xml) "\0")) + + ;; create formatted xml string + (erase-buffer) + (when (string-match "^.*?\\?>" string) + (insert (match-string 0 string)) + (insert "\n")) + (xml-print (list xml)) + (add-text-properties (point-min) + (point-max) + (list 'front-sticky t + 'font-lock-face 'dbgp-response-face)) + (when text + ;; restore decoded string into a right place + (goto-char (point-min)) + (and (search-forward "\0" nil t) + (replace-match (propertize (concat "\n" text) + 'front-sticky t + 'font-lock-face 'dbgp-decoded-string-face) + nil t))) + ;; return a formatted xml string + (buffer-string)))) + +(defun dbgp-default-session-sentinel (proc string) + (let ((output "\nDisconnected.\n\n")) + (when (buffer-live-p (process-buffer proc)) + (dbgp-session-echo-input proc output)))) + +(provide 'dbgp) \ No newline at end of file diff --git a/emacs.d/elpa/geben-0.26/dbgp.elc b/emacs.d/elpa/geben-0.26/dbgp.elc new file mode 100644 index 0000000000000000000000000000000000000000..c27ad5a56ba105f1648d9687a82c85321e41e2ae GIT binary patch literal 27237 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 +;; Maintainer: reedom +;; Version: 0.26 +;; URL: http://code.google.com/p/geben-on-emacs/ +;; Keywords: DBGp, debugger, PHP, Xdebug, Perl, Python, Ruby, Tcl, Komodo +;; Compatibility: Emacs 22.1 +;; +;; This file is not part of GNU Emacs +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth +;; Floor, Boston, MA 02110-1301, USA. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: +;; +;; GEBEN is a software package that interfaces Emacs to DBGp protocol +;; with which you can debug running scripts interactive. At this present +;; DBGp protocol are supported in several script languages with help of +;; custom extensions. +;; +;;; Usage +;; +;; 1. Insert autoload hooks into your .Emacs file. +;; -> (autoload 'geben "geben" "DBGp protocol frontend, a script debugger" t) +;; 2. Start GEBEN. By default, M-x geben will start it. +;; GEBEN starts to listening to DBGp protocol session connection. +;; 3. Run debuggee script. +;; When the connection is established, GEBEN loads the entry script +;; file in geben-mode. +;; 4. Start debugging. To see geben-mode key bindings, type ?. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Requirements: +;; +;; [Server side] +;; - PHP with Xdebug 2.0.3 +;; http://xdebug.org/ +;; - Perl, Python, Ruby, Tcl with Komodo Debugger Extension +;; http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging +;; +;; [Client side] +;; - Emacs 22.1 and later +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Code: + +(eval-when-compile + (when (or (not (boundp 'emacs-version)) + (string< emacs-version "22.1")) + (error (concat "geben.el: This package requires Emacs 22.1 or later.")))) + +(eval-and-compile + (require 'cl) + (require 'xml) + (require 'tree-widget) + (require 'dbgp)) + +(defvar geben-version "0.24") + +;;-------------------------------------------------------------- +;; customization +;;-------------------------------------------------------------- + +;; For compatibility between versions of custom +(eval-and-compile + (condition-case () + (require 'custom) + (error nil)) + (if (and (featurep 'custom) (fboundp 'custom-declare-variable) + ;; Some XEmacsen w/ custom don't have :set keyword. + ;; This protects them against custom. + (fboundp 'custom-initialize-set)) + nil ;; We've got what we needed + ;; We have the old custom-library, hack around it! + (if (boundp 'defgroup) + nil + (defmacro defgroup (&rest args) + nil)) + (if (boundp 'defcustom) + nil + (defmacro defcustom (var value doc &rest args) + `(defvar (,var) (,value) (,doc)))))) + +;; customize group + +(defgroup geben nil + "A PHP Debugging environment." + :group 'debug) + +(defgroup geben-highlighting-faces nil + "Faces for GEBEN." + :group 'geben + :group 'font-lock-highlighting-faces) + +;; display window behavior + +(defvar geben-dynamic-property-buffer-p nil) + +(defcustom geben-display-window-function 'pop-to-buffer + "*Function to display a debuggee script's content. +Typically `pop-to-buffer' or `switch-to-buffer'." + :group 'geben + :type 'function) + +(defsubst geben-dbgp-dynamic-property-bufferp (buf) + (with-current-buffer buf + (symbol-value 'geben-dynamic-property-buffer-p))) + +(defun geben-dbgp-display-window (buf) + "Display a buffer anywhere in a window, depends on the circumstance." + (cond + ((get-buffer-window buf) + (select-window (get-buffer-window buf)) + (switch-to-buffer buf)) + ((or (eq 1 (count-windows)) + (not (geben-dbgp-dynamic-property-buffer-visiblep))) + (funcall geben-display-window-function buf)) + (t + (let ((candidates (make-vector 3 nil)) + (dynamic-p (geben-dbgp-dynamic-property-bufferp buf))) + (block finder + (walk-windows (lambda (window) + (if (geben-dbgp-dynamic-property-bufferp (window-buffer window)) + (if dynamic-p + (unless (aref candidates 1) + (aset candidates 1 window))) + (if (eq (selected-window) window) + (aset candidates 2 window) + (aset candidates 0 window) + (return-from finder)))))) + (select-window (or (aref candidates 0) + (aref candidates 1) + (aref candidates 2) + (selected-window))) + (switch-to-buffer buf)))) + buf) + +;; (when (buffer-live-p buf) +;; (or (eq buf (get-buffer geben-context-buffer-name)) +;; (eq buf (get-buffer (geben-dbgp-redirect-buffer-name session :stdout))) +;; (eq buf (get-buffer (geben-dbgp-redirect-buffer-name session :stderr)))))) + +(defun geben-dbgp-dynamic-property-buffer-visiblep () + "Check whether any window displays any property buffer." + (block walk-loop + (walk-windows (lambda (window) + (if (geben-dbgp-dynamic-property-bufferp (window-buffer window)) + (return-from walk-loop t)))))) + + +;;============================================================== +;; utilities +;;============================================================== + +(defsubst geben-flatten (x) + "Make cons X to a flat list." + (flet ((rec (x acc) + (cond ((null x) acc) + ((atom x) (cons x acc)) + (t (rec (car x) (rec (cdr x) acc)))))) + (rec x nil))) + +(defsubst geben-what-line (&optional pos) + "Get the number of the line in which POS is located. +If POS is omitted, then the current position is used." + (save-restriction + (widen) + (save-excursion + (if pos (goto-char pos)) + (beginning-of-line) + (1+ (count-lines 1 (point)))))) + +(defmacro geben-plist-push (plist prop value) + `(let* ((plist ,plist) + (l (plist-get plist ,prop))) + (cond + ((consp l) + (plist-put plist ,prop + (cons ,value (plist-get plist ,prop)))) + ((null l) + (plist-put plist ,prop (list ,value))) + (t + (error "geben-plist-push: cannot add value; type of prop `%s' is not `list' but `%s'." + ,prop (type-of ,value)))))) + +(defmacro geben-plist-append (plist prop value) + `(let* ((plist ,plist) + (l (plist-get plist ,prop))) + (cond + ((consp l) + (nconc l (list ,value))) + ((null l) + (plist-put plist ,prop (list ,value))) + (t + (error "geben-plist-add: cannot add value; type of prop `%s' is not `list' but `%s'." + ,prop (type-of ,value)))))) + +(defmacro geben-lexical-bind (bindings &rest body) + (declare (indent 1) + (debug (sexp &rest form))) + (cl-macroexpand-all + (nconc + (list 'lexical-let (mapcar (lambda (arg) + (list arg arg)) + bindings)) + body))) + +(defun geben-remove-directory-tree (basedir) + (ignore-errors + (mapc (lambda (path) + (cond + ((or (file-symlink-p path) + (file-regular-p path)) + (delete-file path)) + ((file-directory-p path) + (let ((name (file-name-nondirectory path))) + (or (equal "." name) + (equal ".." name) + (geben-remove-directory-tree path)))))) + (directory-files basedir t nil t)) + (delete-directory basedir))) + +(defun geben-remote-p (ip) + "Test whether IP refers a remote system." + (not (or (equal ip "127.0.0.1") + (and (fboundp 'network-interface-list) + (member ip (mapcar (lambda (addr) + (format-network-address (cdr addr) t)) + (network-interface-list))))))) + +;;-------------------------------------------------------------- +;; cross emacs overlay definitions +;;-------------------------------------------------------------- + +(eval-and-compile + (and (featurep 'xemacs) + (require 'overlay)) + (or (fboundp 'overlay-livep) + (defalias 'overlay-livep 'overlay-buffer))) + +(defun geben-overlay-make-line (lineno &optional buf) + "Create a whole line overlay." + (with-current-buffer (or buf (current-buffer)) + (save-excursion + (widen) + (goto-line lineno) + (beginning-of-line) + (make-overlay (point) + (save-excursion + (forward-line) (point)) + nil t nil)))) + + +;;============================================================== +;; DBGp related utilities +;;============================================================== + +(defmacro* geben-dbgp-sequence (cmd &rest callback) + (declare (indent 1) + (debug (form &rest form))) + (list 'progn + (list 'geben-plist-append cmd + :callback (car callback)))) + +(defmacro* geben-dbgp-sequence-bind (bindings cmd callback) + (declare (indent 1) + (debug (sexp form lambda-expr))) + (cl-macroexpand-all + (list 'progn + (list 'geben-plist-append cmd + :callback (if bindings + (list 'geben-lexical-bind bindings callback) + callback))))) + +(defun geben-dbgp-decode-string (string data-encoding coding-system) + "Decode encoded STRING." + (when string + (let ((s string)) + (when (consp s) + (setq s (car s))) + (when (stringp s) + (setq s (cond + ((equal "base64" data-encoding) + (base64-decode-string s)) + (t s))) + (if coding-system + (decode-coding-string s coding-system) + s))))) + + +(defcustom geben-temporary-file-directory (expand-file-name "geben" "~/.emacs.d") + "*Base directory path where GEBEN creates temporary files and directories." + :group 'geben + :type 'directory) + +(defvar geben-storages nil) +(defvar geben-storage-loaded nil) + +(defun geben-storage-load () + (let ((storage-path (expand-file-name ".storage" + geben-temporary-file-directory))) + (when (file-exists-p storage-path) + (ignore-errors + (with-temp-buffer + (insert-file-contents storage-path) + (setq geben-storages (read (buffer-string)))))))) + +(defun geben-storage-save () + (let ((storage-path (expand-file-name ".storage" + geben-temporary-file-directory))) + (with-temp-buffer + (pp geben-storages (current-buffer)) + (with-temp-message "" + (write-region (point-min) (point-max) storage-path))))) + + +;;============================================================== +;; session +;;============================================================== + +;;-------------------------------------------------------------- +;; constants +;;-------------------------------------------------------------- + +(defconst geben-process-buffer-name "*GEBEN<%s> process*" + "Name for DBGp client process console buffer.") +(defconst geben-backtrace-buffer-name "*GEBEN<%s> backtrace*" + "Name for backtrace buffer.") +(defconst geben-breakpoint-list-buffer-name "*GEBEN<%s> breakpoint list*" + "Name for breakpoint list buffer.") +(defconst geben-context-buffer-name "*GEBEN<%s> context*" + "Name for context buffer.") + +(defvar geben-sessions nil) +(defvar geben-current-session nil) + +;; geben session start/finish hooks + +(defcustom geben-session-enter-hook nil + "*Hook running at when the geben debugging session is starting. +Each function is invoked with one argument, SESSION" + :group 'geben + :type 'hook) + +(defcustom geben-session-exit-hook nil + "*Hook running at when the geben debugging session is finished." + :group 'geben + :type 'hook) + +(defcustom geben-pause-at-entry-line t + "*Specify whether debuggee script should be paused at the entry line. +If the value is t, GEBEN will automatically pause the starting program +at the entry line of the script." + :group 'geben + :type 'boolean) + +(defstruct (geben-session + (:constructor nil) + (:constructor geben-session-make)) + "Represent a DBGp protocol connection session." + storage + process + (tid 30000) + (state :created) + initmsg + xdebug-p + language + feature + redirect + breakpoint + cmd + sending-p + source + stack + context + (cursor (list :overlay nil :position nil)) + tempdir + ) + +(defmacro geben-with-current-session (binding &rest body) + (declare (indent 1) + (debug (symbolp &rest form))) + (cl-macroexpand-all + `(let ((,binding geben-current-session)) + (when ,binding + ,@body)))) + +;; initialize + +(defsubst geben-session-init (session init-msg) + "Initialize a session of a process PROC." + (geben-session-tempdir-setup session) + (setf (geben-session-initmsg session) init-msg) + (setf (geben-session-xdebug-p session) + (equal "Xdebug" (car (xml-node-children + (car (xml-get-children init-msg 'engine)))))) + (setf (geben-session-language session) + (let ((lang (xml-get-attribute-or-nil init-msg 'language))) + (and lang + (intern (concat ":" (downcase lang)))))) + (setf (geben-session-storage session) (or (geben-session-storage-find session) + (geben-session-storage-create session))) + (run-hook-with-args 'geben-session-enter-hook session)) + +(defun geben-session-storage-create (session) + (let* ((initmsg (geben-session-initmsg session)) + (process (geben-session-process session)) + (listener (dbgp-plist-get process :listener)) + (storage (if (dbgp-proxy-p process) + (list :proxy t + :addr (xml-get-attribute initmsg 'hostname) + :idekey (xml-get-attribute initmsg 'idekey)) + (list :proxy nil + :port (second (process-contact listener)))))) + (nconc storage (list :language (geben-session-language session) + :fileuri (xml-get-attribute initmsg 'fileuri))) + (add-to-list 'geben-storages storage) + storage)) + +(defun geben-session-storage-find (session) + (unless geben-storage-loaded + (geben-storage-load) + (setq geben-storage-loaded t)) + (let* ((initmsg (geben-session-initmsg session)) + (addr (xml-get-attribute initmsg 'hostname)) + (fileuri (xml-get-attribute initmsg 'fileuri)) + (idekey (xml-get-attribute initmsg 'idekey)) + (process (geben-session-process session)) + (listener (dbgp-plist-get process :listener)) + (proxy-p (dbgp-proxy-p listener)) + (port (second (process-contact listener)))) + (find-if (lambda (storage) + (and (eq (not proxy-p) + (not (plist-get storage :proxy))) + (eq (geben-session-language session) + (plist-get storage :language)) + (equal fileuri (plist-get storage :fileuri)) + (if proxy-p + (and (equal addr (plist-get storage :addr)) + (equal idekey (plist-get storage :idekey))) + (eq port (plist-get storage :port))))) + geben-storages))) + +(defsubst geben-session-release (session) + "Initialize a session of a process PROC." + (setf (geben-session-process session) nil) + (setf (geben-session-cursor session) nil) + (geben-session-tempdir-remove session) + (geben-storage-save) + (run-hook-with-args 'geben-session-exit-hook session)) + +(defsubst geben-session-active-p (session) + (let ((proc (geben-session-process session))) + (and (processp proc) + (eq 'open (process-status proc))))) + +;; tid + +(defsubst geben-session-next-tid (session) + "Get transaction id for next command." + (prog1 + (geben-session-tid session) + (incf (geben-session-tid session)))) + +;; buffer + +(defsubst geben-session-buffer-name (session format-string) + (let* ((proc (geben-session-process session)) + (idekey (plist-get (dbgp-proxy-get proc) :idekey))) + (format format-string + (concat (if idekey + (format "%s:" idekey) + "") + (format "%s:%s" + (dbgp-ip-get proc) + (dbgp-port-get (dbgp-listener-get proc))))))) + +(defsubst geben-session-buffer (session format-string) + (get-buffer-create (geben-session-buffer-name session format-string))) + +(defsubst geben-session-buffer-get (session format-string) + (get-buffer (geben-session-buffer-name session format-string))) + +(defsubst geben-session-buffer-live-p (session format-string) + (buffer-live-p (get-buffer (geben-session-buffer-name session format-string)))) + +(defsubst geben-session-buffer-visible-p (session format-string) + (let ((buf (get-buffer (geben-session-buffer-name session format-string)))) + (and buf + (buffer-live-p buf) + (get-buffer-window buf)))) + +;; temporary directory + +(defun geben-session-tempdir-setup (session) + "Setup temporary directory." + (let* ((proc (geben-session-process session)) + (gebendir (file-truename geben-temporary-file-directory)) + (leafdir (format "%d" (second (process-contact proc)))) + (tempdir (expand-file-name leafdir gebendir))) + (unless (file-directory-p gebendir) + (make-directory gebendir t) + (set-file-modes gebendir #o1777)) + (setf (geben-session-tempdir session) tempdir))) + +(defun geben-session-tempdir-remove (session) + "Remove temporary directory." + (let ((tempdir (geben-session-tempdir session))) + (when (file-directory-p tempdir) + (geben-remove-directory-tree tempdir)))) + +;; misc + +(defsubst geben-session-ip-get (session) + "Get ip address of the host server." + (let* ((proc (geben-session-process session)) + (listener (dbgp-listener-get proc))) + (format-network-address (dbgp-ip-get proc) t))) + +(defun geben-session-remote-p (session) + "Get ip address of the host server." + (geben-remote-p (geben-session-ip-get session))) + + +;;============================================================== +;; cmd hash +;;============================================================== + +(defmacro geben-cmd-param-for (key) + `(plist-get '(:depth "-d" + :context-id "-c" + :max-data-size "-m" + :type "-t" + :page "-p" + :key "k" + :address "-a" + :name "-n" + :fileuri "-f" + :lineno "-n" + :class "-a" + :function "-m" + :state "-s" + :exception "-x" + :hit-value "-h" + :hit-condition "-o" + :run-once "-r" + :expression "--") + ,key)) + +(defsubst geben-cmd-param-get (cmd flag) + "Get FLAG's parameter used in CMD. +For a DBGp command \`stack_get -i 1 -d 2\', +`(geben-cmd-param-get cmd \"-d\")\' gets \"2\"." + (cdr-safe (assoc flag (plist-get cmd :param)))) + +(defun geben-cmd-expand (cmd) + "Build a send command string for DBGp protocol." + (mapconcat #'(lambda (x) + (cond ((stringp x) x) + ((integerp x) (int-to-string x)) + ((atom (format "%S" x))) + ((null x) "") + (t x))) + (geben-flatten (list (plist-get cmd :operand) + "-i" + (plist-get cmd :tid) + (plist-get cmd :param))) + " ")) + +(defsubst geben-session-cmd-make (session operand params) + "Create a new command object." + (list :session session + :tid (geben-session-next-tid session) + :operand operand + :param params)) + +(defsubst geben-session-cmd-append (session cmd) + (let ((cmds (geben-session-cmd session))) + (if cmds + (nconc cmds (list cmd)) + (setf (geben-session-cmd session) (list cmd))))) + +(defun geben-session-cmd-remove (session tid) + "Get a command object from the command hash table specified by TID." + (let ((cmds (geben-session-cmd session))) + (if (eq tid (plist-get (car cmds) :tid)) + (prog1 + (car cmds) + (setf (geben-session-cmd session) (cdr cmds))) + (let (match-cmd) + (setf (geben-session-cmd session) + (remove-if (lambda (cmd) + (and (eq tid (plist-get cmd :tid)) + (setq match-cmd cmd))) + cmds)) + match-cmd)))) + + +;;============================================================== +;; DBGp protocol handler +;;============================================================== + +(defsubst geben-dbgp-tid-read (msg) + "Get a transaction id of MSG." + (let ((tid (xml-get-attribute-or-nil msg 'transaction_id))) + (and tid + (string-to-number tid)))) + +(defun geben-dbgp-entry (session msg) + "Analyze MSG and dispatch to a specific handler." + ;; remain session status ('connect, 'init, 'break, 'stopping, 'stopped) + (let ((handler (intern-soft (concat "geben-dbgp-handle-" + (symbol-name (xml-node-name msg))))) + (status (xml-get-attribute-or-nil msg 'status))) + (and status + (setf (geben-session-state session) (intern (concat ":" status)))) + (and (functionp handler) + (funcall handler session msg)))) + +(defvar geben-dbgp-init-hook nil) + +(defun geben-dbgp-handle-init (session msg) + "Handle a init message." + (geben-session-init session msg) + (run-hook-with-args 'geben-dbgp-init-hook session)) + +(defun geben-dbgp-handle-response (session msg) + "Handle a response message." + (let* ((tid (geben-dbgp-tid-read msg)) + (cmd (geben-session-cmd-remove session tid)) + (err (dbgp-xml-get-error-node msg))) + (geben-dbgp-handle-status session msg) + (geben-dbgp-process-command-queue session) + (cond + (err + (message "Command error: %s" + (dbgp-xml-get-error-message msg))) + (cmd + (let* ((operand (replace-regexp-in-string + "_" "-" (xml-get-attribute msg 'command))) + (func-name (concat "geben-dbgp-response-" operand)) + (func (intern-soft func-name))) + (and (functionp func) + (funcall func session cmd msg))))) + (mapc (lambda (callback) + (funcall callback session cmd msg err)) + (plist-get cmd :callback)))) + +(defun geben-dbgp-handle-status (session msg) + "Handle status code in a response message." + (let ((status (xml-get-attribute msg 'status))) + (cond + ((equal status "stopping") + (accept-process-output) + (and (geben-session-active-p session) + (geben-dbgp-command-stop session)))))) + +;;; command sending + +(defun geben-dbgp-send-string (session string) + (and (string< "" string) + (geben-session-active-p session) + (dbgp-session-send-string (geben-session-process session) string t))) + +(defun geben-send-raw-command (session fmt &rest arg) + "Send a command string to a debugger engine. +The command string will be built up with FMT and ARG with a help of +the string formatter function `format'." + (let ((cmd (apply #'format fmt arg))) + (geben-dbgp-send-string session cmd))) + +(defun geben-dbgp-send-command (session operand &rest params) + "Send a command to a debugger engine. +Return a cmd list." + (if (geben-session-active-p session) + (let ((cmd (geben-session-cmd-make session operand params))) + (geben-session-cmd-append session cmd) + (unless (geben-session-sending-p session) + (setf (geben-session-sending-p session) t) + (geben-dbgp-process-command-queue session)) + cmd))) + +(defun geben-dbgp-process-command-queue (session) + (let ((cmd (car (geben-session-cmd session)))) + (if cmd + (geben-dbgp-send-string session (geben-cmd-expand cmd)) + (setf (geben-session-sending-p session) nil)))) + +(defvar geben-dbgp-continuous-command-hook nil) + +;;-------------------------------------------------------------- +;; continuous commands +;;-------------------------------------------------------------- + +;; step_into + +(defun geben-dbgp-command-step-into (session) + "Send \`step_into\' command." + (geben-dbgp-send-command session "step_into")) + +(defun geben-dbgp-response-step-into (session cmd msg) + "A response message handler for \`step_into\' command." + (run-hook-with-args 'geben-dbgp-continuous-command-hook session)) + +;; step_over + +(defun geben-dbgp-command-step-over (session) + "Send \`step_over\' command." + (geben-dbgp-send-command session "step_over")) + +(defun geben-dbgp-response-step-over (session cmd msg) + "A response message handler for \`step_over\' command." + (run-hook-with-args 'geben-dbgp-continuous-command-hook session)) + +;; step_out + +(defun geben-dbgp-command-step-out (session) + "Send \`step_out\' command." + (geben-dbgp-send-command session "step_out")) + +(defun geben-dbgp-response-step-out (session cmd msg) + "A response message handler for \`step_out\' command." + (run-hook-with-args 'geben-dbgp-continuous-command-hook session)) + +;; run + +(defun geben-dbgp-command-run (session) + "Send \`run\' command." + (geben-dbgp-send-command session "run")) + +(defun geben-dbgp-response-run (session cmd msg) + "A response message handler for \`run\' command." + (run-hook-with-args 'geben-dbgp-continuous-command-hook session)) + +;;; stop + +(defun geben-dbgp-command-stop (session) + "Send \`stop\' command." + (geben-dbgp-send-command session "stop")) + +;;; eval + +(defun geben-dbgp-command-eval (session exp) + "Send \`eval\' command." + (geben-dbgp-send-command + session + "eval" + (format "-- {%s}" (base64-encode-string exp)))) + +(defun geben-dbgp-response-eval (session cmd msg) + "A response message handler for \`eval\' command." + (message "result: %S" + (geben-dbgp-decode-value (car-safe (xml-get-children msg 'property))))) + +(defun geben-dbgp-decode-value (prop) + "Decode a VALUE passed by debugger engine." + (let ((type (xml-get-attribute prop 'type)) + result) + (setq result + (cond + ((or (string= "array" type) + (string= "object" type)) + (mapcar (lambda (value) + (geben-dbgp-decode-value value)) + (xml-get-children prop 'property))) + ((string= "null" type) + nil) + (t + (let ((value (car (last prop)))) + (assert (stringp value)) + (when (string= "base64" (xml-get-attribute prop 'encoding)) + (setq value (base64-decode-string value))) + (if (string= "string" type) + (decode-coding-string value 'utf-8) + (string-to-number value)))))) + (let ((name (xml-get-attribute-or-nil prop 'name))) + (if name + (cons name result) + result)))) + +(eval-when-compile + (require 'tramp)) + +;;============================================================== +;; source +;;============================================================== + +;; file hooks + +(defcustom geben-source-visit-hook nil + "*Hook running at when GEBEN visits a debuggee script file. +Each function is invoked with one argument, BUFFER." + :group 'geben + :type 'hook) + +(defcustom geben-close-mirror-file-after-finish t + "*Specify whether GEBEN should close fetched files from remote site after debugging. +Since the remote files is stored temporary that you can confuse +they were editable if they were left after a debugging session. +If the value is non-nil, GEBEN closes temporary files when +debugging is finished. +If the value is nil, the files left in buffers." + :group 'geben + :type 'boolean) + +(defun geben-source-find-file-handler () + (let* ((local-path (buffer-file-name)) + (session (and local-path (geben-source-find-session local-path)))) + (if session + (run-hook-with-args 'geben-source-visit-hook session (current-buffer))))) + +(add-hook 'find-file-hook #'geben-source-find-file-handler) + +;;-------------------------------------------------------------- +;; source hash +;;-------------------------------------------------------------- + +(defcustom geben-source-coding-system 'utf-8 + "Coding system for source code retrieving remotely via the debugger engine." + :group 'geben + :type 'coding-system) + +(defmacro geben-source-make (fileuri local-path) + "Create a new source object. +A source object forms a property list with three properties +:fileuri, :remotep and :local-path." + `(list :fileuri ,fileuri :local-path ,local-path)) + +(defvar geben-source-release-hook nil) + +(defun geben-source-release (source) + "Release a SOURCE object." + (let ((buf (find-buffer-visiting (or (plist-get source :local-path) "")))) + (when buf + (with-current-buffer buf + (when (and (boundp 'geben-mode) + (symbol-value 'geben-mode)) + (run-hooks 'geben-source-release-hook)) + ;; Not implemented yet + ;; (and (buffer-modified-p buf) + ;; (switch-to-buffer buf) + ;; (yes-or-no-p "Buffer is modified. Save it?") + ;; (geben-write-file-contents this buf)) + (when geben-close-mirror-file-after-finish + (set-buffer-modified-p nil) + (kill-buffer buf)))))) + +(defsubst geben-source-fileuri-regularize (fileuri) + ;; for bug of Xdebug 2.0.3 and below: + (replace-regexp-in-string "%28[0-9]+%29%20:%20runtime-created%20function$" "" + fileuri)) + +(defun geben-source-fileuri (session local-path) + "Guess a file uri string which counters to LOCAL-PATH." + (let* ((tempdir (geben-session-tempdir session)) + (templen (length tempdir)) + (tramp-spec (plist-get (geben-session-storage session) :tramp)) + (tramp-spec-len (and tramp-spec (length tramp-spec)))) + (concat "file://" + (cond + ((and (< templen (length local-path)) + (string= tempdir (substring local-path 0 templen))) + (substring local-path + (- templen + (if (string< "" (file-name-nondirectory tempdir)) 0 1)))) + ((and tramp-spec + (< tramp-spec-len (length local-path)) + (string= tramp-spec (substring local-path 0 tramp-spec-len))) + (substring local-path tramp-spec-len)) + (t + local-path))))) + +(defun geben-source-local-path (session fileuri) + "Generate path string from FILEURI to store temporarily." + (let ((local-path (geben-source-local-path-in-server session fileuri))) + (when local-path + (expand-file-name (substring local-path (if (string-match "^[A-Z]:" local-path) 3 1)) + (geben-session-tempdir session))))) + +(defun geben-source-local-path-in-server (session fileuri &optional disable-completion) + "Make a path string correspond to FILEURI." + (when (string-match "^\\(file\\|https?\\):/+" fileuri) + (let ((path (substring fileuri (1- (match-end 0))))) + (require 'url-util) + (setq path (url-unhex-string path)) + (when (string-match "^/[A-Z]:" path) ;; for HTTP server on Windows + (setq path (substring path 1))) + (if (and (not disable-completion) + (string= "" (file-name-nondirectory path))) + (expand-file-name (geben-source-default-file-name session) + path) + path)))) + +(defun geben-source-default-file-name (session) + (case (geben-session-language session) + (:php "index.php") + (:python "index.py") + (:perl "index.pl") + (:ruby "index.rb") + (t "index.html"))) + +(defun geben-source-find-session (temp-path) + "Find a session which may have a file at TEMP-PATH in its temporary directory tree." + (find-if (lambda (session) + (let ((tempdir (geben-session-tempdir session))) + (ignore-errors + (string= tempdir (substring temp-path 0 (length tempdir)))))) + geben-sessions)) + +(defun geben-source-visit (local-path) + "Visit to a local source code file." + (let ((buf (or (find-buffer-visiting local-path) + (if (file-exists-p local-path) + (let* ((session (geben-source-find-session local-path)) + (storage (and session + (geben-session-storage session))) + (coding-system (or (plist-get storage :source-coding-system) + geben-source-coding-system))) + (if coding-system + (let ((coding-system-for-read coding-system) + (coding-system-for-write coding-system)) + (find-file-noselect local-path)) + (find-file-noselect local-path))))))) + (when buf + (geben-dbgp-display-window buf) + buf))) + +;; session storage + +(defun geben-session-source-storage-add (session fileuri) + (let* ((storage (geben-session-storage session)) + (list (plist-get storage :source))) + (if (and (string-match "^file:/" fileuri) + (not (find list fileuri :test #'equal))) + (if list + (nconc list (list fileuri)) + (plist-put storage :source (list fileuri)))))) + +;; session + +(defun geben-session-source-init (session) + "Initialize a source hash table of the SESSION." + (setf (geben-session-source session) (make-hash-table :test 'equal))) + +(add-hook 'geben-session-enter-hook #'geben-session-source-init) + +(defun geben-session-source-add (session fileuri local-path content) + "Add a source object to SESSION." + (let ((tempdir (geben-session-tempdir session))) + (unless (file-directory-p tempdir) + (make-directory tempdir t) + (set-file-modes tempdir #o0700))) + (geben-session-source-write-file session local-path content) + (puthash fileuri (geben-source-make fileuri local-path) (geben-session-source session)) + (geben-session-source-storage-add session fileuri)) + +(defun geben-session-source-release (session) + "Release source objects." + (maphash (lambda (fileuri source) + (geben-source-release source)) + (geben-session-source session))) + +(add-hook 'geben-session-exit-hook #'geben-session-source-release) + +(defsubst geben-session-source-get (session fileuri) + (gethash fileuri (geben-session-source session))) + +(defsubst geben-session-source-append (session fileuri local-path) + (puthash fileuri (list :fileuri fileuri :local-path local-path) + (geben-session-source session))) + +(defsubst geben-session-source-local-path (session fileuri) + "Find a known local-path that counters to FILEURI." + (plist-get (gethash fileuri (geben-session-source session)) + :local-path)) + +(defsubst geben-session-source-fileuri (session local-path) + "Find a known fileuri that counters to LOCAL-PATH." + (block geben-session-souce-fileuri + (maphash (lambda (fileuri path) + (and (equal local-path (plist-get path :local-path)) + (return-from geben-session-souce-fileuri fileuri))) + (geben-session-source session)))) + +(defsubst geben-session-source-content-coding-system (session content) + "Guess a coding-system for the CONTENT." + (or (plist-get (geben-session-storage session) :source-coding-system) + geben-source-coding-system + (detect-coding-string content t))) + +(defun geben-session-source-write-file (session path content) + "Write CONTENT to file." + (make-directory (file-name-directory path) t) + (ignore-errors + (with-current-buffer (or (find-buffer-visiting path) + (create-file-buffer path)) + (let ((inhibit-read-only t) + (coding-system (geben-session-source-content-coding-system session content))) + (buffer-disable-undo) + (widen) + (erase-buffer) + (font-lock-mode 0) + (unless (eq 'undecided coding-system) + (set-buffer-file-coding-system coding-system)) + (insert (decode-coding-string content coding-system))) + (with-temp-message "" + (write-file path) + (kill-buffer (current-buffer)))) + t)) + +;;; dbgp + +(defun geben-dbgp-command-source (session fileuri) + "Send source command. +FILEURI is a uri of the target file of a debuggee site." + (geben-dbgp-send-command session "source" (cons "-f" + (geben-source-fileuri-regularize fileuri)))) + +(defun geben-dbgp-response-source (session cmd msg) + "A response message handler for \`source\' command." + (let* ((fileuri (geben-cmd-param-get cmd "-f")) + (local-path (geben-source-local-path session fileuri))) + (when local-path + (geben-session-source-add session fileuri local-path (base64-decode-string (third msg))) + (geben-source-visit local-path)))) + +(defun geben-dbgp-source-fetch (session fileuri) + "Fetch the content of FILEURI." + ;;(let ((fileuri (geben-dbgp-regularize-fileuri fileuri))) + (unless (geben-session-source-local-path session fileuri) + ;; haven't fetched remote source yet; fetch it. + (geben-dbgp-command-source session fileuri))) + +(defcustom geben-visit-remote-file nil + "" + :group 'geben + :type 'function) + +(defcustom geben-get-tramp-spec-for nil + "Function to retrieve TRAMP spec for a file path of a remove server. +This function is called when visiting a remote server file, with +a parameter `remote-path'. (e.g. \"/192.168.1.32:/var/www/index.php\") +If `remote-path' is unknown to the function, it should return nil. +Or return specific TRAMP spec. (e.g. \"/user@example.com:\"" + :group 'geben + :type 'function) + +(defun geben-session-source-visit-original-file (session fileuri &optional disable-completion) + (let ((target-path (geben-session-source-read-file-name session fileuri disable-completion))) + (and target-path + (prog1 + (find-file target-path) + (message "visited: %s" target-path))))) + +(defun geben-session-source-read-file-name (session fileuri &optional disable-completion) + (if (geben-session-remote-p session) + (geben-session-source-read-file-name-remote session fileuri disable-completion) + (geben-session-source-read-file-name-local session fileuri disable-completion))) + +(defun geben-session-source-read-file-name-local (session fileuri &optional disable-completion) + (let ((local-path (geben-source-local-path-in-server session fileuri disable-completion))) + ;; local file + (unless (file-regular-p local-path) + (while (not (file-regular-p (setq local-path + (read-file-name "Find local file: " + local-path local-path t "")))) + (beep))) + (expand-file-name local-path))) + +(defun geben-session-source-read-file-name-remote (session fileuri &optional disable-completion) + (condition-case nil + (if (fboundp 'geben-visit-remote-file) + (funcall geben-visit-remote-file session fileuri) + (let* ((ip (geben-session-ip-get session)) + (local-path (geben-source-local-path-in-server session fileuri disable-completion)) + (storage (geben-session-storage session)) + (path-prefix (or (plist-get storage :tramp) + (and (fboundp 'geben-get-tramp-spec-for) + (funcall 'geben-get-tramp-spec-for + (format "/%s:%s" ip local-path))))) + (find-file-default (if path-prefix + (concat path-prefix local-path) + (format "/%s:%s" ip local-path)))) + (while (not (tramp-handle-file-regular-p + (setq find-file-default (read-file-name "Find remote file: " + (file-name-directory find-file-default) + find-file-default t + (file-name-nondirectory find-file-default))))) + (beep)) + (require 'tramp) + (when (tramp-tramp-file-p find-file-default) + (plist-put storage :tramp (replace-regexp-in-string ":[^:]+$" ":" find-file-default))) + find-file-default)) + (quit (beep)))) + + +;;============================================================== +;; cursor +;;============================================================== + +(defface geben-cursor-arrow-face + '((((class color)) + :inherit 'default + :foreground "cyan")) + "Face to displaying arrow indicator." + :group 'geben-highlighting-faces) + +(defun geben-session-cursor-update (session fileuri lineno) + (let ((lineno (cond + ((numberp lineno) + lineno) + ((stringp lineno) + (string-to-number lineno)))) + (fileuri (geben-source-fileuri-regularize fileuri))) + (and lineno + (floatp lineno) + (setq lineno 1)) ; restrict to integer + (plist-put (geben-session-cursor session) :position (cons fileuri lineno))) + (geben-session-cursor-indicate session)) + +(defun geben-session-cursor-indicate (session) + "Display indication marker at the current breaking point. +if DISPLAY-BUFFERP is non-nil, the buffer contains the breaking point +will be displayed in a window." + (let* ((cursor (geben-session-cursor session)) + (position (plist-get cursor :position)) + (fileuri (car position)) + (lineno (cdr position)) + (local-path (geben-session-source-local-path session fileuri))) + (if local-path + (geben-session-cursor-overlay-update session) + (geben-dbgp-sequence + (geben-dbgp-command-source session fileuri) + (lambda (session cmd msg err) + (unless err + (geben-session-cursor-overlay-update session))))))) + +(defun geben-session-cursor-overlay-update (session) + (let* ((cursor (geben-session-cursor session)) + (overlay (plist-get cursor :overlay)) + (position (plist-get cursor :position)) + (fileuri (car position)) + (lineno (cdr position)) + (local-path (and fileuri + (geben-session-source-local-path session fileuri)))) + (if (null position) + (when (overlayp overlay) + (delete-overlay overlay) + (plist-put cursor :overlay nil)) + (let ((buf (geben-source-visit local-path)) + pos) + (when buf + (with-current-buffer buf + (ignore-errors + (save-restriction + (widen) + (goto-line lineno) + (setq pos (point)) + (if (overlayp overlay) + (move-overlay overlay pos pos buf) + (plist-put cursor :overlay + (setq overlay (make-overlay pos pos buf))) + (overlay-put overlay + 'before-string + (propertize "x" + 'display + (list + '(margin left-margin) + (propertize "=>" + 'face 'geben-cursor-arrow-face)))))) + (set-window-point (get-buffer-window buf) pos)))))))) + +(defun geben-session-cursor-file-visit-handler (session buf) + (let ((cursor (geben-session-cursor session)) + (fileuri (geben-session-source-fileuri session (buffer-file-name buf)))) + (and fileuri + (equal fileuri (car (plist-get cursor :position))) + (geben-session-cursor-overlay-update session)))) + +(add-hook 'geben-source-visit-hook #'geben-session-cursor-file-visit-handler) + + +;;============================================================== +;; breakpoints +;;============================================================== + +(defstruct (geben-breakpoint + (:constructor nil) + (:constructor geben-breakpoint-make)) + "Breakpoint setting. + +types: + Breakpoint types supported by the current debugger engine. + +list: + Break point list." + (types '(:line :call :return :exception :conditional)) + list) + +(defface geben-breakpoint-face + '((((class color)) + :foreground "white" + :background "red1") + (t :inverse-video t)) + "Face used to highlight various names. +This includes element and attribute names, processing +instruction targets and the CDATA keyword in a CDATA section. +This is not used directly, but only via inheritance by other faces." + :group 'geben-highlighting-faces) + +(defcustom geben-show-breakpoints-debugging-only t + "*Specify breakpoint markers visibility. +If the value is nil, GEBEN will always display breakpoint markers. +If non-nil, displays the markers while debugging but hides after +debugging is finished." + :group 'geben + :type 'boolean) + +;;-------------------------------------------------------------- +;; breakpoint object +;;-------------------------------------------------------------- + +;; breakpoint object manipulators + +(defun geben-bp-make (session type &rest params) + "Create a new line breakpoint object." + (assert (geben-session-p session)) + (let ((bp (append (list :type type) params))) + ;; force :lineno and :hit-value value to be integer. + (mapc (lambda (prop) + (when (stringp (plist-get bp prop)) + (plist-put bp prop (string-to-number (plist-get bp prop))))) + '(:lineno :hit-value)) + ;; setup overlay + (when (and (plist-get params :fileuri) + (plist-get params :lineno) + (not (plist-get params :overlay))) + (geben-bp-overlay-setup bp)) + ;; Xdebug issue; generate :class and :method name from :function + (let ((name (plist-get params :function))) + (and name + (geben-session-xdebug-p session) + (string-match "[:->]" name) + (plist-put bp :class (replace-regexp-in-string "^\\([^:-]+\\).*" "\\1" name)) + (plist-put bp :method (replace-regexp-in-string "^.*[:>]+" "" name)))) + ;; make sure bp has :state. + (unless (plist-get params :state) + (plist-put bp :state "enabled")) + bp)) + +(defsubst geben-bp-finalize (bp) + "Finalize a breakpoint object." + (let ((overlay (plist-get bp :overlay))) + (when (overlayp overlay) + (delete-overlay overlay))) + bp) + +(defsubst geben-bp= (lhs rhs) + "Return t if two breakpoint object point same thing." + (and (eq (plist-get lhs :type) + (plist-get rhs :type)) + (eq (plist-get lhs :lineno) + (plist-get rhs :lineno)) + (equal (plist-get lhs :fileuri) + (plist-get rhs :fileuri)) + (equal (plist-get lhs :function) + (plist-get rhs :function)) + (equal (plist-get lhs :exception) + (plist-get rhs :exception)) + (equal (plist-get lhs :expression) + (plist-get rhs :expression)))) + +;; session storage + +(defun geben-session-breakpoint-storage-add (session bp) + (let* ((storage (geben-session-storage session)) + (list (plist-get storage :bp))) + (unless (find bp list :test #'geben-bp=) + (let ((bp-copy (copy-sequence bp))) + (plist-put bp-copy :overlay nil) + (if list + (nconc list (list bp-copy)) + (plist-put storage :bp (list bp-copy))))))) + +(defun geben-session-breakpoint-storage-remove (session bp) + (let* ((storage (geben-session-storage session)) + (list (plist-get storage :bp))) + (when (find bp list :test #'geben-bp=) + (plist-put storage :bp (delete* bp list :test #'geben-bp=))))) + +(defun geben-session-breakpoint-storage-restore (session) + (let ((storage (geben-session-storage session)) + (breakpoint (geben-session-breakpoint session))) + (setf (geben-breakpoint-list breakpoint) + (plist-get storage :bp)))) + +;; session + +(defun geben-session-breakpoint-add (session bp) + "Add a breakpoint BP to session's breakpoint list." + (unless (geben-session-breakpoint-find session bp) + (let* ((breakpoint (geben-session-breakpoint session)) + (list (geben-breakpoint-list breakpoint))) + (if list + (nconc list (list bp)) + (setf (geben-breakpoint-list breakpoint) (list bp)))) + (geben-session-breakpoint-storage-add session bp))) + +(defun geben-session-breakpoint-remove (session id-or-obj) + "Remove breakpoints having specific breakpoint id or same meaning objects." + (setf (geben-breakpoint-list (geben-session-breakpoint session)) + (remove-if (if (stringp id-or-obj) + (lambda (bp) + (when (string= (plist-get bp :id) id-or-obj) + (geben-session-breakpoint-storage-remove session bp) + (geben-bp-finalize bp))) + (lambda (bp) + (when (geben-bp= id-or-obj bp) + (geben-session-breakpoint-storage-remove session bp) + (geben-bp-finalize bp)))) + (geben-breakpoint-list (geben-session-breakpoint session))))) + +(defun geben-session-breakpoint-find (session id-or-obj) + "Find a breakpoint. +id-or-obj should be either a breakpoint id or a breakpoint object." + (find-if + (if (stringp id-or-obj) + (lambda (bp) + (string= (plist-get bp :id) id-or-obj)) + (lambda (bp) + (geben-bp= id-or-obj bp))) + (geben-breakpoint-list (geben-session-breakpoint session)))) + +;; dbgp + +(defun geben-dbgp-breakpoint-restore (session) + "Restore breakpoints against new DBGp session." + (let ((breakpoints (geben-breakpoint-list (geben-session-breakpoint session))) + overlay) + (setf (geben-breakpoint-list (geben-session-breakpoint session)) nil) + (dolist (bp breakpoints) + ;; User may edit code since previous debugging session + ;; so that lineno breakpoints set before may moved. + ;; The followings try to adjust breakpoint line to + ;; nearly what user expect. + (if (and (setq overlay (plist-get bp :overlay)) + (overlayp overlay) + (overlay-livep overlay) + (eq (overlay-buffer overlay) + (find-buffer-visiting (or (plist-get bp :local-path) + "")))) + (with-current-buffer (overlay-buffer overlay) + (save-excursion + (plist-put bp :lineno (progn + (goto-char (overlay-start overlay)) + (geben-what-line)))))) + (geben-dbgp-sequence-bind (bp) + (geben-dbgp-command-breakpoint-set session bp) + (lambda (session cmd msg err) + (geben-bp-finalize bp)))))) + +(defun geben-breakpoint-remove (session bp-or-list) + "Remove specified breakpoints." + (dolist (bp (if (geben-breakpoint-p bp-or-list) + (list bp-or-list) + bp-or-list)) + (let ((bid (plist-get bp :id))) + (if (and (geben-session-active-p session) + bid) + (geben-dbgp-sequence-bind (bid) + (geben-dbgp-send-command session "breakpoint_remove" (cons "-d" bid)) + (lambda (session cmd msg err) + ;; remove a stray breakpoint from hash table. + (when err + (geben-session-breakpoint-remove session bid)))) + (setf (geben-breakpoint-list (geben-session-breakpoint session)) + (delete-if (lambda (bp1) + (geben-bp= bp bp1)) + (geben-breakpoint-list (geben-session-breakpoint session)))))))) + +(defun geben-breakpoint-clear (session) + "Clear all breakpoints." + (geben-breakpoint-remove session + (geben-breakpoint-list (geben-session-breakpoint session)))) + +(defun geben-breakpoint-find-at-pos (session buf pos) + (with-current-buffer buf + (remove-if 'null + (mapcar (lambda (overlay) + (let ((bp (overlay-get overlay 'bp))) + (and (eq :line (plist-get bp :type)) + bp))) + (overlays-at pos))))) + +;; breakpoint list + +(defface geben-breakpoint-fileuri + '((t (:inherit geben-backtrace-fileuri))) + "Face used to highlight fileuri in breakpoint list buffer." + :group 'geben-highlighting-faces) + +(defface geben-breakpoint-lineno + '((t (:inherit geben-backtrace-lineno))) + "Face for displaying line numbers in breakpoint list buffer." + :group 'geben-highlighting-faces) + +(defface geben-breakpoint-function + '((t (:inherit font-lock-function-name-face))) + "Face for displaying line numbers in breakpoint list buffer." + :group 'geben-highlighting-faces) + +(defun geben-breakpoint-sort-pred (a b) + (if (and (stringp (plist-get a :id)) + (equal (plist-get a :id) + (plist-get b :id))) + nil + (let ((type-rank '(:line 1 + :call 2 + :return 3 + :exception 4 + :conditional 5 + :watch 6)) + ax bx cmp) + (setq cmp (- (plist-get type-rank (plist-get a :type)) + (plist-get type-rank (plist-get b :type)))) + (if (not (zerop cmp)) + (< cmp 0) + (case (plist-get a :type) + (:line + (setq ax (plist-get a :fileuri)) + (setq bx (plist-get b :fileuri)) + (or (string< ax bx) + (and (string= ax bx) + (< (plist-get a :lineno) + (plist-get b :lineno))))) + (:call + (string< (plist-get a :function) + (plist-get b :function))) + (:return + (string< (plist-get a :function) + (plist-get b :function))) + (:exception + (string< (plist-get a :exception) + (plist-get b :exception))) + (:conditional + (or (string< (plist-get a :fileuri) + (plist-get b :fileuri)) + (progn + (setq ax (plist-get a :lineno) + bx (plist-get b :lineno)) + (if (null ax) + (not (null ax)) + (if (null ax) + nil + (< ax bx)))) + (string< (plist-get a :expression) + (plist-get b :expression)))) + (:watch + (string< (plist-get a :expression) + (plist-get b :expression)))))))) + +;;-------------------------------------------------------------- +;; breakpoint list mode +;;-------------------------------------------------------------- + +(defcustom geben-breakpoint-list-mode-hook nil + "*Hook running at when GEBEN's breakpoint list buffer is initialized." + :group 'geben + :type 'hook) + +(defvar geben-breakpoint-list-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [mouse-2] 'geben-breakpoint-list-mode-mouse-goto) + (define-key map "\C-m" 'geben-breakpoint-list-mode-goto) + (define-key map "d" 'geben-breakpoint-list-mark-delete) + (define-key map "u" 'geben-breakpoint-list-unmark) + (define-key map "x" 'geben-breakpoint-list-execute) + (define-key map "q" 'geben-quit-window) + (define-key map "r" 'geben-breakpoint-list-refresh) + (define-key map "p" 'previous-line) + (define-key map "n" 'next-line) + (define-key map "?" 'geben-breakpoint-list-mode-help) + map) + "Keymap for `geben-breakpoint-list-mode'") + +(defun geben-breakpoint-list-mode (session) + "Major mode for GEBEN's breakpoint list. +The buffer commands are: +\\{geben-breakpoint-list-mode-map}" + (unless (eq major-mode 'geben-breakpoint-list-mode) + (kill-all-local-variables) + (use-local-map geben-breakpoint-list-mode-map) + (setq major-mode 'geben-breakpoint-list-mode) + (setq mode-name "GEBEN breakpoints") + (set (make-local-variable 'revert-buffer-function) + (lambda (a b) nil)) + (and (fboundp 'font-lock-defontify) + (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)) + (setq buffer-read-only t) + (buffer-disable-undo) + (if (fboundp 'run-mode-hooks) + (run-mode-hooks 'geben-breakpoint-list-mode-hook) + (run-hooks 'geben-breakpoint-list-mode-hook))) + (set (make-local-variable 'geben-current-session) session)) + +(defun geben-breakpoint-list-mark-delete () + "Add deletion mark." + (interactive) + (when (eq major-mode 'geben-breakpoint-list-mode) + (let ((buffer-read-only nil)) + (beginning-of-line) + (delete-char 1) + (insert ?D) + (forward-line 1)))) + +(defun geben-breakpoint-list-unmark () + "Remove deletion mark." + (interactive) + (when (eq major-mode 'geben-breakpoint-list-mode) + (let ((buffer-read-only nil)) + (beginning-of-line) + (delete-char 1) + (insert " ") + (forward-line 1)))) + +(defun geben-breakpoint-list-execute () + "Execute breakpoint deletion." + (interactive) + (when (eq major-mode 'geben-breakpoint-list-mode) + (geben-with-current-session session + (let (candidates) + (save-excursion + (goto-char (point-min)) + (let ((buffer-read-only nil)) + (while (re-search-forward "^D" nil t) + (add-to-list 'candidates (get-text-property (point) 'geben-bp))))) + (geben-breakpoint-remove session candidates) + (when candidates + (geben-breakpoint-list-display session)))))) + +(defun geben-breakpoint-list-mode-goto (&optional event) + "Move to the set point of the selected breakpoint." + (interactive (list last-nonmenu-event)) + (when (eq major-mode 'geben-breakpoint-list-mode) + (geben-with-current-session session + (let ((bp + (if (or (null event) + (not (listp event))) + ;; Actually `event-end' works correctly with a nil argument as + ;; well, so we could dispense with this test, but let's not + ;; rely on this undocumented behavior. + (get-text-property (point) 'geben-bp) + (with-current-buffer (window-buffer (posn-window (event-end event))) + (save-excursion + (goto-char (posn-point (event-end event))) + (get-text-property (point) 'geben-bp))))) + same-window-buffer-names + same-window-regexps) + (let ((fileuri (plist-get bp :fileuri)) + (lineno (plist-get bp :lineno))) + (and fileuri lineno + (geben-session-cursor-update session fileuri lineno))))))) + +(defun geben-breakpoint-list-mode-help () + "Display description and key bindings of `geben-breakpoint-list-mode'." + (interactive) + (describe-function 'geben-breakpoint-list-mode)) + +(defun geben-breakpoint-list-refresh (&optional force) + "Display breakpoint list. +The breakpoint list buffer is under `geben-breakpoint-list-mode'. +Key mapping and other information is described its help page." + (interactive) + (geben-with-current-session session + (when (and (geben-session-active-p session) + (or force + (geben-session-buffer-visible-p session + geben-breakpoint-list-buffer-name))) + (geben-dbgp-sequence + (geben-dbgp-send-command session "breakpoint_list") + (lambda (session cmd msg err) + (geben-breakpoint-recreate session cmd msg err) + (geben-breakpoint-list-display session)))))) + +(defun geben-breakpoint-recreate (session cmd msg err) + "Create breakpoint objects according to the result of `breakpoint_list'." + (unless err + (dolist (msg-bp (xml-get-children msg 'breakpoint)) + (let* ((id (xml-get-attribute-or-nil msg-bp 'id)) + (bp (geben-session-breakpoint-find session id))) + (unless bp + (let* ((type (intern-soft (concat ":" (xml-get-attribute msg-bp 'type)))) + (fileuri (xml-get-attribute-or-nil msg-bp 'filename)) + (lineno (or (xml-get-attribute-or-nil msg-bp 'lineno) + (xml-get-attribute-or-nil msg-bp 'line))) + (function (xml-get-attribute-or-nil msg-bp 'function)) + (class (xml-get-attribute-or-nil msg-bp 'class)) + (method function) + (exception (xml-get-attribute-or-nil msg-bp 'exception)) + (expression (xml-get-attribute-or-nil msg-bp 'expression)) + (state (xml-get-attribute-or-nil msg-bp 'state)) + (local-path (and fileuri + (or (geben-session-source-local-path session fileuri) + (geben-source-local-path session fileuri))))) + (when (stringp lineno) + (setq lineno (string-to-number lineno)) + (when (floatp lineno) ;; debugger engine may return invalid number. + (setq lineno 1))) + (when class + (setq function (format "%s::%s" (or function "") class))) + (when expression + (setq expression (base64-decode-string expression))) + (geben-session-breakpoint-add + session + (setq bp (geben-bp-make session type + :id id + :fileuri fileuri + :lineno lineno + :class class + :method method + :function function + :exception exception + :expression expression + :state state + :local-path local-path))))) + (when bp + (plist-put bp :hit-count (string-to-number (xml-get-attribute msg-bp 'hit_count))) + (plist-put bp :hit-value (string-to-number (xml-get-attribute msg-bp 'hit_value)))))))) + +(defun geben-breakpoint-list-display (session) + (let ((buf (geben-session-buffer session geben-breakpoint-list-buffer-name)) + (breakpoints (geben-breakpoint-list (geben-session-breakpoint session))) + pos) + (with-current-buffer buf + (geben-breakpoint-list-mode session) + (let ((inhibit-read-only t)) + (erase-buffer) + (if (or (not (listp breakpoints)) + (zerop (length breakpoints))) + (insert "No breakpoints.\n") + (setq breakpoints (sort (copy-list breakpoints) + #'geben-breakpoint-sort-pred)) + (mapc (lambda (bp) + (insert " ") + (insert (format "%-11s" + (or (case (plist-get bp :type) + (:line "Line") + (:exception "Exception") + (:call "Call") + (:return "Return") + (:conditional "Conditional") + (:watch "Watch")) + "Unknown"))) + (if (geben-session-active-p session) + (insert (format "%2s/%-2s " + (or (plist-get bp :hit-count) "?") + (let ((hit-value (plist-get bp :hit-value))) + (cond + ((null hit-value) "?") + ((zerop hit-value) "*") + (t hit-value))))) + (insert " ")) + (when (plist-get bp :function) + (insert (propertize (plist-get bp :function) + 'face 'geben-breakpoint-function)) + (insert " ")) + (when (plist-get bp :exception) + (insert (propertize (plist-get bp :exception) + 'face 'geben-breakpoint-function)) + (insert " ")) + (when (plist-get bp :expression) + (insert (format "\"%s\" " (plist-get bp :expression)))) + (when (plist-get bp :fileuri) + (insert (format "%s:%s" + (propertize (plist-get bp :fileuri) + 'face 'geben-breakpoint-fileuri) + (propertize (format "%s" (or (plist-get bp :lineno) "*")) + 'face 'geben-breakpoint-lineno)))) + (insert "\n") + (put-text-property (save-excursion (forward-line -1) (point)) + (point) + 'geben-bp bp)) + breakpoints)) + (setq header-line-format + (concat " Type " + (if (geben-session-active-p session) "Hits " "") + "Property")) + (goto-char (point-min)))) + (save-selected-window + (geben-dbgp-display-window buf)))) + +;; overlay + +(defun geben-bp-overlay-setup (bp) + "Create an overlay for a breakpoint BP." + (geben-bp-finalize bp) + (let* ((local-path (plist-get bp :local-path)) + (overlay (and (stringp local-path) + (find-buffer-visiting local-path) + (geben-overlay-make-line (plist-get bp :lineno) + (find-buffer-visiting local-path))))) + (when overlay + (overlay-put overlay 'face 'geben-breakpoint-face) + (overlay-put overlay 'evaporate t) + (overlay-put overlay 'bp bp) + (overlay-put overlay 'modification-hooks '(geben-bp-overlay-modified)) + (overlay-put overlay 'insert-in-front-hooks '(geben-bp-overlay-inserted-in-front)) + (plist-put bp :overlay overlay))) + bp) + +(defun geben-bp-overlay-hide (session) + "Hide breakpoint overlays." + (mapc (lambda (bp) + (let ((overlay (plist-get bp :overlay))) + (and (overlayp overlay) + (overlay-livep overlay) + (overlay-put overlay 'face nil)))) + (geben-breakpoint-list (geben-session-breakpoint session)))) + +(defun geben-bp-overlay-modified (overlay afterp beg end &optional len) + "A callback function invoked when inside of an overlay is modified. +With this callback GEBEN tracks displacements of line breakpoints." + (when afterp + (save-excursion + (save-restriction + (widen) + (let* ((lineno-from (progn (goto-char (overlay-start overlay)) + (geben-what-line))) + (lineno-to (progn (goto-char (overlay-end overlay)) + (geben-what-line))) + (lineno lineno-from)) + (goto-line lineno) + (while (and (looking-at "[ \t]*$") + (< lineno lineno-to)) + (forward-line) + (incf lineno)) + (if (< lineno-from lineno) + (plist-put (overlay-get overlay 'bp) :lineno lineno)) + (goto-line lineno) + (beginning-of-line) + (move-overlay overlay (point) (save-excursion + (forward-line) + (point)))))))) + +(defun geben-bp-overlay-inserted-in-front (overlay afterp beg end &optional len) + "A callback function invoked when text in front of an overlay is modified. +With this callback GEBEN tracks displacements of line breakpoints." + (if afterp + (save-excursion + (goto-line (progn (goto-char (overlay-start overlay)) + (geben-what-line))) + (move-overlay overlay (point) (save-excursion + (forward-line) + (point)))))) + +(defun geben-bp-overlay-restore (session buf) + "A callback function invoked when emacs visits a new file. +GEBEN may place overlay markers if there are line breakpoints in +the file." + (mapc (lambda (bp) + (and (plist-get bp :lineno) + (eq buf (find-buffer-visiting (or (plist-get bp :local-path) + ""))) + (geben-bp-overlay-setup bp))) + (geben-breakpoint-list (geben-session-breakpoint session)))) + +(defun geben-session-breakpoint-init (session) + (setf (geben-session-breakpoint session) (geben-breakpoint-make)) + (geben-session-breakpoint-storage-restore session)) + +(add-hook 'geben-session-enter-hook #'geben-session-breakpoint-init) + +(defun geben-session-breakpoint-release (session) + (when geben-show-breakpoints-debugging-only + (geben-bp-overlay-hide session))) + +(add-hook 'geben-session-exit-hook #'geben-session-breakpoint-release) + +(defun geben-dbgp-breakpoint-store-types (session cmd msg err) + (when (equal "1" (xml-get-attribute msg 'supported)) + (let ((types (mapcar + (lambda (type) + (intern (concat ":" type))) + (split-string (or (car (xml-node-children msg)) + "") + " ")))) + (if (geben-session-xdebug-p session) + ;; Xdebug 2.0.3 supports the following types but they aren't + ;; included in the response. Push them in the list manually. + (setq types (append types '(:exception :conditional)))) + (unless types + ;; Some debugger engines are buggy; + ;; they don't return breakpoint types correctly. + ;; To them put all of types to the list. + (setq types '(:line :call :return :exception :conditional :watch))) + (setf (geben-breakpoint-types (geben-session-breakpoint session)) types)))) + +(add-hook 'geben-source-visit-hook #'geben-bp-overlay-restore) + +;;; breakpoint_set + +(defun geben-dbgp-command-breakpoint-set (session bp) + "Send \`breakpoint_set\' command." + (if (not (geben-session-active-p session)) + (geben-session-breakpoint-add session bp) + (let ((obp (geben-session-breakpoint-find session bp))) + (if (and obp + (plist-get obp :id)) + (geben-dbgp-send-command session "breakpoint_update" + (cons "-d" (plist-get obp :id)) + (cons "-h" (or (plist-get bp :hit-value) + 0)) + (cons "-o" ">=")) + (let ((params + (remove nil + (list + (cons "-t" + (substring (symbol-name (plist-get bp :type)) 1)) + (and (plist-get bp :fileuri) + (cons "-f" (plist-get bp :fileuri))) + (and (plist-get bp :lineno) + (cons "-n" (plist-get bp :lineno))) + (and (plist-get bp :class) + (geben-session-xdebug-p session) + (cons "-a" (plist-get bp :class))) + (and (plist-get bp :function) + (if (and (geben-session-xdebug-p session) + (plist-get bp :method)) + (cons "-m" (plist-get bp :method)) + (cons "-m" (plist-get bp :function)))) + (and (plist-get bp :exception) + (cons "-x" (plist-get bp :exception))) + (cons "-h" (or (plist-get bp :hit-value) 0)) + (cons "-o" ">=") + (cons "-s" (or (plist-get bp :state) + "enabled")) + (cons "-r" (if (plist-get bp :run-once) 1 0)) + (and (plist-get bp :expression) + (cons "--" + (base64-encode-string + (plist-get bp :expression)))))))) + (when params + (apply 'geben-dbgp-send-command session "breakpoint_set" params))))))) + +(defun geben-dbgp-response-breakpoint-set (session cmd msg) + "A response message handler for \`breakpoint_set\' command." + (unless (eq (geben-cmd-param-get cmd "-r") 1) ; unless :run-once is set + (let* ((type (intern (concat ":" (geben-cmd-param-get cmd "-t")))) + (id (xml-get-attribute-or-nil msg 'id)) + (fileuri (geben-cmd-param-get cmd "-f")) + (lineno (geben-cmd-param-get cmd "-n")) + (function (geben-cmd-param-get cmd "-m")) + (class (geben-cmd-param-get cmd "-a")) + (method function) + (exception (geben-cmd-param-get cmd "-x")) + (expression (geben-cmd-param-get cmd "--")) + (hit-value (geben-cmd-param-get cmd "-h")) + (state (geben-cmd-param-get cmd "-s")) + (local-path (and fileuri + (or (geben-session-source-local-path session fileuri) + (geben-source-local-path session fileuri)))) + bp) + (when expression + (setq expression (base64-decode-string expression))) + (geben-session-breakpoint-add session + (setq bp (geben-bp-make session type + :id id + :fileuri fileuri + :lineno lineno + :class class + :method method + :function function + :exception exception + :expression expression + :hit-value hit-value + :local-path local-path + :state state)))) + (geben-breakpoint-list-refresh))) + +(defun geben-dbgp-response-breakpoint-update (session cmd msg) + "A response message handler for `breakpoint_update' command." + (let* ((id (geben-cmd-param-get cmd "-d")) + (bp (geben-session-breakpoint-find session id))) + (when bp + (plist-put bp :hit-value (geben-cmd-param-get cmd "-h")) + (geben-breakpoint-list-refresh)))) + +;;; breakpoint_remove + +(defun geben-dbgp-command-breakpoint-remove (session bid) + "Send `breakpoint_remove' command." + (if (geben-session-active-p session) + (geben-dbgp-sequence-bind (bid) + (geben-dbgp-send-command session "breakpoint_remove" (cons "-d" bid)) + (lambda (session cmd msg err) + (when (dbgp-xml-get-error-message msg) + ;; remove a stray breakpoint from hash table. + (geben-session-breakpoint-remove session bid) + (geben-breakpoint-list-refresh)))) + (geben-session-breakpoint-remove session bid))) + +(defun geben-dbgp-response-breakpoint-remove (session cmd msg) + "A response message handler for \`breakpoint_remove\' command." + (let* ((id (geben-cmd-param-get cmd "-d")) + (bp (geben-session-breakpoint-find session id))) + (geben-session-breakpoint-remove session id) + (geben-breakpoint-list-refresh))) + +(defun geben-dbgp-command-breakpoint-list (session) + "Send `breakpoint_list' command." + (geben-dbgp-send-command session "breakpoint_list")) + +(defun geben-dbgp-response-breakpoint-list (session cmd msg) + "A response message handler for \`breakpoint_list\' command." + t) + +(defun geben-dbgp-breakpoint-list-refresh (session) + (geben-breakpoint-list-refresh)) + + + +;;============================================================== +;; context +;;============================================================== + +(defface geben-context-category-face + '((((class color)) + :background "purple" + :foreground "white" + :bold t)) + "Face used to highlight context category name." + :group 'geben-highlighting-faces) + +(defface geben-context-variable-face + '((t :inherit 'font-lock-variable-name-face)) + "Face used to highlight variable name." + :group 'geben-highlighting-faces) + +(defface geben-context-type-face + '((t :inherit 'font-lock-type-face)) + "Face used to highlight type name." + :group 'geben-highlighting-faces) + +(defface geben-context-class-face + '((t :inherit 'font-lock-constant-face)) + "Face used to highlight type name." + :group 'geben-highlighting-faces) + +(defface geben-context-string-face + '((t :inherit 'font-lock-string-face)) + "Face used to highlight string value." + :group 'geben-highlighting-faces) + +(defface geben-context-constant-face + '((t :inherit 'font-lock-constant-face)) + "Face used to highlight numeric value." + :group 'geben-highlighting-faces) + +(defstruct (geben-context + (:constructor nil) + (:constructor geben-context-make)) + names ; context names alist(KEY: context name, VALUE: context id) + tid ; transaction id to which the current context variables belong. + variables ; + expanded-variables ; context variables in expanded state. + (depth 0) + ) + +(defvar geben-context-where "") +(defvar geben-context-loading nil) +(defvar geben-context-property-tree-fill-children-hook 'geben-context-tree-children-fill) + +(defun geben-session-context-init (session) + (setf (geben-session-context session) (geben-context-make))) +(add-hook 'geben-session-enter-hook #'geben-session-context-init) + +;; context list buffer + +(defsubst geben-session-context-buffer (session) + (let ((buf (geben-session-buffer session geben-context-buffer-name))) + (with-current-buffer buf + (geben-context-mode session)) + buf)) + +(defsubst geben-session-context-buffer-get (session) + (geben-session-buffer-get session geben-context-buffer-name)) + +(defsubst geben-session-context-buffer-live-p (session) + (geben-session-buffer-live-p session geben-context-buffer-name)) + +(defsubst geben-session-context-buffer-visible-p (session) + (geben-session-buffer-visible-p session geben-context-buffer-name)) + +;; + +(defsubst geben-session-context-tid (session) + (geben-context-tid (geben-session-context session))) + +(defsubst geben-session-context-names (session) + (geben-context-names (geben-session-context session))) + +(defsubst geben-session-context-depth (session) + (geben-context-depth (geben-session-context session))) + +;; context list accessors + +(defsubst geben-session-context-list (session cid) + "Get context list for the context id CID." + (assq cid + (geben-context-variables + (geben-session-context session)))) + +(defsubst geben-session-context-list-old (session cid) + "Get previous context list for the context id CID." + (cdr (assq 'old (geben-session-context-list session cid)))) + +(defsubst geben-session-context-list-new (session cid) + "Get the current context list for the context id CID." + (cdr (assq 'new (geben-session-context-list session cid)))) + +(defsubst geben-session-context-list-update (session cid list) + "Update the current context list for the context id CID with LIST." + (let* ((clist (geben-session-context-list session cid)) + (old (assq 'new clist))) + (setcdr clist (list (cons 'old (cdr old)) + (cons 'new list))))) + +;; context property list accessors + +(defsubst geben-context-property-has-children (property) + "Check whether PROPERTY has any children." + (equal "1" (xml-get-attribute-or-nil property 'children))) + +(defsubst geben-context-property-format-bool (value) + "Format VALUE in the debuggee language expression." + (let ((bool (if (equal "0" value) nil t))) + (if bool "true" "false"))) + +(defsubst geben-context-property-format-array-name (property) + "Format array element name in the debuggee language expression." + (format "%s[%s]" + (propertize (xml-get-attribute property 'name) + 'face 'geben-context-variable-face) + (propertize (xml-get-attribute property 'numchildren) + 'face 'geben-context-constant-face))) + +(defsubst geben-context-property-attribute (property sym) + "Get attribute SYM from PROPERTY." + ;; DBGp specs specifies property attributes of context_get and + ;; property_get commands. But some debugger engines have values not + ;; as attributes but child elements." + (let ((node (car (xml-get-children property sym)))) + (if (consp node) + (geben-dbgp-decode-string (xml-node-children node) + (xml-get-attribute node 'encoding) + 'utf-8) + (xml-get-attribute property sym)))) + +(defsubst geben-context-property-name (property) + "Get name attribute value from PROPERTY." + (geben-context-property-attribute property 'name)) + +(defsubst geben-context-property-fullname (property) + "Get fullname attribute value from PROPERTY." + (geben-context-property-attribute property 'fullname)) + +(defsubst geben-context-property-value (property) + "Get value from PROPERTY." + (let ((node (car (xml-get-children property 'value)))) + (if (consp node) + (geben-dbgp-decode-string (xml-node-children node) + (xml-get-attribute node 'encoding) + 'utf-8) + (geben-dbgp-decode-string (xml-node-children property) + (xml-get-attribute property 'encoding) + 'utf-8)))) + +(defun geben-context-property-typeinfo (property) + "Get type information of PROPERTY to display it in the context buffer." + (let ((type (and (xml-get-attribute-or-nil property 'type) + (intern (xml-get-attribute-or-nil property 'type)))) + typeinfo) + (setq typeinfo + (cond + ((null type) nil) + ((member type '(int float)) + (list :type type + :type-visiblep nil + :value-face 'geben-context-constant-face)) + ((eq type 'bool) + (list :type type + :type-visiblep nil + :value-face 'geben-context-constant-face + :value-formatter 'geben-context-property-format-bool)) + ((eq type 'string) + (list :type type + :type-visiblep nil + :value-face 'geben-context-string-face)) + ((member type '(array hash)) + (list :type type + :type-visiblep nil + :name-formatter 'geben-context-property-format-array-name + :value-face 'default + :value-formatter (lambda (value) ""))) + ((eq type 'null) + (list :type type + :type-visiblep nil + :value-face 'geben-context-constant-face + :value-formatter (lambda (value) "null"))) + ((eq type 'resource) + (list :type type + :type-visiblep t + :value-face 'geben-context-constant-face)) + ((eq type 'object) + (list :type (if (xml-get-attribute-or-nil property 'classname) + (intern (xml-get-attribute-or-nil property 'classname)) + type) + :type-visiblep t + :type-face 'geben-context-class-face + :value-face 'default)) + ((eq type 'uninitialized) + (list :type 'undef + :type-visiblep t + :type-face 'geben-context-type-face + :value-face 'default)) + (t + (list :type type + :type-visiblep t + :type-face 'geben-context-type-face + :value-face 'default)))) + typeinfo)) + +;;-------------------------------------------------------------- +;; context property tree widget +;;-------------------------------------------------------------- + +(defun geben-context-property-tree-open (tree) + "Expand TREE." + (let ((marker (widget-get tree :from))) + (when (markerp marker) + (with-current-buffer (marker-buffer marker) + (goto-char marker) + (call-interactively 'widget-button-press) + (unless (widget-get tree :open) + (call-interactively 'widget-button-press)))))) + +(defun geben-context-property-tree-expand-p (tree) + "A tree widget callback function to indicate whether TREE is able to expand." + (or (geben-context-property-tree-has-complete-children tree) + (and (run-hook-with-args 'geben-context-property-tree-fill-children-hook + tree) + nil))) + +(defun geben-context-property-tree-expand (tree) + "A tree widget callback function to create child list of TREE." + (mapcar #'geben-context-property-tree-create-node + (xml-get-children (widget-get tree :property) 'property))) + +(defun geben-context-property-tree-has-complete-children (tree) + "Determine whether TREE has complete child nodes. +Child nodes can be short for :property property of TREE." + (let* ((property (widget-get tree :property)) + (children (xml-get-children property 'property)) + (numchildren (and children + (string-to-number (xml-get-attribute property 'numchildren))))) + (and children + (<= numchildren (length children))))) + +(defun geben-context-property-tree-create-node (property) + "Create nodes which represent PROPERTY." + (let* ((typeinfo (geben-context-property-typeinfo property)) + (value (geben-context-property-value property)) + tag) + (let ((formatter (plist-get typeinfo :name-formatter))) + (setq tag + (if formatter + (funcall formatter property) + (propertize (geben-context-property-name property) + 'face 'geben-context-variable-face)))) + (when (plist-get typeinfo :type-visiblep) + (setq tag (concat tag + (format "(%s)" (propertize + (symbol-name (plist-get typeinfo :type)) + 'face (plist-get typeinfo :type-face)))))) + (let ((formatter (plist-get typeinfo :value-formatter))) + (when (or value formatter) + (setq tag (format "%-32s %s" tag + (propertize (if formatter + (funcall formatter value) + value) + 'face (plist-get typeinfo :value-face)))))) + (if (geben-context-property-has-children property) + (list 'tree-widget + :tag tag + :property property + :expander 'geben-context-property-tree-expand + :expander-p 'geben-context-property-tree-expand-p) + (list 'item :tag (concat " " tag))))) + +(defun geben-context-property-tree-context-id (tree) + "Get context id to which TREE belongs." + (when tree + (let ((cid (widget-get tree :context-id))) + (or cid + (geben-context-property-tree-context-id (widget-get tree :parent)))))) + +;;-------------------------------------------------------------- +;; context functions +;;-------------------------------------------------------------- + +(defun geben-context-list-fetch (session callback) + "Fetch context variables for a SESSION from debuggee server. +After fetching it calls CALLBACK function." + (let ((context (geben-session-context session))) + (when (geben-context-names context) + (unless (geben-context-variables context) + (setf (geben-context-variables context) + (mapcar (lambda (context) + (list (cdr context))) + (geben-context-names context)))) + ;; Remain the current tid. + ;; It is possible that the current context proceeds by step_in or + ;; other continuous commands while retrieving variables. + ;; To avoid mixing variables with multi context, remain something at here, + ;; tid, and check the value in the retrieving process. + (setf (geben-context-tid context) (geben-session-tid session)) + (geben-context-list-fetch-loop session + (geben-context-tid context) + (geben-context-depth context) + (mapcar (lambda (context) + (cdr context)) + (geben-context-names context)) + callback)))) + +(defun geben-context-list-fetch-loop (session tid-save depth context-id-list callback) + (let ((buf (geben-session-context-buffer-get session))) + (when buf + (with-current-buffer buf + (setq geben-context-loading t)) + (geben-dbgp-sequence-bind (tid-save depth context-id-list callback) + (geben-dbgp-command-context-get session (car context-id-list) depth) + (lambda (session cmd msg err) + (when (and (not err) + (eq tid-save (geben-session-context-tid session)) + (geben-session-context-buffer-live-p session)) + (geben-session-context-list-update session + (geben-cmd-param-get cmd "-c") + (xml-get-children msg 'property)) + (if (cdr context-id-list) + (geben-context-list-fetch-loop session tid-save depth + (cdr context-id-list) callback) + (geben-context-fill-buffer session) + (with-current-buffer (geben-session-context-buffer-get session) + (setq geben-context-loading nil)) + (funcall callback session)))))))) + +(defun geben-context-fill-buffer (session) + "Fill the context buffer with locally stored context list." + (let ((buf (geben-session-context-buffer-get session))) + (when buf + (with-current-buffer buf + (let ((inhibit-read-only t) + (inhibit-modification-hooks t)) + (widen) + (erase-buffer) + (dolist (context-name (geben-session-context-names session)) + (let ((new (geben-session-context-list-new session (cdr context-name)))) + (apply 'widget-create + 'tree-widget + :tag (car context-name) + :context-id (cdr context-name) + :open t + (mapcar #'geben-context-property-tree-create-node new)))) + (widget-setup)) + (goto-char (point-min)))))) + +(defun geben-context-tree-children-fill (tree &optional tid-save) + (geben-with-current-session session + (let ((tid-save (or tid-save + (geben-session-context-tid session))) + (completed (geben-context-property-tree-has-complete-children tree)) + (buf (geben-session-context-buffer-get session))) + (when (and (buffer-live-p buf) + (eq tid-save (geben-session-context-tid session))) + (with-current-buffer buf + (setq geben-context-loading (not completed))) + (if completed + (geben-context-property-tree-open tree) + (geben-context-tree-children-fill-1 session tree tid-save)))))) + +(defun geben-context-tree-children-fill-1 (session tree tid-save) + (let* ((property (widget-get tree :property)) + (children (xml-get-children property 'property))) + (with-current-buffer (geben-session-context-buffer-get session) + ;; -- comment on :property-page property -- + ;; debugger engine may lack of PAGESIZE in property message(bug). + ;; so the following code doesn't rely on PAGESIZE but uses own + ;; :property-page widget property. + (let* ((nextpage (if (widget-get tree :property-page) + (1+ (widget-get tree :property-page)) + (if children 1 0))) + (args (list :depth (geben-session-context-depth session) + :context-id (geben-context-property-tree-context-id tree) + :name (geben-context-property-fullname property) + :page nextpage))) + (widget-put tree :property-page nextpage) + (when (xml-get-attribute-or-nil property 'key) + (plist-put args :key (xml-get-attribute-or-nil property 'key))) + (geben-dbgp-sequence-bind (tree tid-save) + (geben-dbgp-command-property-get session args) + (lambda (session cmd msg err) + (unless err + (geben-context-tree-children-append session + tid-save + tree + (car (xml-get-children msg 'property))) + (geben-context-tree-children-fill tree + tid-save)))))))) + +(defun geben-context-tree-children-append (session tid-save tree property) + (if (eq tid-save (geben-session-context-tid session)) + (let ((tree-prop (widget-get tree :property))) + (nconc (or (cddr tree-prop) + tree-prop) + (cddr property))))) + +(defun geben-context-list-refresh (session depth &optional force) + (when (and (geben-session-active-p session) + (or force + (geben-session-context-buffer-visible-p session))) + (geben-context-list-display session depth (not force)))) + +(defun geben-context-list-display (session depth &optional no-select) + "Display context variables in the context buffer." + (unless (geben-session-active-p session) + (error "GEBEN is out of debugging session.")) + (when (or (< depth 0) + (< (length (geben-session-stack session)) (1+ depth))) + (error "GEBEN context display: invalid depth: %S" depth)) + (setf (geben-context-depth (geben-session-context session)) depth) + (let ((buf (geben-session-context-buffer session))) + (with-current-buffer buf + (setq geben-context-where + (xml-get-attribute (nth depth (geben-session-stack session)) + 'where))) + (unless no-select + (geben-dbgp-display-window buf)) + (geben-context-list-fetch session + (geben-lexical-bind (buf no-select) + (lambda (session) + (and (buffer-live-p buf) + (not no-select) + (geben-dbgp-display-window buf))))))) + +;;-------------------------------------------------------------- +;; context mode +;;-------------------------------------------------------------- + +(defcustom geben-context-mode-hook nil + "*Hook running at when GEBEN's context buffer is initialized." + :group 'geben + :type 'hook) + +(defvar geben-context-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\t" 'widget-forward) + (define-key map "S-\t" 'widget-backward) + ;;(define-key map "\C-m" 'geben-context-mode-expand) + ;;(define-key map "e" 'geben-context-mode-edit) + (define-key map "r" 'geben-context-mode-refresh) + (define-key map "q" 'geben-quit-window) + (define-key map "p" 'widget-backward) + (define-key map "n" 'widget-forward) + (define-key map "?" 'geben-context-mode-help) + map) + "Keymap for `geben-context-mode'") + +(defun geben-context-mode (session) + "Major mode for GEBEN's context output. +The buffer commands are: +\\{geben-context-mode-map}" + (interactive) + (unless (eq major-mode 'geben-context-mode) + (kill-all-local-variables) + (use-local-map geben-context-mode-map) + (setq major-mode 'geben-context-mode) + (setq mode-name "GEBEN context") + (set (make-local-variable 'revert-buffer-function) + (lambda (a b) nil)) + (and (fboundp 'font-lock-defontify) + (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)) + (if (fboundp 'run-mode-hooks) + (run-mode-hooks 'geben-context-mode-hook) + (run-hooks 'geben-context-mode-hook)) + (buffer-disable-undo) + (set (make-local-variable 'geben-context-where) "") + (set (make-local-variable 'geben-context-loading) nil) + (set (make-local-variable 'tree-widget-theme) "geben") + (setq header-line-format + (list + "Where: " + 'geben-context-where + " " + '(geben-context-loading "(loading...)") + )) + (setq buffer-read-only t)) + (set (make-local-variable 'geben-current-session) session)) + +(defun geben-context-mode-refresh (&optional force) + "Refresh the context buffer." + (interactive) + (geben-with-current-session session + (geben-context-list-refresh session + (geben-session-context-depth session) + force))) + +(defun geben-context-mode-help () + "Display description and key bindings of `geben-context-mode'." + (interactive) + (describe-function 'geben-context-mode)) + +;; context + +(defun geben-dbgp-command-context-names (session &optional depth) + (geben-dbgp-send-command session "context_names" + (and (numberp depth) + (cons "-d" depth)))) + +(defun geben-dbgp-response-context-names (session cmd msg) + (setf (geben-context-names (geben-session-context session)) + (mapcar (lambda (context) + (let ((name (xml-get-attribute context 'name)) + (id (xml-get-attribute context 'id))) + (cons name (string-to-number id)))) + (xml-get-children msg 'context)))) + +;; context + +(defun geben-dbgp-command-context-get (session context-id &optional depth) + (geben-dbgp-send-command session "context_get" + (cons "-c" context-id) + (and depth + (cons "-d" depth)))) + +;; property + +(defun geben-dbgp-command-property-get (session &rest args) + (apply 'geben-dbgp-send-command session "property_get" + (mapcar (lambda (key) + (let ((arg (plist-get (car args) key))) + (when arg + (cons (geben-cmd-param-for key) arg)))) + '(:depth :context-id :name :max-data-size :type :page :key :address)))) + + +;;============================================================== +;; stack +;;============================================================== + +;; backtrace + +(defface geben-backtrace-fileuri + '((((class color)) + (:foreground "green" :weight bold)) + (t (:weight bold))) + "Face used to highlight fileuri in backtrace buffer." + :group 'geben-highlighting-faces) + +(defface geben-backtrace-lineno + '((t :inherit font-lock-variable-name-face)) + "Face for displaying line numbers in backtrace buffer." + :group 'geben-highlighting-faces) + +(defcustom geben-backtrace-mode-hook nil + "*Hook running at when GEBEN's backtrace buffer is initialized." + :group 'geben + :type 'hook) + +(defun geben-backtrace-buffer (session) + (let ((buf (get-buffer-create (geben-session-buffer session geben-backtrace-buffer-name)))) + (with-current-buffer buf + (geben-backtrace-mode session)) + buf)) + +(defun geben-backtrace (session) + "Display backtrace." + (unless (geben-session-active-p session) + (error "GEBEN is out of debugging session.")) + (with-current-buffer (geben-backtrace-buffer session) + (let ((inhibit-read-only t) + (stack (geben-session-stack session))) + (erase-buffer) + (dotimes (i (length stack)) + (let* ((stack (nth i stack)) + (fileuri (geben-source-fileuri-regularize (xml-get-attribute stack 'filename))) + (lineno (xml-get-attribute stack 'lineno)) + (where (xml-get-attribute stack 'where)) + (level (xml-get-attribute stack 'level))) + (insert (format "%s:%s %s\n" + (propertize fileuri 'face "geben-backtrace-fileuri") + (propertize lineno 'face "geben-backtrace-lineno") + where)) + (put-text-property (save-excursion (forward-line -1) (point)) + (point) + 'geben-stack-frame + (list :fileuri fileuri + :lineno lineno + :level (string-to-number level))))) + (goto-char (point-min))) + (geben-dbgp-display-window (geben-backtrace-buffer session)))) + +(defvar geben-backtrace-mode-map nil + "Keymap for `geben-backtrace-mode'") +(unless geben-backtrace-mode-map + (setq geben-backtrace-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [mouse-2] 'geben-backtrace-mode-mouse-goto) + (define-key map "\C-m" 'geben-backtrace-mode-goto) + (define-key map "q" 'geben-quit-window) + (define-key map "p" 'previous-line) + (define-key map "n" 'next-line) + (define-key map "v" 'geben-backtrace-mode-context) + (define-key map "?" 'geben-backtrace-mode-help) + map))) + +(defun geben-backtrace-mode (session) + "Major mode for GEBEN's backtrace output. +The buffer commands are: +\\{geben-backtrace-mode-map}" + (interactive) + (unless (eq 'geben-backtrace-mode major-mode) + (kill-all-local-variables) + (use-local-map geben-backtrace-mode-map) + (setq major-mode 'geben-backtrace-mode) + (setq mode-name "GEBEN backtrace") + (set (make-local-variable 'revert-buffer-function) + (lambda (a b) nil)) + (and (fboundp 'font-lock-defontify) + (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)) + (setq buffer-read-only t) + (buffer-disable-undo) + (if (fboundp 'run-mode-hooks) + (run-mode-hooks 'geben-backtrace-mode-hook) + (run-hooks 'geben-backtrace-mode-hook))) + (set (make-local-variable 'geben-current-session) session)) + +(defalias 'geben-backtrace-mode-mouse-goto 'geben-backtrace-mode-goto) +(defun geben-backtrace-mode-goto (&optional event) + (interactive (list last-nonmenu-event)) + (geben-with-current-session session + (let ((stack-frame + (if (or (null event) + (not (listp event))) + ;; Actually `event-end' works correctly with a nil argument as + ;; well, so we could dispense with this test, but let's not + ;; rely on this undocumented behavior. + (get-text-property (point) 'geben-stack-frame) + (with-current-buffer (window-buffer (posn-window (event-end event))) + (save-excursion + (goto-char (posn-point (event-end event))) + (get-text-property (point) 'geben-stack-frame))))) + same-window-buffer-names + same-window-regexps) + (when stack-frame + (geben-session-cursor-update session + (plist-get stack-frame :fileuri) + (plist-get stack-frame :lineno)))))) + +(defun geben-backtrace-mode-help () + "Display description and key bindings of `geben-backtrace-mode'." + (interactive) + (describe-function 'geben-backtrace-mode)) + +(defvar geben-dbgp-stack-update-hook nil) + +(defun geben-backtrace-mode-context () + (interactive) + (geben-with-current-session session + (let ((stack (get-text-property (point) 'geben-stack-frame))) + (when stack + (run-hook-with-args 'geben-dbgp-stack-update-hook + session (plist-get stack :level)))))) + +;;; stack_get + +(defun geben-dbgp-command-stack-get (session) + "Send \`stack_get\' command." + (geben-dbgp-send-command session "stack_get")) + +(defun geben-dbgp-stack-update (session) + (geben-dbgp-sequence + (geben-dbgp-command-stack-get session) + (lambda (session cmd msg err) + (unless err + (setf (geben-session-stack session) (xml-get-children msg 'stack)) + (let* ((stack (car (xml-get-children msg 'stack))) + (fileuri (xml-get-attribute-or-nil stack 'filename)) + (lineno (xml-get-attribute-or-nil stack 'lineno))) + (and fileuri lineno + (geben-session-cursor-update session fileuri lineno))) + (run-hook-with-args 'geben-dbgp-stack-update-hook + session 0))))) + + +;;============================================================== +;; redirect +;;============================================================== + +(defconst geben-redirect-combine-buffer-name "*GEBEN<%s> output*" + "Name for the debuggee script's STDOUT and STDERR redirection buffer.") +(defconst geben-redirect-stdout-buffer-name "*GEBEN<%s> stdout*" + "Name for the debuggee script's STDOUT redirection buffer.") +(defconst geben-redirect-stderr-buffer-name "*GEBEN<%s> stderr*" + "Name for the debuggee script's STDERR redirection buffer.") + +(defstruct (geben-redirect + (:constructor nil) + (:constructor geben-redirect-make)) + (stdout :redirect) + (stderr :redirect) + (combine t) + (coding-system 'utf-8)) + +(defcustom geben-dbgp-redirect-buffer-init-hook nil + "*Hook running at when a redirection buffer is created." + :group 'geben + :type 'hook) + +(defun geben-session-redirect-init (session) + (setf (geben-session-redirect session) (geben-redirect-make)) + (dolist (type '(:stdout :stderr)) + (let ((buf (get-buffer (geben-session-redirect-buffer-name session type)))) + (when (buffer-live-p buf) + (with-current-buffer buf + (let ((inhibit-read-only t) + (inhibit-modification-hooks t)) + (erase-buffer))))))) + +(add-hook 'geben-session-enter-hook #'geben-session-redirect-init) + +(defun geben-session-redirect-buffer (session type) + (let ((bufname (geben-session-redirect-buffer-name session type))) + (when bufname + (or (get-buffer bufname) + (with-current-buffer (get-buffer-create bufname) + (unless (local-variable-p 'geben-dynamic-property-buffer-p) + (set (make-local-variable 'geben-dynamic-property-buffer-p) t) + (setq buffer-undo-list t) + (run-hook-with-args 'geben-dbgp-redirect-buffer-init-hook (current-buffer))) + (current-buffer)))))) + +(defun geben-session-redirect-buffer-name (session type) + "Select buffer name for a redirection type." + (let ((redirect (geben-session-redirect session))) + (when (or (and (eq type :stdout) + (geben-redirect-stdout redirect)) + (and (eq type :stderr) + (geben-redirect-stderr redirect))) + (geben-session-buffer-name session + (cond + ((geben-redirect-combine redirect) + geben-redirect-combine-buffer-name) + ((eq :stdout type) + geben-redirect-stdout-buffer-name) + (t + geben-redirect-stderr-buffer-name)))))) + +(defun geben-session-redirect-buffer-existp (session) + "Check whether any redirection buffer exists." + (let (name) + (or (and (setq name (geben-session-redirect-buffer-name session :stdout)) + (get-buffer name)) + (and (setq name (geben-session-redirect-buffer-name session :stderr)) + (get-buffer name))))) + +(defun geben-dbgp-redirect-init (session) + "Initialize redirection related variables." + (let ((stdout (geben-redirect-stdout (geben-session-redirect session))) + (stderr (geben-redirect-stderr (geben-session-redirect session)))) + (when stdout + (geben-dbgp-command-stdout session stdout)) + (when stderr + (geben-dbgp-command-stderr session stderr)))) + +(defun geben-dbgp-handle-stream (session msg) + "Handle a stream message." + (let ((type (case (intern-soft (xml-get-attribute msg 'type)) + ('stdout :stdout) + ('stderr :stderr))) + (encoding (xml-get-attribute msg 'encoding)) + (content (car (last msg)))) + (geben-dbgp-redirect-stream session type encoding content))) + +(defun geben-dbgp-redirect-stream (session type encoding content) + "Print redirected string to specific buffers." + (let ((buf (geben-session-redirect-buffer session type)) + save-pos) + (when buf + (with-current-buffer buf + (setq save-pos (unless (eobp) (point))) + (save-excursion + (goto-char (point-max)) + (insert (decode-coding-string + (if (string= "base64" encoding) + (base64-decode-string content) + content) + (geben-redirect-coding-system (geben-session-redirect session))))) + (goto-char (or save-pos + (point-max)))) + (geben-dbgp-display-window buf)))) + +(defun geben-dbgp-command-stdout (session mode) + "Send `stdout' command." + (let ((m (plist-get '(nil 0 :disable 0 :redirect 1 :intercept 2) mode))) + (when (and m) + (geben-dbgp-send-command session "stdout" (cons "-c" m))))) + +(defun geben-dbgp-response-stdout (session cmd msg) + "A response message handler for `stdout' command." + (setf (geben-redirect-stdout (geben-session-redirect session)) + (case (geben-cmd-param-get cmd "-c") + (0 nil) + (1 :redirect) + (2 :intercept)))) + +(defun geben-dbgp-command-stderr (session mode) + "Send `stderr' command." + (let ((m (plist-get '(nil 0 :disable 0 :redirect 1 :intercept 2) mode))) + (when (and m) + (geben-dbgp-send-command session "stderr" (cons "-c" m))))) + +(defun geben-dbgp-response-stderr (session cmd msg) + "A response message handler for `stderr' command." + (setf (geben-redirect-stderr (geben-session-redirect session)) + (case (geben-cmd-param-get cmd "-c") + (0 nil) + (1 :redirect) + (2 :intercept)))) + + +;;============================================================== +;; DBGp starter +;;============================================================== + +(defun geben-dbgp-start (port) + "Create DBGp listeners at each CONNECTION-POINTS." + (condition-case error-sexp + (let* ((result (dbgp-exec port + :session-accept 'geben-dbgp-session-accept-p + :session-init 'geben-dbgp-session-init + :session-filter 'geben-dbgp-session-filter + :session-sentinel 'geben-dbgp-session-sentinel)) + (listener (and (consp result) + (car result)))) + (when (processp listener) + (message "Waiting for debug server to connect at port %s." port))) + (error + (beep) + (read-char (format "[port %s] %s" port (second error-sexp)) + nil 3)))) + +(defun geben-dbgp-start-proxy (ip-or-addr port idekey ;;multi-session-p + session-port) + "Create DBGp listeners at each CONNECTION-POINTS." + (condition-case error-sexp + (let* ((result + (dbgp-proxy-register-exec ip-or-addr port idekey nil ;; multi-session-p + session-port + :session-accept 'geben-dbgp-session-accept-p + :session-init 'geben-dbgp-session-init + :session-filter 'geben-dbgp-session-filter + :session-sentinel 'geben-dbgp-session-sentinel)) + (listener (and (consp result) + (car result)))) + (when (processp listener) + (message "Waiting for debug server to connect."))) + (error + (beep) + (read-char (format "[proxy %s:%s-%s] %s" + ip-or-addr port idekey (second error-sexp)) + nil 3)))) + +(defun geben-dbgp-session-accept-p (proc) + "Judge whether the SESSION is to be processed or to be terminated." + ;; accept the new session if: + ;; a. capable for multi sessions. + ;; b. not used yet; it's the first session for the connection-point. + (let ((accept-p + (if (dbgp-proxy-p proc) + (let ((proxy (dbgp-plist-get proc :proxy))) + (or (plist-get proxy :multi-session) + (not (some (lambda (session) + (eq proxy (dbgp-plist-get proc :proxy))) + geben-sessions)))) + (let ((port (dbgp-port-get (dbgp-listener-get proc)))) + (not (some (lambda (session) + (let ((oproc (geben-session-process session))) + (and oproc + (not (dbgp-proxy-p oproc)) + (eq port (dbgp-port-get (dbgp-listener-get oproc)))))) + geben-sessions)))))) + (unless accept-p + (message "GEBEN: Rejected new connection from %s (Already in debugging)" + (car (process-contact proc)))) + accept-p)) + +(defun geben-dbgp-session-init (proc) + "Initialize SESSION environment." + (let ((session (geben-session-make :process proc))) + (push session geben-sessions) + (dbgp-plist-put proc :session session) + (with-current-buffer (process-buffer proc) + (set (make-local-variable 'geben-current-session) session) + (rename-buffer (geben-session-buffer-name session geben-process-buffer-name) t)))) + +(defun geben-dbgp-session-filter (proc string) + "Process DBGp response STRING. +Parse STRING, find xml chunks, convert them to xmlized lisp objects +and call `geben-dbgp-entry' with each chunk." + (let ((session (dbgp-plist-get proc :session)) + xml output) + (with-temp-buffer + (insert string) + (setq output + (or (ignore-errors + (setq xml (xml-parse-region (point-min) (point-max))) + (goto-char (point-min)) + (when (re-search-forward "\\?>" nil t) + (delete-region (match-end 0) (point-max)) + (insert "\n") + (xml-print xml) + (propertize (buffer-string) + 'front-sticky t + 'font-lock-face 'dbgp-response-face))) + string))) + (when xml + (condition-case error-sexp + (geben-dbgp-entry session (car xml)) + (error + (warn "GEBEN internal error: %S" error-sexp)))) + output)) + +(defun geben-dbgp-session-sentinel (proc string) + (when (buffer-live-p (process-buffer proc)) + (dbgp-session-echo-input proc "\nDisconnected.\n\n")) + (let ((session (dbgp-plist-get proc :session))) + (when session + (ignore-errors + (geben-session-release session)) + (accept-process-output) + (setq geben-sessions (remq session geben-sessions))))) + +(add-hook 'kill-emacs-hook (lambda () + (dolist (session geben-sessions) + (ignore-errors + (geben-session-release session))))) + + +;;============================================================== +;; DBGp connected session initialization +;;============================================================== + +(defun geben-dbgp-init-fetch-entry-source (session) + "Fetch the content of the entry source file." + (let ((fileuri (xml-get-attribute-or-nil (geben-session-initmsg session) 'fileuri))) + (when fileuri + (geben-dbgp-command-source session fileuri)))) + +(defun geben-dbgp-first-continuous-command (session) + "" + (geben-dbgp-sequence + (geben-dbgp-send-command session "status") + (lambda (session cmd msg err) + (unless err + (if (not geben-pause-at-entry-line) + (geben-dbgp-command-run session) + (if (and (equal "break" (xml-get-attribute msg 'status)) + (not (member (geben-session-language session) '(:perl)))) + ;; it is nonconforming to DBGp specs; anyway manage it. + (run-hook-with-args 'geben-dbgp-continuous-command-hook session) + (geben-dbgp-command-step-into session))))))) + +;; features + +(defcustom geben-dbgp-feature-list + '((:set max_data 32768) + (:set max_depth 1) + (:set max_children 32) + (:get breakpoint_types geben-dbgp-breakpoint-store-types)) + "*Specifies set of feature variables for each new debugging session. +Each entry forms a list (METHOD FEATURE_NAME VALUE_OR_CALLBACK). +METHOD is either `:get' or `:set'. +FEATURE_NAME is a feature name described in DBGp specification. +VALUE_OR_CALLBACK is, if the METHOD is `:get' then it should +be symbol of a callback function will be invoked 3 arguments +\(CMD MSG ERR), which are results of feature_get DBGp command. +If the method is `:set' VALUE_OR_CALLBACK can be either a value +or a symbol of a function. In the latter case the result value +of the function is passed to feature_set DBGp command." + :group 'geben + :type '(repeat (list (radio (const :get) + (const :set)) + (radio (const :help-echo ":get" :tag "language_supports_threads (:get)" language_supports_threads) + (const :tag "language_name (:get)" language_name) + (const :tag "encoding (:get)" encoding) + (const :tag "protocol_version (:get)" protocol_version) + (const :tag "supports_async (:get)" supports_async) + (const :tag "data_encoding (:get)" data_encoding) + (const :tag "breakpoint_languages (:get)" breakpoint_languages) + (const :tag "breakpoint_types (:get)" breakpoint_types) + (const :tag "multiple_sessions (:get :set)" multiple_sessions) + (const :tag "encoding (:get :set)" encoding) + (const :tag "max_children (:get :set)" max_children) + (const :tag "max_data (:get :set)" max_data) + (const :tag "max_depth (:get :set)" max_depth) + (const :tag "supports_postmortem (:get)" supports_postmortem) + (const :tag "show_hidden (:get :set)" show_hidden) + (const :tag "notify_ok (:get :set)" notify_ok)) + sexp))) + +(defun geben-dbgp-feature-init (session) + "Configure debugger engine with value of `geben-dbgp-feature-list'." + (let ((features (or (geben-session-feature session) + geben-dbgp-feature-list))) + (dolist (entry features) + (let ((method (car entry)) + (name (symbol-name (nth 1 entry))) + (param (nth 2 entry))) + (case method + (:set + (let ((value (cond + ((null param) nil) + ((symbolp param) + (if (fboundp param) + (funcall param) + (if (boundp param) + (symbol-value param) + (symbol-name param)))) + (t param)))) + (geben-dbgp-command-feature-set session name value))) + (:get + (condition-case error-sexp + (if (and (symbolp param) + (fboundp param)) + (geben-dbgp-sequence + (geben-dbgp-command-feature-get session name) + param)) + (error + (warn "`geben-dbgp-feature-alist' has invalid entry: %S" entry))))))))) + +;; feature + +(defun geben-dbgp-command-feature-get (session feature) + "Send \`feature_get\' command." + (geben-dbgp-send-command session "feature_get" (cons "-n" feature))) + +(defun geben-dbgp-command-feature-set (session feature value) + "Send \`feature_get\' command." + (geben-dbgp-send-command session "feature_set" + (cons "-n" feature) + (cons "-v" (format "%S" (eval value))))) + +;(add-hook 'geben-dbgp-init-hook #'geben-dbgp-init-fetch-entry-source t) +(add-hook 'geben-dbgp-init-hook #'geben-dbgp-feature-init t) +(add-hook 'geben-dbgp-init-hook #'geben-dbgp-redirect-init t) +(add-hook 'geben-dbgp-init-hook #'geben-dbgp-command-context-names t) +(add-hook 'geben-dbgp-init-hook #'geben-dbgp-breakpoint-restore t) +(add-hook 'geben-dbgp-init-hook #'geben-dbgp-first-continuous-command t) + +(add-hook 'geben-dbgp-continuous-command-hook #'geben-dbgp-stack-update) +(add-hook 'geben-dbgp-continuous-command-hook #'geben-dbgp-breakpoint-list-refresh) +(add-hook 'geben-dbgp-stack-update-hook #'geben-context-list-refresh) + + +;;============================================================== +;; geben-mode +;;============================================================== + +(defcustom geben-query-on-clear-breakpoints t + "*Specify if query is needed before removing all breakpoints. +If non-nil, GEBEN will query the user before removing all breakpoints." + :group 'geben + :type 'boolean) + +(defvar geben-mode-map nil) +(unless geben-mode-map + (setq geben-mode-map (make-sparse-keymap "geben")) + ;; control + (define-key geben-mode-map " " 'geben-step-again) + (define-key geben-mode-map "g" 'geben-run) + ;;(define-key geben-mode-map "G" 'geben-Go-nonstop-mode) + (define-key geben-mode-map ">" 'geben-set-redirect) + ;;(define-key geben-mode-map "T" 'geben-Trace-fast-mode) + (define-key geben-mode-map "c" 'geben-run-to-cursor) + ;;(define-key geben-mode-map "C" 'geben-Continue-fast-mode) + + ;;(define-key geben-mode-map "f" 'geben-forward) not implemented + ;;(define-key geben-mode-map "f" 'geben-forward-sexp) + ;;(define-key geben-mode-map "h" 'geben-goto-here) + + ;;(define-key geben-mode-map "I" 'geben-instrument-callee) + (define-key geben-mode-map "i" 'geben-step-into) + (define-key geben-mode-map "o" 'geben-step-over) + (define-key geben-mode-map "r" 'geben-step-out) + + ;; quitting and stopping + (define-key geben-mode-map "q" 'geben-stop) + ;;(define-key geben-mode-map "Q" 'geben-top-level-nonstop) + ;;(define-key geben-mode-map "a" 'abort-recursive-edit) + (define-key geben-mode-map "v" 'geben-display-context) + + ;; breakpoints + (define-key geben-mode-map "b" 'geben-set-breakpoint-line) + (define-key geben-mode-map "B" 'geben-breakpoint-menu) + (define-key geben-mode-map "u" 'geben-unset-breakpoint-line) + (define-key geben-mode-map "U" 'geben-clear-breakpoints) + (define-key geben-mode-map "\C-cb" 'geben-show-breakpoint-list) + ;;(define-key geben-mode-map "B" 'geben-next-breakpoint) + ;;(define-key geben-mode-map "x" 'geben-set-conditional-breakpoint) + ;;(define-key geben-mode-map "X" 'geben-set-global-break-condition) + + ;; evaluation + (define-key geben-mode-map "e" 'geben-eval-expression) + ;;(define-key geben-mode-map "E" 'geben-eval-current-word) + ;;(define-key geben-mode-map "\C-x\C-e" 'geben-eval-last-sexp) + + ;; views + (define-key geben-mode-map "w" 'geben-where) + ;;(define-key geben-mode-map "v" 'geben-view-outside) ;; maybe obsolete?? + ;;(define-key geben-mode-map "p" 'geben-bounce-point) + ;;(define-key geben-mode-map "P" 'geben-view-outside) ;; same as v + ;;(define-key geben-mode-map "W" 'geben-toggle-save-windows) + + ;; misc + (define-key geben-mode-map "?" 'geben-mode-help) + (define-key geben-mode-map "d" 'geben-show-backtrace) + (define-key geben-mode-map "t" 'geben-show-backtrace) + (define-key geben-mode-map "\C-cp" 'geben-toggle-pause-at-entry-line-flag) + (define-key geben-mode-map "\C-cf" 'geben-find-file) + + ;;(define-key geben-mode-map "-" 'negative-argument) + + ;; statistics + ;;(define-key geben-mode-map "=" 'geben-temp-display-freq-count) + + ;; GUD bindings + (define-key geben-mode-map "\C-c\C-s" 'geben-step-into) + (define-key geben-mode-map "\C-c\C-n" 'geben-step-over) + (define-key geben-mode-map "\C-c\C-c" 'geben-run) + + (define-key geben-mode-map "\C-x " 'geben-set-breakpoint-line) + (define-key geben-mode-map "\C-c\C-d" 'geben-unset-breakpoint-line) + (define-key geben-mode-map "\C-c\C-t" 'geben-set-breakpoint-line) + (define-key geben-mode-map "\C-c\C-l" 'geben-where)) + +;;;###autoload +(define-minor-mode geben-mode + "Minor mode for debugging source code with GEBEN. +The geben-mode buffer commands: +\\{geben-mode-map}" + nil " *debugging*" geben-mode-map + (setq buffer-read-only geben-mode) + (setq left-margin-width (if geben-mode 2 0)) + ;; when the buffer is visible in a window, + ;; force the window to notice the margin modification + (set (make-local-variable 'command-error-function) #'geben-mode-read-only-handler) + (let ((win (get-buffer-window (current-buffer)))) + (if win + (set-window-buffer win (current-buffer))))) + +(add-hook 'geben-source-visit-hook 'geben-enter-geben-mode) + +(defun geben-mode-read-only-handler (data context caller) + (if (eq 'buffer-read-only (car data)) + (geben-with-current-session session + (let ((prompt "The buffer is under debug mode. Want to open the original file? (y/N): ")) + (if (memq (read-char prompt) '(?Y ?y)) + (geben-session-source-visit-original-file + session + (geben-session-source-fileuri session (buffer-file-name)))))) + (message (error-message-string data)) + (beep))) + +(defun geben-enter-geben-mode (session buf) + (with-current-buffer buf + (geben-mode 1) + (set (make-local-variable 'geben-current-session) session))) + +(add-hook 'geben-source-release-hook + (lambda () (geben-mode 0))) + +(defun geben-where () + "Move to the current breaking point." + (interactive) + (geben-with-current-session session + (if (geben-session-stack session) + (let* ((stack (second (car (geben-session-stack session)))) + (fileuri (geben-source-fileuri-regularize (cdr (assq 'filename stack)))) + (lineno (cdr (assq 'lineno stack)))) + (geben-session-cursor-update session fileuri lineno)) + (when (interactive-p) + (message "GEBEN is not started."))))) + +(defun geben-quit-window () + (interactive) + (quit-window) + (geben-where)) + +(defun geben-mode-help () + "Display description and key bindings of `geben-mode'." + (interactive) + (describe-function 'geben-mode)) + +(defvar geben-step-type :step-into + "Step command of what `geben-step-again' acts. +This value remains the last step command type either +`:step-into' or `:step-out'.") + +(defun geben-step-again () + "Do either `geben-step-into' or `geben-step-over' what the last time called. +Default is `geben-step-into'." + (interactive) + (case geben-step-type + (:step-over (geben-step-over)) + (:step-into (geben-step-into)) + (t (geben-step-into)))) + +(defun geben-step-into () + "Step into the definition of the function or method about to be called. +If there is a function call involved it will break on the first +statement in that function" + (interactive) + (setq geben-step-type :step-into) + (geben-with-current-session session + (geben-dbgp-command-step-into session))) + +(defun geben-step-over () + "Step over the definition of the function or method about to be called. +If there is a function call on the line from which the command +is issued then the debugger engine will stop at the statement +after the function call in the same scope as from where the +command was issued" + (interactive) + (setq geben-step-type :step-over) + (geben-with-current-session session + (geben-dbgp-command-step-over session))) + +(defun geben-step-out () + "Step out of the current scope. +It breaks on the statement after returning from the current +function." + (interactive) + (geben-with-current-session session + (geben-dbgp-command-step-out session))) + +(defun geben-run () + "Start or resumes the script. +It will break at next breakpoint, or stops at the end of the script." + (interactive) + (geben-with-current-session session + (geben-dbgp-command-run session))) + +(defun geben-run-to-cursor () + "Run the script to where the cursor points." + (interactive) + (geben-with-current-session session + (geben-dbgp-sequence + (geben-set-breakpoint-line nil nil nil t) + (lambda (session cmd msg err) + (let ((bid (xml-get-attribute-or-nil msg 'id))) + (geben-dbgp-sequence-bind (bid) + (geben-run) + (lambda (session cmd msg err) + (geben-dbgp-command-breakpoint-remove session bid)))))))) + +(defun geben-stop () + "End execution of the script immediately." + (interactive) + (geben-with-current-session session + (geben-dbgp-command-stop session))) + +(defun geben-breakpoint-menu (arg) + "Set a breakpoint interactively. +Script debugger engine may support a kind of breakpoints, which +will be stored in the variable `geben-dbgp-breakpoint-types' +after a debugging session is started. + +This command asks you a breakpoint type and its options. +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-breakpoint-menu] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-breakpoint-menu]), \ +this command will also ask a +hit-value interactively. +" + (interactive "P") + (geben-with-current-session session + (let ((candidates (remove nil + (mapcar + (lambda (x) + (if (member (car x) + (geben-breakpoint-types (geben-session-breakpoint session))) + x)) + '((:line . "l)Line") + (:call . "c)Call") + (:return . "r)Return") + (:exception . "e)Exception") + (:conditional . "d)Conditional") + (:watch . "w)Watch")))))) + (when (null candidates) + (error "No breakpoint type is supported by the debugger engine.")) + (let* ((c (read-char (concat "Breakpoint type: " + (mapconcat + (lambda (x) + (cdr x)) + candidates " ")))) + (x (find-if (lambda (x) + (eq c (elt (cdr x) 0))) + candidates)) + (fn (and x + (intern-soft (concat "geben-set-breakpoint-" + (substring (symbol-name (car x)) 1)))))) + (unless x + (error "Cancelled")) + (if (fboundp fn) + (call-interactively fn) + (error (concat (symbol-name fn) " is not implemented."))))))) + +(defun geben-set-breakpoint-common (session hit-value bp) + (setq hit-value (if (and (not (null hit-value)) + (listp hit-value)) + (if (fboundp 'read-number) + (read-number "Number of hit to break: ") + (string-to-number + (read-string "Number of hit to break: "))) + hit-value)) + (plist-put bp :hit-value (if (and (numberp hit-value) + (<= 0 hit-value)) + hit-value + 0)) + (geben-dbgp-command-breakpoint-set session bp)) + +(defun geben-set-breakpoint-line (fileuri lineno &optional hit-value temporary-p) + "Set a breakpoint at the current line. +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-set-breakpoint-line] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-set-breakpoint-line]), \ +this command will also ask a +hit-value interactively." + (interactive (list nil nil current-prefix-arg nil)) + (geben-with-current-session session + (let ((local-path (if fileuri + (geben-session-source-local-path session fileuri) + (buffer-file-name (current-buffer))))) + (geben-set-breakpoint-common session hit-value + (geben-bp-make + session :line + :fileuri (or fileuri + (geben-session-source-fileuri session local-path) + (geben-session-source-fileuri session (file-truename local-path)) + (geben-source-fileuri session local-path)) + :lineno (if (numberp lineno) + lineno + (geben-what-line)) + :local-path local-path + :overlay t + :run-once temporary-p))))) + +(defvar geben-set-breakpoint-call-history nil) +(defvar geben-set-breakpoint-fileuri-history nil) +(defvar geben-set-breakpoint-exception-history nil) +(defvar geben-set-breakpoint-condition-history nil) + +(defun geben-set-breakpoint-call (name &optional fileuri hit-value) + "Set a breakpoint to break at when entering function/method named NAME. +For a class method, specify NAME like \"MyClass::MyMethod\". +For an instance method, do either like \"MyClass::MyMethod\" or +\"MyClass->MyMethod\". +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-set-breakpoint-call] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-set-breakpoint-call]), +this command will also ask a +hit-value interactively." + (interactive (list nil)) + (geben-with-current-session session + (when (interactive-p) + (setq name (read-string "Name: " "" + 'geben-set-breakpoint-call-history)) + (setq fileuri + (unless (member (geben-session-language session) '(:php :ruby)) + ;; at this present some debugger engines' implementations is buggy: + ;; some requires fileuri and some don't accept it. + (let ((local-path (file-truename (buffer-file-name (current-buffer))))) + (read-string "fileuri: " + (or (geben-session-source-fileuri session local-path) + (geben-source-fileuri session local-path)) + 'geben-set-breakpoint-fileuri-history)))) + (setq hit-value current-prefix-arg)) + (when (string< "" name) + (geben-set-breakpoint-common session hit-value + (geben-bp-make session :call + :function name + :fileuri fileuri))))) + +(defun geben-set-breakpoint-return (name &optional fileuri hit-value) + "Set a breakpoint to break after returned from a function/method named NAME. +For a class method, specify NAME like \"MyClass::MyMethod\". +For an instance method, do either like \"MyClass::MyMethod\" or +\"MyClass->MyMethod\". +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-set-breakpoint-return] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-set-breakpoint-return]), +this command will also ask a +hit-value interactively." + (interactive (list nil)) + (geben-with-current-session session + (when (interactive-p) + (setq name (read-string "Name: " "" + 'geben-set-breakpoint-call-history)) + (setq fileuri + (unless (member (geben-session-language session) '(:php :ruby)) + ;; at this present some debugger engines' implementations are buggy: + ;; some requires fileuri and some don't accept it. + (let ((local-path (file-truename (buffer-file-name (current-buffer))))) + (read-string "fileuri: " + (or (geben-session-source-fileuri session local-path) + (geben-source-fileuri session local-path)) + 'geben-set-breakpoint-fileuri-history)))) + (setq hit-value current-prefix-arg)) + (when (string< "" name) + (geben-set-breakpoint-common session hit-value + (geben-bp-make session :return + :function name + :fileuri fileuri))))) + +(defun geben-set-breakpoint-exception (name &optional hit-value) + "Set a breakpoint to break at when an exception named NAME is occurred. +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-set-breakpoint-exception] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-set-breakpoint-exception]), +this command will also ask a +hit-value interactively." + (interactive (list + (read-string "Exception type: " + "Exception" + 'geben-set-breakpoint-exception-history) + current-prefix-arg)) + (geben-with-current-session session + (geben-set-breakpoint-common session hit-value + (geben-bp-make session :exception + :exception name)))) + +(defun geben-set-breakpoint-conditional (expr fileuri &optional lineno hit-value) + "Set a breakpoint to break at when the expression EXPR is true in the file FILEURI. +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-set-breakpoint-conditional] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-set-breakpoint-conditional]), +this command will also ask a +hit-value interactively." + (interactive (list nil nil)) + (geben-with-current-session session + (when (interactive-p) + (setq expr (read-string "Expression: " "" + 'geben-set-breakpoint-condition-history)) + (setq fileuri + (let ((local-path (file-truename (buffer-file-name (current-buffer))))) + (or (geben-session-source-fileuri session local-path) + (geben-source-fileuri session local-path)))) + (setq lineno (read-string "Line number to evaluate (blank means entire file): " + (number-to-string (geben-what-line)))) + (setq hit-value current-prefix-arg)) + + (geben-set-breakpoint-common session hit-value + (geben-bp-make session :conditional + :expression expr + :fileuri fileuri + :lineno (and (stringp lineno) + (string-match "^[0-9]+$" lineno) + (string-to-number lineno)))))) + +(defun geben-set-breakpoint-watch (expr &optional hit-value) + "Set a breakpoint to break on write of the variable or address. +Optionally, with a numeric argument you can specify `hit-value' +\(number of hits to break); \\[universal-argument] 2 \ +\\\\[geben-set-breakpoint-conditional] will set a breakpoint +with 2 hit-value. +With just a prefix arg \(\\[universal-argument] \\[geben-set-breakpoint-conditional]), +this command will also ask a +hit-value interactively." + (interactive (list nil)) + (geben-with-current-session session + (when (interactive-p) + (setq expr (read-string "Expression: " "" + 'geben-set-breakpoint-condition-history)) + (setq hit-value current-prefix-arg)) + (geben-set-breakpoint-common session hit-value + (geben-bp-make session :watch + :expression expr)))) + +(defun geben-unset-breakpoint-line () + "Clear a breakpoint set at the current line." + (interactive) + (geben-with-current-session session + (mapc (lambda (bp) + (geben-dbgp-command-breakpoint-remove session (plist-get bp :id))) + (geben-breakpoint-find-at-pos session (current-buffer) (point))))) + +(defun geben-clear-breakpoints () + "Clear all breakpoints. +If `geben-query-on-clear-breakpoints' is non-nil, GEBEN will query the user before +removing all breakpoints." + (interactive) + (geben-with-current-session session + (when (or (not geben-query-on-clear-breakpoints) + (let ((prompt "Clear all breakpoints? (y/N): ")) + (memq (read-char prompt) '(?Y ?y)))) + (geben-breakpoint-clear session)))) + +(defun geben-show-breakpoint-list () + "Display breakpoint list. +The breakpoint list buffer is under `geben-breakpoint-list-mode'. +Key mapping and other information is described its help page." + (interactive) + (geben-breakpoint-list-refresh t)) + +(defvar geben-eval-history nil) + +(defun geben-eval-expression (expr) + "Evaluate a given string EXPR within the current execution context." + (interactive + (progn + (list (read-from-minibuffer "Eval: " + nil nil nil 'geben-eval-history)))) + (geben-with-current-session session + (geben-dbgp-command-eval session expr))) + +(defun geben-eval-current-word () + "Evaluate a word at where the cursor is pointing." + (interactive) + (let ((expr (current-word))) + (when expr + (geben-with-current-session session + (geben-dbgp-command-eval session expr))))) + +(defun geben-open-file (fileuri) + "Open a debugger server side file specified by FILEURI. +FILEURI forms like as \`file:///path/to/file\'." + (interactive (list (read-string "Open file: " "file://"))) + (geben-with-current-session session + (geben-dbgp-command-source session fileuri))) + +(defun geben-show-backtrace () + "Display backtrace list. +The backtrace list buffer is under `geben-backtrace-mode'. +Key mapping and other information is described its help page." + (interactive) + (geben-with-current-session session + (geben-backtrace session))) + +(defun geben-toggle-pause-at-entry-line-flag () + "Toggle `geben-pause-at-entry-line'." + (interactive) + (setq geben-pause-at-entry-line + (not geben-pause-at-entry-line)) + (if (interactive-p) + (message (format "`geben-pause-at-entry-line' is %s" geben-pause-at-entry-line)))) + +(defun geben-set-redirect (target &optional arg) + "Set the debuggee script's output redirection mode. +This command enables you to redirect the debuggee script's output to GEBEN. +You can select redirection target from \`stdout', \`stderr' and both of them. +Prefixed with \\[universal-argument], you can also select redirection mode +from \`redirect', \`intercept' and \`disabled'." + (interactive (list (case (read-char "Redirect: o)STDOUT e)STRERR b)Both") + (?o :stdout) + (?e :stderr) + (?b :both)) + current-prefix-arg)) + (unless target + (error "Cancelled")) + (let ((mode (if arg + (case (read-char "Mode: r)Redirect i)Intercept d)Disable") + (?r :redirect) + (?i :intercept) + (?d :disable)) + :redirect))) + (unless mode + (error "Cancelled")) + (geben-with-current-session session + (when (memq target '(:stdout :both)) + (geben-dbgp-command-stdout session mode)) + (when (memq target '(:stderr :both)) + (geben-dbgp-command-stderr session mode))))) + +(defun geben-display-context (&optional depth) + (interactive (list (cond + ((null current-prefix-arg) 0) + ((numberp current-prefix-arg) + current-prefix-arg) + ((listp current-prefix-arg) + (if (fboundp 'read-number) + (read-number "Depth: " 0) + (string-to-number (read-string "Depth: " "0")))) + (t nil)))) + (geben-with-current-session session + (geben-context-list-display session (or depth 0)))) + +(defun geben-find-file () + (interactive) + (geben-with-current-session session + (let ((file-path (geben-session-source-read-file-name + session + (file-name-directory (geben-source-fileuri session + (buffer-file-name))) + t))) + (when file-path + (geben-open-file (geben-source-fileuri session file-path)))))) + + +(defcustom geben-dbgp-default-port 9000 + "Default port number to listen a new DBGp connection." + :group 'geben + :type 'integer) + +(defcustom geben-dbgp-default-proxy '("127.0.0.1" 9001 "default" nil t) + "Default setting for a new DBGp proxy connection. + +The first and second elements are address and port where the DBGp proxy listening on. +The third element is IDE key. +The forth element is a flag but currently not used yet. +The fifth element is port to be used in debugging sessions. If a non-integer value is +set, then any free port will be allocated. +" + :group 'geben) + +;;;###autoload +(defun geben (&optional args) + "Start GEBEN, a DBGp protocol frontend - a script debugger. +Variations are described below. + +By default, starts GEBEN listening to port `geben-dbgp-default-port'. +Prefixed with one \\[universal-argument], asks listening port number interactively and +starts GEBEN on the port. +Prefixed with two \\[universal-argument]'s, starts a GEBEN proxy listener. +Prefixed with three \\[universal-argument]'s, kills a GEBEN listener. +Prefixed with four \\[universal-argument]'s, kills a GEBEN proxy listener. + +GEBEN communicates with script servers, located anywhere local or +remote, in DBGp protocol (e.g. PHP with Xdebug extension) +to help you debugging your script with some valuable features: + - continuation commands like \`step in\', \`step out\', ... + - a kind of breakpoints like \`line no\', \`function call\' and + \`function return\'. + - evaluation + - stack dump + - etc. + +The script servers should be DBGp protocol enabled. +Ask to your script server administrator about this setting up +issue. + +Once you've done these setup operation correctly, run GEBEN first +and your script on your script server second. After some +negotiation GEBEN will display your script's entry source code. +The debugging session is started. + +In the debugging session the source code buffers are under the +minor mode `geben-mode'. Key mapping and other information is +described its help page." + (interactive "p") + (case args + (1 + (geben-dbgp-start geben-dbgp-default-port)) + (4 + (let ((default (or (car dbgp-listener-port-history) + geben-dbgp-default-port + (default-value 'geben-dbgp-default-port)))) + (geben-dbgp-start (dbgp-read-integer (format "Listen port(default %s): " default) + default 'dbgp-listener-port-history)))) + (16 + (call-interactively 'geben-proxy)) + (64 + (call-interactively 'geben-end)) + (t + (call-interactively 'geben-proxy-end)))) + +(defun geben-end (port) + "Stop the DBGp listener on PORT." + (interactive + (let ((ports (remq nil + (mapcar (lambda (listener) + (and (not (dbgp-proxy-p listener)) + (number-to-string (second (process-contact listener))))) + dbgp-listeners)))) + (list + (if (= 1 (length ports)) + (string-to-number (car ports)) + ;; ask user for the target idekey. + (let ((num (completing-read "Listener port to kill: " ports nil t))) + (if (string< "" num) + (read num) + (signal 'quit nil))))))) + (let ((listener (dbgp-listener-find port))) + (dbgp-listener-kill port) + (and (interactive-p) + (message (if listener + "The DBGp listener for port %d is terminated." + "DBGp listener for port %d does not exist.") + port)) + (and listener t))) + +(defun geben-proxy (ip-or-addr port idekey ;;multi-session-p + &optional session-port) + "Start a new DBGp proxy listener. +The DBGp proxy should be found at IP-OR-ADDR / PORT. +This create a new DBGp listener and register it to the proxy +associating with the IDEKEY." + (interactive (list + (let ((default (or (car dbgp-proxy-address-history) + (nth 0 geben-dbgp-default-proxy) + (nth 0 (default-value 'geben-dbgp-default-proxy))))) + (dbgp-read-string (format "Proxy address (default %s): " default) + nil 'dbgp-proxy-address-history default)) + (let ((default (or (car dbgp-proxy-port-history) + (nth 1 geben-dbgp-default-proxy) + (nth 1 (default-value 'geben-dbgp-default-proxy))))) + (dbgp-read-integer (format "Proxy port (default %d): " default) + default 'dbgp-proxy-port-history)) + (let ((default (or (car dbgp-proxy-idekey-history) + (nth 2 geben-dbgp-default-proxy) + (nth 2 (default-value 'geben-dbgp-default-proxy))))) + (dbgp-read-string "IDE key: " nil 'dbgp-proxy-idekey-history)) + ;;(not (memq (read-char "Multi session(Y/n): ") '(?N ?n))) + (let ((default (or (car dbgp-proxy-session-port-history) + (nth 4 geben-dbgp-default-proxy) + (nth 4 (default-value 'geben-dbgp-default-proxy))))) + (unless (numberp default) + (setq default 0)) + (dbgp-read-integer (format "Port for debug session (%s): " + (if (< 0 default) + (format "default %d, 0 to use any free port" default) + (format "leave empty to use any free port"))) + default 'dbgp-proxy-session-port-history)))) + (geben-dbgp-start-proxy ip-or-addr port idekey ;;multi-session-p + session-port)) + +(defalias 'geben-proxy-end #'dbgp-proxy-unregister) + +(provide 'geben) diff --git a/emacs.d/elpa/geben-0.26/geben.elc b/emacs.d/elpa/geben-0.26/geben.elc new file mode 100644 index 0000000000000000000000000000000000000000..db2932640108421cc35929ce26fe966307814b39 GIT binary patch literal 202640 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
Y4xIB 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 HF!TQd`lhax literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/close.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/close.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb51acddec0abcfbeb988b5baef9ff0c1763c0c GIT binary patch literal 1341 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3-q-mAvr-QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`6_P!Id>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4Fdx+ zLx4|+D@Z{@!?9!g|Ns9FWRHT;5ExM*U?tac0hp&4N`m}?fmvWA1BT%5?5e=X=PdAu zEM{QfQU_ti=6BxLfr9KMp1!W^*H{JFtxV$-L15RjOeSEA?V8ln(ptY>VNp>|dg zs7BAz#W6%9IQd6En?#240TyO~$CCey4V@W;H!&zPGP(&U_;T;keerHV|M!bIj0}+r W_zs;(ySfCZlfl!~&t;ucLK6UB=Ue6g literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/empty.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..a4563331f684bbd0025ad6ca31394ce98224a94b GIT binary patch literal 1334 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3-q-mAvr-QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`6_P!Id>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4Fdx+ zLx4|+D@Z{@!?9!g|Ns9FWRHT;5ExM*U?tac0hp&4N`m}?fmvWA1BT%5?5e=X=PdAu zEM{QfQU_ti=6BxLfr9KMp1!W^*H{JFEd}hl5}koUvL&t&CC>S|xv6<249-QVi6yBi z3gww4844j8sS56%z5(x3RP%reB|r*;^V3So6N^$A0unRxO7#3(LlnY{^^DCj)Xpjb z)u?;AIEH8hC;#YYlX#(WfQ4D$x5PhVLuUrzOs1YC*^XOT@5+AR;Ahyv$#-etd5t)r O76wmOKbLh*2~7Yvp;vAI literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/end-guide.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/end-guide.png new file mode 100644 index 0000000000000000000000000000000000000000..b1290f31e6f5437c4a49788f331fdd4b51088de2 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol=0U{quy}b+)Nb+`fVfYV%3-&Ib3>4uk@Q5sC zVBk^%VaC9fD~*AI>?NMQuI$%X1v#X(LNa!~0Sd{MxJHyX=jZ08=9Mrw7o{eaq^2m8 zXO?6rgk+>DxO@5ryiZZh11c2tba4#PIG>!Lz`7>3>W%&36@7y23}Ih|x;HIQ?FTAg N@O1TaS?83{1OPSQF@yjB literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/guide.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/guide.png new file mode 100644 index 0000000000000000000000000000000000000000..8535f86f3bf7cd9327895266263c03f8d38b7154 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol=0U{quy}b+)Nb+`fVfYV%3-&Ib3>4uk@Q5sC zVBk^%VaC9fD~*AI>?NMQuI$%X1vz9?{!C=j0Sd{MxJHyX=jZ08=9Mrw7o{eaq^2m8 zXO?6rgk+>DxO@5ryiZZh11c2rba4#PIG>!Lz`7>3>W%&36@7xsnHgFX75^#Ci2Vgr O!QkoY=d#Wzp$PynoiStp literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/handle.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/handle.png new file mode 100644 index 0000000000000000000000000000000000000000..cc5aa61b860d7e0c0a2fb7e4feae040e041a5c6c GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2Qy*pj^6T^Rm@;DWu&Cj&(|3p^r= zfhsjXnDMK^)3ZQ9_7YEDSN3bHf*gvhw*;cj0EJ{rTq8=H^K)}k^GX<;i&7IyQd1Pl zGfOfQLNZbn+&z5*-lwSM0ToJkx;TbtoKH@WU_H#ZCbsI0z2O%Pi5>=qdyf1iS3fhe Q0@W~hy85}Sb4q9e08EE4`~Uy| literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/leaf.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..ec790d79f6f0b3ce904f37abcacc3b69d4125615 GIT binary patch literal 1317 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3-q-mAvr-QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`6_P!Id>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4Fdx+ zLx4|+D^S7OrN@BeC>RZa5f}mrL3{dud5WPV$S?T+$Oa6--`Q1xNr1D!BeIx*flD2P z8JpjEUk3`Zmw5WRvR`8rWVcq0;y?ZfC?s3r8d2h$pPQSSSHj?2l$uzQnxasiS(2d; zl98(5?&%xwK1DSTs89l=FgQQ0q&%@Gl_4N8Gp|I?&ox9L%vjIZEJN+AB2bN(r;B5V qMsV_vem04=2@H?xMJ!6@@G-2C2|I8lvZfoTg2B_(&t;ucLK6TXlujK0 literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/no-guide.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/no-guide.png new file mode 100644 index 0000000000000000000000000000000000000000..81999263b2c290e298eece91ebd107a94a1532be GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol=0U{quy}b+)Nb+`fVfYV%3-&Ib3>4uk@Q5sC zVBk^%VaC9fD~*AI>?NMQuI$%X1vz9@C-pM_1`5fRxJHyX=jZ08=9Mrw7o{eaq^2m8 zXO?6rgk+>DxO@5ryiZZh11jYAba4#PIG>y#!MeCXfPsNYje)VJ)2ak0#o+1c=d#Wz Gp$P!7=PRKA literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/no-handle.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/no-handle.png new file mode 100644 index 0000000000000000000000000000000000000000..3055803a595fe2b37f910bb20b18bd7a42c91264 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs9>8<6~|#v2Qy*pj^6T^Rm@;DWu&Cj&(|3p^r= zfhsjXnDMK^)3ZQ9_7YEDSN3bHf*gvf59_K}fI_k*t`Q~9`MJ5Nc_j?aMX8A;sVNHO znI#ztAsML(?w-B@?^9IsfC>dYT^vI+&L<~Gur5vz;n87WU~XeztlrIG2b5&+boFyt I=akR{0Iq#2VgLXD literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/geben-0.26/tree-widget/geben/open.png b/emacs.d/elpa/geben-0.26/tree-widget/geben/open.png new file mode 100644 index 0000000000000000000000000000000000000000..0a8a957754d1c47a61dfe9a35f2cc3673fffd451 GIT binary patch literal 1343 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3-q-mAvr-QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`6_P!Id>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4Fdx+ zLx4|+D@Z{@!_uY4jvd?o|Nnm=cNC0B1D9B#o>FdgVja87{ihKT{-#I`b*%H@?66gHf+|;}h2Ir#G z#FEq$h4Rdj426)4R0VfW-+=cis(C<#5+H@a`DrEPiAAXl0g0J;C3=3YAqru}dd6lM zYG)OJY79JG978mMlYjKHNxV=wz{4!?TjHPbW(NjiO{N|Nhgo7J(HHJEn%c||SY*M} bp(4rre& literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/README b/emacs.d/elpa/php-extras-1.0.0.20130923/README new file mode 100644 index 0000000..f26cf00 --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/README @@ -0,0 +1,96 @@ +PHP Extras + +A small collection of extra features for Emacs php-mode. + +Currently includes: + +- php-extras-insert-previous-variable +- php-extras-eldoc-documentation-function +- Auto complete source for PHP functions based on + php-extras-eldoc-documentation-function + +php-extras-insert-previous-variable + +When variable names get too long or you have to juggle a lot of nested +arrays it gets cumbersome to repeat the same variables over and over +again while programming. + +In example you have the code below and want to debug what value you +actually parsed to some_function(). You have point at ^ and now all you +have to write is repeat the variable... + + some_function($my_array['some_level'][0]['another_level'][7]); + print_r(^); + +Enter php-extras and you just hit C-c C-$ and it will insert the +previous variable (including array indexes). + +If you prefix the command (i.e. C-u 3 C-c C-$) it will search back 3 +variables and with negative prefix arguments it will search forward. + +php-extras-eldoc-documentation-function + +eldoc-mode is a nice minor mode that ships with Emacs. It will display a +function tip in the mini buffer showing the function and its arguments +for the function at point. That is if you provide a function to look up +the function definition. + +php-extras provides such a function for looking up all the core PHP +functions. + +The function php-extras-generate-eldoc will download the PHP function +summary PHP Subversion repository and extract the function definitions +(slow) and store them in a hash table on disk for you. + +If you install php-extras as an ELPA package the hash table is already +generated for you. + +Auto complete source for PHP functions based + +The PHP functions extracted for php-extras-eldoc-documentation-function +is also setup as a source for auto-complete. + +auto-complete already comes with a dictionary of PHP functions and will +auto complete on them using the ac-source-dictionary. + +The source we provide with php-extras will hopefully be more up to date. + +Installation + +The easiest way to install php-extras is probably to install it via the +ELPA archive at Marmalade. + +ELPA (package.el) is part of Emacs 24. For Emacs 23 see Marmalade for +installation instructions. + +The version number of the ELPA package will have the date appended when +the package was build and hence the date the documentation got extracted +from php.net. + +Manual installation + +I really recommend that you install this package via ELPA as described +above. + +If you insist on installing it manually try to follow this recipe: + +- Place the folder with the files somewhere on your disk. + +- Add this to your .emacs / .emacs.d/init.el: + + (add-to-list 'load-path "/somewhere/on/your/disk/php-xtras") + (eval-after-load 'php-mode + (require 'php-extras)) + +- Either restart your Emacs or evaluate the add-to-list expression. + +- Generate the hash table containing the PHP functions: + +M-x load-library RET php-extras-gen-eldoc RET + +M-x php-extras-generate-eldoc RET + +Development of PHP Extras + +PHP Extras is developed at GitHub. Feature requests, ideas, bug reports, +and pull request are more than welcome! diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/dir b/emacs.d/elpa/php-extras-1.0.0.20130923/dir new file mode 100644 index 0000000..93157e3 --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/dir @@ -0,0 +1,18 @@ +This is the file .../info/dir, which contains the +topmost node of the Info hierarchy, called (dir)Top. +The first time you invoke Info you start off looking at this node. + +File: dir, Node: Top This is the top of the INFO tree + + This (the Directory node) gives a menu of major topics. + Typing "q" exits, "?" lists all Info commands, "d" returns here, + "h" gives a primer for first-timers, + "mEmacs" visits the Emacs manual, etc. + + In Emacs, you can click mouse button 2 on a menu item or cross reference + to select it. + +* Menu: + +Programming +* PHP Extras: (php-extras). Extra features for `php-mode'. diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-autoloads.el b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-autoloads.el new file mode 100644 index 0000000..650697c --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-autoloads.el @@ -0,0 +1,83 @@ +;;; php-extras-autoloads.el --- automatically extracted autoloads +;; +;;; Code: + + +;;;### (autoloads (php-extras-completion-setup php-extras-completion-at-point +;;;;;; php-extras-autocomplete-setup php-extras-eldoc-documentation-function +;;;;;; php-extras-insert-previous-variable php-extras-auto-complete-insert-parenthesis +;;;;;; php-extras-insert-previous-variable-key) "php-extras" "php-extras.el" +;;;;;; (21154 21313 0 0)) +;;; Generated autoloads from php-extras.el + +(defvar php-extras-insert-previous-variable-key [(control c) (control $)] "\ +Key sequence for `php-extras-insert-previous-variable'.") + +(custom-autoload 'php-extras-insert-previous-variable-key "php-extras" nil) + +(defvar php-extras-auto-complete-insert-parenthesis t "\ +Whether auto complete insert should add a pair of parenthesis.") + +(custom-autoload 'php-extras-auto-complete-insert-parenthesis "php-extras" t) + +(autoload 'php-extras-insert-previous-variable "php-extras" "\ +Insert previously used variable from buffer. +With prefix argument search that number of times backwards for +variable. If prefix argument is negative search forward. + +\(fn ARG)" t nil) + +(autoload 'php-extras-eldoc-documentation-function "php-extras" "\ +Get function arguments for core PHP function at point. + +\(fn)" nil nil) + +(add-hook 'php-mode-hook 'php-extras-eldoc-setup) + +(autoload 'php-extras-autocomplete-setup "php-extras" "\ + + +\(fn)" nil nil) + +(add-hook 'php-mode-hook #'php-extras-autocomplete-setup) + +(autoload 'php-extras-completion-at-point "php-extras" "\ + + +\(fn)" nil nil) + +(autoload 'php-extras-completion-setup "php-extras" "\ + + +\(fn)" nil nil) + +(add-hook 'php-mode-hook #'php-extras-completion-setup) + +(eval-after-load 'php-mode `(let ((map php-mode-map) (key php-extras-insert-previous-variable-key)) (define-key map key 'php-extras-insert-previous-variable))) + +;;;*** + +;;;### (autoloads (php-extras-generate-eldoc) "php-extras-gen-eldoc" +;;;;;; "php-extras-gen-eldoc.el" (21154 21313 0 0)) +;;; Generated autoloads from php-extras-gen-eldoc.el + +(autoload 'php-extras-generate-eldoc "php-extras-gen-eldoc" "\ +Regenerate PHP function argument hash table from php.net. This is slow! + +\(fn)" t nil) + +;;;*** + +;;;### (autoloads nil nil ("php-extras-eldoc-functions.el" "php-extras-pkg.el") +;;;;;; (21154 21313 274916 0)) + +;;;*** + +(provide 'php-extras-autoloads) +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; coding: utf-8 +;; End: +;;; php-extras-autoloads.el ends here diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.el b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.el new file mode 100644 index 0000000..73178c7 --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.el @@ -0,0 +1,9 @@ +;;; php-extras-eldoc-functions.el -- file auto generated by `php-extras-generate-eldoc' + + (require 'php-extras) + + (setq php-extras-function-arguments #s(hash-table size 5000 test equal rehash-size 100 rehash-threshold 1.0 data ("aggregation_info" " aggregation_info()" "aggregate_info" "array aggregate_info(object $object)" "apache_get_modules" "array apache_get_modules()" "apache_request_headers" "array apache_request_headers()" "apache_response_headers" "array apache_response_headers()" "apc_add" "array apc_add(string $key [, mixed $var = '' [, int $ttl = '', array $values [, mixed $unused = '']]])" "apc_cache_info" "array apc_cache_info([string $cache_type = '' [, bool $limited = false]])" "apc_sma_info" "array apc_sma_info([bool $limited = false])" "apc_store" "array apc_store(string $key, mixed $var [, int $ttl = '', array $values [, mixed $unused = '']])" "apd_callstack" "array apd_callstack()" "apd_dump_persistent_resources" "array apd_dump_persistent_resources()" "apd_dump_regular_resources" "array apd_dump_regular_resources()" "apd_get_active_symbols" "array apd_get_active_symbols()" "array" "array array([mixed $... = ''])" "array_change_key_case" "array array_change_key_case(array $input [, int $case = CASE_LOWER])" "array_chunk" "array array_chunk(array $input, int $size [, bool $preserve_keys = false])" "array_combine" "array array_combine(array $keys, array $values)" "array_count_values" "array array_count_values(array $input)" "array_diff" "array array_diff(array $array1, array $array2 [, array $ ... = ''])" "array_diff_assoc" "array array_diff_assoc(array $array1, array $array2 [, array $... = ''])" "array_diff_key" "array array_diff_key(array $array1, array $array2 [, array $... = ''])" "array_diff_uassoc" "array array_diff_uassoc(array $array1, array $array2 [, array $... = '', callback $key_compare_func])" "array_diff_ukey" "array array_diff_ukey(array $array1, array $array2 [, array $ ... = '', callback $key_compare_func])" "array_fill" "array array_fill(int $start_index, int $num, mixed $value)" "array_fill_keys" "array array_fill_keys(array $keys, mixed $value)" "array_filter" "array array_filter(array $input [, callback $callback = ''])" "array_intersect" "array array_intersect(array $array1, array $array2 [, array $ ... = ''])" "array_intersect_assoc" "array array_intersect_assoc(array $array1, array $array2 [, array $ ... = ''])" "array_intersect_key" "array array_intersect_key(array $array1, array $array2 [, array $ ... = ''])" "array_intersect_uassoc" "array array_intersect_uassoc(array $array1, array $array2 [, array $ ... = '', callback $key_compare_func])" "array_intersect_ukey" "array array_intersect_ukey(array $array1, array $array2 [, array $... = '', callback $key_compare_func])" "array_keys" "array array_keys(array $input [, mixed $search_value = '' [, bool $strict = false]])" "array_map" "array array_map(callback $callback, array $arr1 [, array $... = ''])" "array_merge" "array array_merge(array $array1 [, array $array2 = '' [, array $... = '']])" "array_merge_recursive" "array array_merge_recursive(array $array1 [, array $... = ''])" "array_pad" "array array_pad(array $input, int $pad_size, mixed $pad_value)" "array_pop" "array array_pop(array $array)" "array_replace" "array array_replace(array $array, array $array1 [, array $array2 = '' [, array $... = '']])" "array_replace_recursive" "array array_replace_recursive(array $array, array $array1 [, array $array2 = '' [, array $... = '']])" "array_reverse" "array array_reverse(array $array [, bool $preserve_keys = false])" "array_shift" "array array_shift(array $array)" "array_slice" "array array_slice(array $array, int $offset [, int $length = '' [, bool $preserve_keys = false]])" "array_splice" "array array_splice(array $input, int $offset [, int $length = '' [, mixed $replacement = '']])" "array_udiff" "array array_udiff(array $array1, array $array2 [, array $ ... = '', callback $data_compare_func])" "array_udiff_assoc" "array array_udiff_assoc(array $array1, array $array2 [, array $ ... = '', callback $data_compare_func])" "array_udiff_uassoc" "array array_udiff_uassoc(array $array1, array $array2 [, array $ ... = '', callback $data_compare_func, callback $key_compare_func])" "array_uintersect" "array array_uintersect(array $array1, array $array2 [, array $ ... = '', callback $data_compare_func])" "array_uintersect_assoc" "array array_uintersect_assoc(array $array1, array $array2 [, array $ ... = '', callback $data_compare_func])" "array_uintersect_uassoc" "array array_uintersect_uassoc(array $array1, array $array2 [, array $ ... = '', callback $data_compare_func, callback $key_compare_func])" "array_unique" "array array_unique(array $array [, int $sort_flags = SORT_STRING])" "array_values" "array array_values(array $input)" "bson_decode" "array bson_decode(string $bson)" "bzerror" "array bzerror(resource $bz)" "cairo_available_fonts" "array cairo_available_fonts()" "cairo_available_surfaces" "array cairo_available_surfaces()" "cairo_clip_extents" "array cairo_clip_extents(CairoContext $context)" "cairo_clip_rectangle_list" "array cairo_clip_rectangle_list(CairoContext $context)" "cairo_device_to_user" "array cairo_device_to_user(float $x, float $y, CairoContext $context)" "cairo_device_to_user_distance" "array cairo_device_to_user_distance(float $x, float $y, CairoContext $context)" "cairo_fill_extents" "array cairo_fill_extents(CairoContext $context)" "cairo_font_extents" "array cairo_font_extents(CairoContext $context)" "cairo_get_current_point" "array cairo_get_current_point(CairoContext $context)" "cairo_get_dash" "array cairo_get_dash(CairoContext $context)" "cairo_matrix_transform_distance" "array cairo_matrix_transform_distance(CairoMatrix $matrix, float $dx, float $dy)" "cairo_matrix_transform_point" "array cairo_matrix_transform_point(CairoMatrix $matrix, float $dx, float $dy)" "cairo_path_extents" "array cairo_path_extents(CairoContext $context)" "cairo_pattern_get_color_stop_rgba" "array cairo_pattern_get_color_stop_rgba(CairoGradientPattern $pattern, int $index)" "cairo_pattern_get_linear_points" "array cairo_pattern_get_linear_points(CairoLinearGradient $pattern)" "cairo_pattern_get_radial_circles" "array cairo_pattern_get_radial_circles(CairoRadialGradient $pattern)" "cairo_pattern_get_rgba" "array cairo_pattern_get_rgba(CairoSolidPattern $pattern)" "cairo_ps_get_levels" "array cairo_ps_get_levels()" "cairo_scaled_font_extents" "array cairo_scaled_font_extents(CairoScaledFont $scaledfont)" "cairo_scaled_font_glyph_extents" "array cairo_scaled_font_glyph_extents(CairoScaledFont $scaledfont, array $glyphs)" "cairo_scaled_font_text_extents" "array cairo_scaled_font_text_extents(CairoScaledFont $scaledfont, string $text)" "cairo_stroke_extents" "array cairo_stroke_extents(CairoContext $context)" "cairo_surface_get_device_offset" "array cairo_surface_get_device_offset(CairoSurface $surface)" "cairo_svg_surface_get_versions" "array cairo_svg_surface_get_versions()" "cairo_text_extents" "array cairo_text_extents(string $text, CairoContext $context)" "cairo_user_to_device" "array cairo_user_to_device(string $x, string $y, CairoContext $context)" "cairo_user_to_device_distance" "array cairo_user_to_device_distance(string $x, string $y, CairoContext $context)" "cal_from_jd" "array cal_from_jd(int $jd, int $calendar)" "cal_info" "array cal_info([int $calendar = -1])" "classkit_import" "array classkit_import(string $filename)" "class_implements" "array class_implements(mixed $class [, bool $autoload = true])" "class_parents" "array class_parents(mixed $class [, bool $autoload = true])" "compact" "array compact(mixed $varname [, mixed $... = ''])" "cubrid_column_names" "array cubrid_column_names(resource $req_identifier)" "cubrid_column_types" "array cubrid_column_types(resource $req_identifier)" "cubrid_col_get" "array cubrid_col_get(resource $conn_identifier, string $oid, string $attr_name)" "cubrid_fetch_array" "array cubrid_fetch_array(resource $result [, int $type = CUBRID_BOTH])" "cubrid_fetch_assoc" "array cubrid_fetch_assoc(resource $result)" "cubrid_fetch_lengths" "array cubrid_fetch_lengths(resource $result)" "cubrid_fetch_row" "array cubrid_fetch_row(resource $result)" "cubrid_get_db_parameter" "array cubrid_get_db_parameter(resource $conn_identifier)" "cubrid_list_dbs" "array cubrid_list_dbs(resource $conn_identifier)" "cubrid_lob_get" "array cubrid_lob_get(resource $conn_identifier, string $SQL)" "cubrid_schema" "array cubrid_schema(resource $conn_identifier, int $schema_type [, string $class_name = '' [, string $attr_name = '']])" "curl_multi_info_read" "array curl_multi_info_read(resource $mh [, int $msgs_in_queue = ''])" "curl_version" "array curl_version([int $age = CURLVERSION_NOW])" "cyrus_query" "array cyrus_query(resource $connection, string $query)" "datefmt_localtime" "array datefmt_localtime(string $value [, int $position = '', IntlDateFormatter $fmt])" "date_parse" "array date_parse(string $date)" "date_parse_from_format" "array date_parse_from_format(string $format, string $date)" "date_sun_info" "array date_sun_info(int $time, float $latitude, float $longitude)" "db2_fetch_array" "array db2_fetch_array(resource $stmt [, int $row_number = -1])" "db2_fetch_assoc" "array db2_fetch_assoc(resource $stmt [, int $row_number = -1])" "db2_fetch_both" "array db2_fetch_both(resource $stmt [, int $row_number = -1])" "dbase_get_header_info" "array dbase_get_header_info(int $dbase_identifier)" "dbase_get_record" "array dbase_get_record(int $dbase_identifier, int $record_number)" "dbase_get_record_with_names" "array dbase_get_record_with_names(int $dbase_identifier, int $record_number)" "dba_handlers" "array dba_handlers([bool $full_info = false])" "dba_list" "array dba_list()" "dbplus_resolve" "array dbplus_resolve(string $relation_name)" "debug_backtrace" "array debug_backtrace([int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = '']])" "dio_stat" "array dio_stat(resource $fd)" "dns_get_record" "array dns_get_record(string $hostname [, int $type = DNS_ANY [, array $authns = '' [, array $addtl = '']]])" "each" "array each(array $array)" "enchant_broker_describe" "array enchant_broker_describe(resource $broker)" "enchant_dict_suggest" "array enchant_dict_suggest(resource $dict, string $word)" "error_get_last" "array error_get_last()" "exif_read_data" "array exif_read_data(string $filename [, string $sections = '' [, bool $arrays = false [, bool $thumbnail = false]]])" "explode" "array explode(string $delimiter, string $string [, int $limit = ''])" "fam_next_event" "array fam_next_event(resource $fam)" "fbsql_fetch_array" "array fbsql_fetch_array(resource $result [, int $result_type = ''])" "fbsql_fetch_assoc" "array fbsql_fetch_assoc(resource $result)" "fbsql_fetch_lengths" "array fbsql_fetch_lengths(resource $result)" "fbsql_fetch_row" "array fbsql_fetch_row(resource $result)" "fbsql_get_autostart_info" "array fbsql_get_autostart_info([resource $link_identifier = ''])" "fdf_get_attachment" "array fdf_get_attachment(resource $fdf_document, string $fieldname, string $savepath)" "fgetcsv" "array fgetcsv(resource $handle [, int $length = '' [, string $delimiter = ',' [, string $enclosure = '\"' [, string $escape = '\\\\']]]])" "file" "array file(string $filename [, int $flags = '' [, resource $context = '']])" "filter_list" "array filter_list()" "fstat" "array fstat(resource $handle)" "ftp_nlist" "array ftp_nlist(resource $ftp_stream, string $directory)" "ftp_raw" "array ftp_raw(resource $ftp_stream, string $command)" "ftp_rawlist" "array ftp_rawlist(resource $ftp_stream, string $directory [, bool $recursive = false])" "func_get_args" "array func_get_args()" "gd_info" "array gd_info()" "gearman_job_status" "array gearman_job_status(string $job_handle)" "geoip_db_get_all_info" "array geoip_db_get_all_info()" "geoip_record_by_name" "array geoip_record_by_name(string $hostname)" "geoip_region_by_name" "array geoip_region_by_name(string $hostname)" "getallheaders" "array getallheaders()" "getdate" "array getdate([int $timestamp = time()])" "gethostbynamel" "array gethostbynamel(string $hostname)" "getimagesize" "array getimagesize(string $filename [, array $imageinfo = ''])" "getopt" "array getopt(string $options [, array $longopts = ''])" "getrusage" "array getrusage([int $who = ''])" "get_class_methods" "array get_class_methods(mixed $class_name)" "get_class_vars" "array get_class_vars(string $class_name)" "get_declared_classes" "array get_declared_classes()" "get_declared_interfaces" "array get_declared_interfaces()" "get_defined_constants" "array get_defined_constants([bool $categorize = false])" "get_defined_functions" "array get_defined_functions()" "get_defined_vars" "array get_defined_vars()" "get_extension_funcs" "array get_extension_funcs(string $module_name)" "get_headers" "array get_headers(string $url [, int $format = ''])" "get_html_translation_table" "array get_html_translation_table([int $table = HTML_SPECIALCHARS [, int $quote_style = ENT_COMPAT [, string $charset_hint = '']]])" "get_included_files" "array get_included_files()" "get_loaded_extensions" "array get_loaded_extensions([bool $zend_extensions = false])" "get_meta_tags" "array get_meta_tags(string $filename [, bool $use_include_path = false])" "get_object_vars" "array get_object_vars(object $object)" "glob" "array glob(string $pattern [, int $flags = ''])" "gmp_div_qr" "array gmp_div_qr(resource $n, resource $d [, int $round = GMP_ROUND_ZERO])" "gmp_gcdext" "array gmp_gcdext(resource $a, resource $b)" "gmp_sqrtrem" "array gmp_sqrtrem(resource $a)" "gnupg_decryptverify" "array gnupg_decryptverify(resource $identifier, string $text, string $plaintext)" "gnupg_import" "array gnupg_import(resource $identifier, string $keydata)" "gnupg_keyinfo" "array gnupg_keyinfo(resource $identifier, string $pattern)" "gnupg_verify" "array gnupg_verify(resource $identifier, string $signed_text, string $signature [, string $plaintext = ''])" "gopher_parsedir" "array gopher_parsedir(string $dirent)" "gupnp_device_info_get" "array gupnp_device_info_get(resource $root_device)" "gupnp_service_info_get" "array gupnp_service_info_get(resource $proxy)" "gupnp_service_introspection_get_state_variable" "array gupnp_service_introspection_get_state_variable(resource $introspection, string $variable_name)" "gupnp_service_proxy_send_action" "array gupnp_service_proxy_send_action(resource $proxy, string $action, array $in_params, array $out_params)" "gzfile" "array gzfile(string $filename [, int $use_include_path = ''])" "hash_algos" "array hash_algos()" "headers_list" "array headers_list()" "http_get_request_headers" "array http_get_request_headers()" "http_parse_headers" "array http_parse_headers(string $header)" "hw_Children" "array hw_Children(int $connection, int $objectID)" "hw_ChildrenObj" "array hw_ChildrenObj(int $connection, int $objectID)" "hw_GetAnchors" "array hw_GetAnchors(int $connection, int $objectID)" "hw_GetAnchorsObj" "array hw_GetAnchorsObj(int $connection, int $objectID)" "hw_GetChildColl" "array hw_GetChildColl(int $connection, int $objectID)" "hw_GetChildCollObj" "array hw_GetChildCollObj(int $connection, int $objectID)" "hw_GetChildDocColl" "array hw_GetChildDocColl(int $connection, int $objectID)" "hw_GetChildDocCollObj" "array hw_GetChildDocCollObj(int $connection, int $objectID)" "hw_GetObjectByQuery" "array hw_GetObjectByQuery(int $connection, string $query, int $max_hits)" "hw_GetObjectByQueryColl" "array hw_GetObjectByQueryColl(int $connection, int $objectID, string $query, int $max_hits)" "hw_GetObjectByQueryCollObj" "array hw_GetObjectByQueryCollObj(int $connection, int $objectID, string $query, int $max_hits)" "hw_GetObjectByQueryObj" "array hw_GetObjectByQueryObj(int $connection, string $query, int $max_hits)" "hw_GetParents" "array hw_GetParents(int $connection, int $objectID)" "hw_GetParentsObj" "array hw_GetParentsObj(int $connection, int $objectID)" "hw_GetSrcByDestObj" "array hw_GetSrcByDestObj(int $connection, int $objectID)" "hw_InCollections" "array hw_InCollections(int $connection, array $object_id_array, array $collection_id_array, int $return_collections)" "hw_objrec2array" "array hw_objrec2array(string $object_record [, array $format = ''])" "hw_Who" "array hw_Who(int $connection)" "ibase_blob_info" "array ibase_blob_info(resource $link_identifier, string $blob_id)" "ibase_fetch_assoc" "array ibase_fetch_assoc(resource $result [, int $fetch_flag = ''])" "ibase_fetch_row" "array ibase_fetch_row(resource $result_identifier [, int $fetch_flag = ''])" "ibase_field_info" "array ibase_field_info(resource $result, int $field_number)" "ibase_param_info" "array ibase_param_info(resource $query, int $param_number)" "iconv_mime_decode_headers" "array iconv_mime_decode_headers(string $encoded_headers [, int $mode = '' [, string $charset = ini_get(\"iconv.internal_encoding\")]])" "id3_get_genre_list" "array id3_get_genre_list()" "id3_get_tag" "array id3_get_tag(string $filename [, int $version = ID3_BEST])" "ifx_fetch_row" "array ifx_fetch_row(resource $result_id [, mixed $position = ''])" "ifx_fieldproperties" "array ifx_fieldproperties(resource $result_id)" "ifx_fieldtypes" "array ifx_fieldtypes(resource $result_id)" "ifx_getsqlca" "array ifx_getsqlca(resource $result_id)" "imagecolorsforindex" "array imagecolorsforindex(resource $image, int $index)" "imageftbbox" "array imageftbbox(float $size, float $angle, string $fontfile, string $text [, array $extrainfo = ''])" "imagefttext" "array imagefttext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text [, array $extrainfo = ''])" "imagepsbbox" "array imagepsbbox(string $text, resource $font, int $size, int $space, int $tightness, float $angle)" "imagepstext" "array imagepstext(resource $image, string $text, resource $font_index, int $size, int $foreground, int $background, int $x, int $y [, int $space = '' [, int $tightness = '' [, float $angle = 0.0 [, int $antialias_steps = 4]]]])" "imagettfbbox" "array imagettfbbox(float $size, float $angle, string $fontfile, string $text)" "imagettftext" "array imagettftext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)" "imap_alerts" "array imap_alerts()" "imap_errors" "array imap_errors()" "imap_fetch_overview" "array imap_fetch_overview(resource $imap_stream, string $sequence [, int $options = ''])" "imap_getacl" "array imap_getacl(resource $imap_stream, string $mailbox)" "imap_getmailboxes" "array imap_getmailboxes(resource $imap_stream, string $ref, string $pattern)" "imap_getsubscribed" "array imap_getsubscribed(resource $imap_stream, string $ref, string $pattern)" "imap_get_quota" "array imap_get_quota(resource $imap_stream, string $quota_root)" "imap_get_quotaroot" "array imap_get_quotaroot(resource $imap_stream, string $quota_root)" "imap_headers" "array imap_headers(resource $imap_stream)" "imap_list" "array imap_list(resource $imap_stream, string $ref, string $pattern)" "imap_listscan" "array imap_listscan(resource $imap_stream, string $ref, string $pattern, string $content)" "imap_lsub" "array imap_lsub(resource $imap_stream, string $ref, string $pattern)" "imap_mime_header_decode" "array imap_mime_header_decode(string $text)" "imap_rfc822_parse_adrlist" "array imap_rfc822_parse_adrlist(string $address, string $default_host)" "imap_search" "array imap_search(resource $imap_stream, string $criteria [, int $options = SE_FREE [, string $charset = NIL]])" "imap_sort" "array imap_sort(resource $imap_stream, int $criteria, int $reverse [, int $options = '' [, string $search_criteria = '' [, string $charset = NIL]]])" "imap_thread" "array imap_thread(resource $imap_stream [, int $options = SE_FREE])" "inclued_get_data" "array inclued_get_data()" "ingres_fetch_array" "array ingres_fetch_array(resource $result [, int $result_type = ''])" "ingres_fetch_assoc" "array ingres_fetch_assoc(resource $result)" "ingres_fetch_row" "array ingres_fetch_row(resource $result)" "ini_get_all" "array ini_get_all([string $extension = '' [, bool $details = true]])" "inotify_read" "array inotify_read(resource $inotify_instance)" "iptcparse" "array iptcparse(string $iptcblock)" "iterator_to_array" "array iterator_to_array(Traversable $iterator [, bool $use_keys = true])" "kadm5_get_policies" "array kadm5_get_policies(resource $handle)" "kadm5_get_principal" "array kadm5_get_principal(resource $handle, string $principal)" "kadm5_get_principals" "array kadm5_get_principals(resource $handle)" "ldap_explode_dn" "array ldap_explode_dn(string $dn, int $with_attrib)" "ldap_get_attributes" "array ldap_get_attributes(resource $link_identifier, resource $result_entry_identifier)" "ldap_get_entries" "array ldap_get_entries(resource $link_identifier, resource $result_identifier)" "ldap_get_values" "array ldap_get_values(resource $link_identifier, resource $result_entry_identifier, string $attribute)" "ldap_get_values_len" "array ldap_get_values_len(resource $link_identifier, resource $result_entry_identifier, string $attribute)" "libxml_get_errors" "array libxml_get_errors()" "list" "array list(mixed $varname [, mixed $... = ''])" "localeconv" "array localeconv()" "locale_get_all_variants" "array locale_get_all_variants(string $locale)" "locale_get_keywords" "array locale_get_keywords(string $locale)" "locale_parse" "array locale_parse(string $locale)" "localtime" "array localtime([int $timestamp = time() [, bool $is_associative = false]])" "lstat" "array lstat(string $filename)" "mailparse_msg_get_part_data" "array mailparse_msg_get_part_data(resource $mimemail)" "mailparse_msg_get_structure" "array mailparse_msg_get_structure(resource $mimemail)" "mailparse_rfc822_parse_addresses" "array mailparse_rfc822_parse_addresses(string $addresses)" "mailparse_uudecode_all" "array mailparse_uudecode_all(resource $fp)" "maxdb_fetch_assoc" "array maxdb_fetch_assoc(resource $result)" "maxdb_fetch_lengths" "array maxdb_fetch_lengths(resource $result)" "mb_encoding_aliases" "array mb_encoding_aliases(string $encoding)" "mb_ereg_search_getregs" "array mb_ereg_search_getregs()" "mb_ereg_search_pos" "array mb_ereg_search_pos([string $pattern = '' [, string $option = \"ms\"]])" "mb_ereg_search_regs" "array mb_ereg_search_regs([string $pattern = '' [, string $option = \"ms\"]])" "mb_list_encodings" "array mb_list_encodings()" "mb_parse_str" "array mb_parse_str(string $encoded_string [, array $result = ''])" "mb_split" "array mb_split(string $pattern, string $string [, int $limit = -1])" "mcrypt_enc_get_supported_key_sizes" "array mcrypt_enc_get_supported_key_sizes(resource $td)" "mcrypt_list_algorithms" "array mcrypt_list_algorithms([string $lib_dir = ini_get(\"mcrypt.algorithms_dir\")])" "mcrypt_list_modes" "array mcrypt_list_modes([string $lib_dir = ini_get(\"mcrypt.modes_dir\")])" "mcrypt_module_get_supported_key_sizes" "array mcrypt_module_get_supported_key_sizes(string $algorithm [, string $lib_dir = ''])" "msession_find" "array msession_find(string $name, string $value)" "msession_get_array" "array msession_get_array(string $session)" "msession_list" "array msession_list()" "msession_listvar" "array msession_listvar(string $name)" "msgfmt_parse" "array msgfmt_parse(string $value, MessageFormatter $fmt)" "msgfmt_parse_message" "array msgfmt_parse_message(string $locale, string $pattern, string $source, string $value)" "msg_stat_queue" "array msg_stat_queue(resource $queue)" "msql_fetch_array" "array msql_fetch_array(resource $result [, int $result_type = ''])" "msql_fetch_row" "array msql_fetch_row(resource $result)" "mssql_fetch_array" "array mssql_fetch_array(resource $result [, int $result_type = MSSQL_BOTH])" "mssql_fetch_assoc" "array mssql_fetch_assoc(resource $result_id)" "mssql_fetch_row" "array mssql_fetch_row(resource $result)" "mysqli_fetch_assoc" "array mysqli_fetch_assoc(mysqli_result $result)" "mysqli_fetch_fields" "array mysqli_fetch_fields(mysqli_result $result)" "mysqli_fetch_lengths" "array mysqli_fetch_lengths(mysqli_result $result)" "mysqli_get_cache_stats" "array mysqli_get_cache_stats()" "mysqli_get_client_stats" "array mysqli_get_client_stats()" "mysqli_get_connection_stats" "array mysqli_get_connection_stats(mysqli $link)" "mysqlnd_ms_get_stats" "array mysqlnd_ms_get_stats()" "mysqlnd_qc_get_cache_info" "array mysqlnd_qc_get_cache_info()" "mysqlnd_qc_get_core_stats" "array mysqlnd_qc_get_core_stats()" "mysqlnd_qc_get_handler" "array mysqlnd_qc_get_handler()" "mysqlnd_qc_get_query_trace_log" "array mysqlnd_qc_get_query_trace_log()" "mysql_fetch_array" "array mysql_fetch_array(resource $result [, int $result_type = MYSQL_BOTH])" "mysql_fetch_assoc" "array mysql_fetch_assoc(resource $result)" "mysql_fetch_lengths" "array mysql_fetch_lengths(resource $result)" "mysql_fetch_row" "array mysql_fetch_row(resource $result)" "m_responsekeys" "array m_responsekeys(resource $conn, int $identifier)" "newt_checkbox_tree_find_item" "array newt_checkbox_tree_find_item(resource $checkboxtree, mixed $data)" "newt_checkbox_tree_get_multi_selection" "array newt_checkbox_tree_get_multi_selection(resource $checkboxtree, string $seqnum)" "newt_checkbox_tree_get_selection" "array newt_checkbox_tree_get_selection(resource $checkboxtree)" "newt_listbox_get_selection" "array newt_listbox_get_selection(resource $listbox)" "notes_body" "array notes_body(string $server, string $mailbox, int $msg_number)" "notes_search" "array notes_search(string $database_name, string $keywords)" "notes_unread" "array notes_unread(string $database_name, string $user_name)" "nsapi_request_headers" "array nsapi_request_headers()" "nsapi_response_headers" "array nsapi_response_headers()" "ob_get_status" "array ob_get_status([bool $full_status = FALSE])" "ob_list_handlers" "array ob_list_handlers()" "oci_error" "array oci_error([resource $resource = ''])" "oci_fetch_array" "array oci_fetch_array(resource $statement [, int $mode = ''])" "oci_fetch_assoc" "array oci_fetch_assoc(resource $statement)" "oci_fetch_row" "array oci_fetch_row(resource $statement)" "odbc_data_source" "array odbc_data_source(resource $connection_id, int $fetch_type)" "odbc_fetch_array" "array odbc_fetch_array(resource $result [, int $rownumber = ''])" "odbc_fetch_into" "array odbc_fetch_into(resource $result_id, array $result_array [, int $rownumber = ''])" "openssl_csr_get_subject" "array openssl_csr_get_subject(mixed $csr [, bool $use_shortnames = true])" "openssl_get_cipher_methods" "array openssl_get_cipher_methods([bool $aliases = false])" "openssl_get_md_methods" "array openssl_get_md_methods([bool $aliases = false])" "openssl_pkey_get_details" "array openssl_pkey_get_details(resource $key)" "openssl_x509_parse" "array openssl_x509_parse(mixed $x509cert [, bool $shortnames = true])" "parsekit_compile_file" "array parsekit_compile_file(string $filename [, array $errors = '' [, int $options = PARSEKIT_QUIET]])" "parsekit_compile_string" "array parsekit_compile_string(string $phpcode [, array $errors = '' [, int $options = PARSEKIT_QUIET]])" "parsekit_func_arginfo" "array parsekit_func_arginfo(mixed $function)" "parse_ini_file" "array parse_ini_file(string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL]])" "parse_ini_string" "array parse_ini_string(string $ini [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL]])" "pg_convert" "array pg_convert(resource $connection, string $table_name, array $assoc_array [, int $options = ''])" "pg_copy_to" "array pg_copy_to(resource $connection, string $table_name [, string $delimiter = '' [, string $null_as = '']])" "pg_fetch_all" "array pg_fetch_all(resource $result)" "pg_fetch_all_columns" "array pg_fetch_all_columns(resource $result [, int $column = ''])" "pg_fetch_array" "array pg_fetch_array(resource $result [, int $row = '' [, int $result_type = '']])" "pg_fetch_assoc" "array pg_fetch_assoc(resource $result [, int $row = ''])" "pg_fetch_row" "array pg_fetch_row(resource $result [, int $row = ''])" "pg_get_notify" "array pg_get_notify(resource $connection [, int $result_type = ''])" "pg_meta_data" "array pg_meta_data(resource $connection, string $table_name)" "pg_version" "array pg_version([resource $connection = ''])" "posix_getgrgid" "array posix_getgrgid(int $gid)" "posix_getgrnam" "array posix_getgrnam(string $name)" "posix_getgroups" "array posix_getgroups()" "posix_getpwnam" "array posix_getpwnam(string $username)" "posix_getpwuid" "array posix_getpwuid(int $uid)" "posix_getrlimit" "array posix_getrlimit()" "posix_times" "array posix_times()" "posix_uname" "array posix_uname()" "preg_grep" "array preg_grep(string $pattern, array $input [, int $flags = ''])" "preg_split" "array preg_split(string $pattern, string $subject [, int $limit = -1 [, int $flags = '']])" "printer_list" "array printer_list(int $enumtype [, string $name = '' [, int $level = '']])" "proc_get_status" "array proc_get_status(resource $process)" "pspell_suggest" "array pspell_suggest(int $dictionary_link, string $word)" "ps_hyphenate" "array ps_hyphenate(resource $psdoc, string $text)" "ps_string_geometry" "array ps_string_geometry(resource $psdoc, string $text [, int $fontid = '' [, float $size = 0.0]])" "px_get_field" "array px_get_field(resource $pxdoc, int $fieldno)" "px_get_info" "array px_get_info(resource $pxdoc)" "px_get_record" "array px_get_record(resource $pxdoc, int $num [, int $mode = ''])" "px_get_schema" "array px_get_schema(resource $pxdoc [, int $mode = ''])" "px_retrieve_record" "array px_retrieve_record(resource $pxdoc, int $num [, int $mode = ''])" "radius_get_vendor_attr" "array radius_get_vendor_attr(string $data)" "range" "array range(mixed $low, mixed $high [, number $step = 1])" "readline_list_history" "array readline_list_history()" "realpath_cache_get" "array realpath_cache_get()" "resourcebundle_locales" "array resourcebundle_locales(ResourceBundle $r)" "rrd_fetch" "array rrd_fetch(string $filename, array $options)" "rrd_graph" "array rrd_graph(string $filename, array $options)" "rrd_info" "array rrd_info(string $filename)" "rrd_lastupdate" "array rrd_lastupdate(string $filename)" "rrd_xport" "array rrd_xport(array $options)" "runkit_superglobals" "array runkit_superglobals()" "scandir" "array scandir(string $directory [, int $sorting_order = '' [, resource $context = '']])" "session_get_cookie_params" "array session_get_cookie_params()" "session_pgsql_get_error" "array session_pgsql_get_error([bool $with_error_message = false])" "session_pgsql_status" "array session_pgsql_status()" "snmp2_real_walk" "array snmp2_real_walk(string $host, string $community, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmp2_walk" "array snmp2_walk(string $host, string $community, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmp3_real_walk" "array snmp3_real_walk(string $host, string $sec_name, string $sec_level, string $auth_protocol, string $auth_passphrase, string $priv_protocol, string $priv_passphrase, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmp3_walk" "array snmp3_walk(string $host, string $sec_name, string $sec_level, string $auth_protocol, string $auth_passphrase, string $priv_protocol, string $priv_passphrase, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmprealwalk" "array snmprealwalk(string $host, string $community, string $object_id [, int $timeout = 1000000 [, int $retries = 5]])" "snmpwalk" "array snmpwalk(string $hostname, string $community, string $object_id [, int $timeout = 1000000 [, int $retries = 5]])" "snmpwalkoid" "array snmpwalkoid(string $hostname, string $community, string $object_id [, int $timeout = 1000000 [, int $retries = 5]])" "split" "array split(string $pattern, string $string [, int $limit = -1])" "spliti" "array spliti(string $pattern, string $string [, int $limit = -1])" "spl_autoload_functions" "array spl_autoload_functions()" "spl_classes" "array spl_classes()" "sqlite_array_query" "array sqlite_array_query(resource $dbhandle, string $query [, int $result_type = '' [, bool $decode_binary = '']])" "sqlite_current" "array sqlite_current(resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true]])" "sqlite_fetch_all" "array sqlite_fetch_all(resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true]])" "sqlite_fetch_array" "array sqlite_fetch_array(resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true]])" "sqlite_fetch_column_types" "array sqlite_fetch_column_types(string $table_name, resource $dbhandle [, int $result_type = ''])" "sqlite_single_query" "array sqlite_single_query(resource $db, string $query [, bool $first_row_only = '' [, bool $decode_binary = '']])" "ssh2_methods_negotiated" "array ssh2_methods_negotiated(resource $session)" "ssh2_publickey_list" "array ssh2_publickey_list(resource $pkey)" "ssh2_sftp_lstat" "array ssh2_sftp_lstat(resource $sftp, string $path)" "ssh2_sftp_stat" "array ssh2_sftp_stat(resource $sftp, string $path)" "stat" "array stat(string $filename)" "stats_rand_get_seeds" "array stats_rand_get_seeds()" "stats_rand_phrase_to_seeds" "array stats_rand_phrase_to_seeds(string $phrase)" "stomp_get_read_timeout" "array stomp_get_read_timeout(resource $link)" "stomp_read_frame" "array stomp_read_frame([string $class_name = \"stompFrame\", resource $link])" "stream_context_get_options" "array stream_context_get_options(resource $stream_or_context)" "stream_context_get_params" "array stream_context_get_params(resource $stream_or_context)" "stream_get_filters" "array stream_get_filters()" "stream_get_meta_data" "array stream_get_meta_data(resource $stream)" "stream_get_transports" "array stream_get_transports()" "stream_get_wrappers" "array stream_get_wrappers()" "stream_socket_pair" "array stream_socket_pair(int $domain, int $type, int $protocol)" "strptime" "array strptime(string $date, string $format)" "str_getcsv" "array str_getcsv(string $input [, string $delimiter = ',' [, string $enclosure = '\"' [, string $escape = '\\\\']]])" "str_split" "array str_split(string $string [, int $split_length = 1])" "svn_blame" "array svn_blame(string $repository_url [, int $revision_no = SVN_REVISION_HEAD])" "svn_commit" "array svn_commit(string $log, array $targets [, bool $dontrecurse = ''])" "svn_diff" "array svn_diff(string $path1, int $rev1, string $path2, int $rev2)" "svn_fs_dir_entries" "array svn_fs_dir_entries(resource $fsroot, string $path)" "svn_log" "array svn_log(string $repos_url [, int $start_revision = '' [, int $end_revision = '' [, int $limit = '' [, int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY]]]])" "svn_ls" "array svn_ls(string $repos_url [, int $revision_no = SVN_REVISION_HEAD [, bool $recurse = false [, bool $peg = false]]])" "svn_status" "array svn_status(string $path [, int $flags = ''])" "swf_getbitmapinfo" "array swf_getbitmapinfo(int $bitmapid)" "swf_getfontinfo" "array swf_getfontinfo()" "sybase_fetch_array" "array sybase_fetch_array(resource $result)" "sybase_fetch_assoc" "array sybase_fetch_assoc(resource $result)" "sybase_fetch_row" "array sybase_fetch_row(resource $result)" "sys_getloadavg" "array sys_getloadavg()" "tidy_get_config" "array tidy_get_config(tidy $object)" "token_get_all" "array token_get_all(string $source)" "transliterator_list_ids" "array transliterator_list_ids()" "udm_cat_list" "array udm_cat_list(resource $agent, string $category)" "udm_cat_path" "array udm_cat_path(resource $agent, string $category)" "unpack" "array unpack(string $format, string $data)" "vpopmail_alias_get" "array vpopmail_alias_get(string $alias, string $domain)" "vpopmail_alias_get_all" "array vpopmail_alias_get_all(string $domain)" "win32_ps_list_procs" "array win32_ps_list_procs()" "win32_ps_stat_mem" "array win32_ps_stat_mem()" "win32_ps_stat_proc" "array win32_ps_stat_proc([int $pid = ''])" "wincache_fcache_fileinfo" "array wincache_fcache_fileinfo([bool $summaryonly = false])" "wincache_fcache_meminfo" "array wincache_fcache_meminfo()" "wincache_ocache_fileinfo" "array wincache_ocache_fileinfo([bool $summaryonly = false])" "wincache_ocache_meminfo" "array wincache_ocache_meminfo()" "wincache_rplist_fileinfo" "array wincache_rplist_fileinfo([bool $summaryonly = false])" "wincache_rplist_meminfo" "array wincache_rplist_meminfo()" "wincache_scache_info" "array wincache_scache_info([bool $summaryonly = false])" "wincache_scache_meminfo" "array wincache_scache_meminfo()" "wincache_ucache_info" "array wincache_ucache_info([bool $summaryonly = false [, string $key = '']])" "wincache_ucache_meminfo" "array wincache_ucache_meminfo()" "xattr_list" "array xattr_list(string $filename [, int $flags = ''])" "xhprof_disable" "array xhprof_disable()" "xmlrpc_parse_method_descriptions" "array xmlrpc_parse_method_descriptions(string $xml)" "yaz_es_result" "array yaz_es_result(resource $id)" "yaz_scan_result" "array yaz_scan_result(resource $id [, array $result = ''])" "yp_cat" "array yp_cat(string $domain, string $map)" "yp_first" "array yp_first(string $domain, string $map)" "yp_next" "array yp_next(string $domain, string $map, string $key)" "apache_child_terminate" "bool apache_child_terminate()" "apache_reset_timeout" "bool apache_reset_timeout()" "apache_setenv" "bool apache_setenv(string $variable, string $value [, bool $walk_to_top = false])" "apc_bin_load" "bool apc_bin_load(string $data [, int $flags = ''])" "apc_bin_loadfile" "bool apc_bin_loadfile(string $filename [, resource $context = '' [, int $flags = '']])" "apc_cas" "bool apc_cas(string $key, int $old, int $new)" "apc_clear_cache" "bool apc_clear_cache([string $cache_type = ''])" "apc_define_constants" "bool apc_define_constants(string $key, array $constants [, bool $case_sensitive = true])" "apc_load_constants" "bool apc_load_constants(string $key [, bool $case_sensitive = true])" "apd_breakpoint" "bool apd_breakpoint(int $debug_level)" "apd_continue" "bool apd_continue(int $debug_level)" "apd_echo" "bool apd_echo(string $output)" "apd_set_session_trace_socket" "bool apd_set_session_trace_socket(string $tcp_server, int $socket_type, int $port, int $debug_level)" "array_key_exists" "bool array_key_exists(mixed $key, array $search)" "array_walk" "bool array_walk(array $array, callback $funcname [, mixed $userdata = ''])" "array_walk_recursive" "bool array_walk_recursive(array $input, callback $funcname [, mixed $userdata = ''])" "arsort" "bool arsort(array $array [, int $sort_flags = SORT_REGULAR])" "asort" "bool asort(array $array [, int $sort_flags = SORT_REGULAR])" "assert" "bool assert(mixed $assertion)" "bbcode_add_element" "bool bbcode_add_element(resource $bbcode_container, string $tag_name, array $tag_rules)" "bbcode_add_smiley" "bool bbcode_add_smiley(resource $bbcode_container, string $smiley, string $replace_by)" "bbcode_destroy" "bool bbcode_destroy(resource $bbcode_container)" "bbcode_set_arg_parser" "bool bbcode_set_arg_parser(resource $bbcode_container, resource $bbcode_arg_parser)" "bbcode_set_flags" "bool bbcode_set_flags(resource $bbcode_container, int $flags [, int $mode = BBCODE_SET_FLAGS_SET])" "bcompiler_load" "bool bcompiler_load(string $filename)" "bcompiler_load_exe" "bool bcompiler_load_exe(string $filename)" "bcompiler_parse_class" "bool bcompiler_parse_class(string $class, string $callback)" "bcompiler_read" "bool bcompiler_read(resource $filehandle)" "bcompiler_write_class" "bool bcompiler_write_class(resource $filehandle, string $className [, string $extends = ''])" "bcompiler_write_constant" "bool bcompiler_write_constant(resource $filehandle, string $constantName)" "bcompiler_write_exe_footer" "bool bcompiler_write_exe_footer(resource $filehandle, int $startpos)" "bcompiler_write_file" "bool bcompiler_write_file(resource $filehandle, string $filename)" "bcompiler_write_footer" "bool bcompiler_write_footer(resource $filehandle)" "bcompiler_write_function" "bool bcompiler_write_function(resource $filehandle, string $functionName)" "bcompiler_write_functions_from_file" "bool bcompiler_write_functions_from_file(resource $filehandle, string $fileName)" "bcompiler_write_header" "bool bcompiler_write_header(resource $filehandle [, string $write_ver = ''])" "bcompiler_write_included_filename" "bool bcompiler_write_included_filename(resource $filehandle, string $filename)" "bcscale" "bool bcscale(int $scale)" "cairo_font_options_equal" "bool cairo_font_options_equal(CairoFontOptions $options, CairoFontOptions $other)" "cairo_has_current_point" "bool cairo_has_current_point(CairoContext $context)" "cairo_in_fill" "bool cairo_in_fill(string $x, string $y, CairoContext $context)" "cairo_in_stroke" "bool cairo_in_stroke(string $x, string $y, CairoContext $context)" "cairo_ps_surface_get_eps" "bool cairo_ps_surface_get_eps(CairoPsSurface $surface)" "chdb_create" "bool chdb_create(string $pathname, array $data)" "chdir" "bool chdir(string $directory)" "checkdate" "bool checkdate(int $month, int $day, int $year)" "checkdnsrr" "bool checkdnsrr(string $host [, string $type = \"MX\"])" "chgrp" "bool chgrp(string $filename, mixed $group)" "chmod" "bool chmod(string $filename, int $mode)" "chown" "bool chown(string $filename, mixed $user)" "chroot" "bool chroot(string $directory)" "classkit_method_add" "bool classkit_method_add(string $classname, string $methodname, string $args, string $code [, int $flags = CLASSKIT_ACC_PUBLIC])" "classkit_method_copy" "bool classkit_method_copy(string $dClass, string $dMethod, string $sClass [, string $sMethod = ''])" "classkit_method_redefine" "bool classkit_method_redefine(string $classname, string $methodname, string $args, string $code [, int $flags = CLASSKIT_ACC_PUBLIC])" "classkit_method_remove" "bool classkit_method_remove(string $classname, string $methodname)" "classkit_method_rename" "bool classkit_method_rename(string $classname, string $methodname, string $newname)" "class_alias" "bool class_alias([string $original = '' [, string $alias = '']])" "class_exists" "bool class_exists(string $class_name [, bool $autoload = true])" "closelog" "bool closelog()" "collator_asort" "bool collator_asort(array $arr [, int $sort_flag = '', Collator $coll])" "collator_set_attribute" "bool collator_set_attribute(int $attr, int $val, Collator $coll)" "collator_set_strength" "bool collator_set_strength(int $strength, Collator $coll)" "collator_sort" "bool collator_sort(array $arr [, int $sort_flag = '', Collator $coll])" "collator_sort_with_sort_keys" "bool collator_sort_with_sort_keys(array $arr, Collator $coll)" "com_event_sink" "bool com_event_sink(variant $comobject, object $sinkobject [, mixed $sinkinterface = ''])" "com_isenum" "bool com_isenum(variant $com_module)" "com_load_typelib" "bool com_load_typelib(string $typelib_name [, bool $case_insensitive = true])" "com_message_pump" "bool com_message_pump([int $timeoutms = ''])" "com_print_typeinfo" "bool com_print_typeinfo(object $comobject [, string $dispinterface = '' [, bool $wantsink = false]])" "copy" "bool copy(string $source, string $dest [, resource $context = ''])" "crack_check" "bool crack_check(resource $dictionary, string $password)" "crack_closedict" "bool crack_closedict([resource $dictionary = ''])" "cubrid_bind" "bool cubrid_bind(resource $req_identifier, mixed $bind_param, mixed $bind_value [, string $bind_value_type = ''])" "cubrid_close" "bool cubrid_close([resource $conn_identifier = ''])" "cubrid_close_request" "bool cubrid_close_request(resource $req_identifier)" "cubrid_commit" "bool cubrid_commit(resource $conn_identifier)" "cubrid_disconnect" "bool cubrid_disconnect(resource $conn_identifier)" "cubrid_drop" "bool cubrid_drop(resource $conn_identifier, string $oid)" "cubrid_execute" "bool cubrid_execute(resource $conn_identifier, string $SQL [, int $option = '', resource $request_identifier])" "cubrid_field_seek" "bool cubrid_field_seek(resource $result [, int $field_offset = ''])" "cubrid_free_result" "bool cubrid_free_result(resource $req_identifier)" "cubrid_get_autocommit" "bool cubrid_get_autocommit(resource $conn_identifier)" "cubrid_lob_close" "bool cubrid_lob_close(array $lob_identifier_array)" "cubrid_lob_export" "bool cubrid_lob_export(resource $conn_identifier, resource $lob_identifier, string $path_name)" "cubrid_lob_send" "bool cubrid_lob_send(resource $conn_identifier, resource $lob_identifier)" "cubrid_lock_read" "bool cubrid_lock_read(resource $conn_identifier, string $oid)" "cubrid_lock_write" "bool cubrid_lock_write(resource $conn_identifier, string $oid)" "cubrid_next_result" "bool cubrid_next_result(resource $result)" "cubrid_ping" "bool cubrid_ping([resource $conn_identifier = ''])" "cubrid_rollback" "bool cubrid_rollback(resource $conn_identifier)" "cubrid_seq_drop" "bool cubrid_seq_drop(resource $conn_identifier, string $oid, string $attr_name, int $index)" "cubrid_seq_insert" "bool cubrid_seq_insert(resource $conn_identifier, string $oid, string $attr_name, int $index, string $seq_element)" "cubrid_seq_put" "bool cubrid_seq_put(resource $conn_identifier, string $oid, string $attr_name, int $index, string $seq_element)" "cubrid_set_add" "bool cubrid_set_add(resource $conn_identifier, string $oid, string $attr_name, string $set_element)" "cubrid_set_autocommit" "bool cubrid_set_autocommit(resource $conn_identifier, bool $mode)" "cubrid_set_db_parameter" "bool cubrid_set_db_parameter(resource $conn_identifier, int $param_type, int $param_value)" "cubrid_set_drop" "bool cubrid_set_drop(resource $conn_identifier, string $oid, string $attr_name, string $set_element)" "curl_setopt" "bool curl_setopt(resource $ch, int $option, mixed $value)" "curl_setopt_array" "bool curl_setopt_array(resource $ch, array $options)" "cyrus_bind" "bool cyrus_bind(resource $connection, array $callbacks)" "cyrus_close" "bool cyrus_close(resource $connection)" "cyrus_unbind" "bool cyrus_unbind(resource $connection, string $trigger_name)" "datefmt_is_lenient" "bool datefmt_is_lenient(IntlDateFormatter $fmt)" "datefmt_set_calendar" "bool datefmt_set_calendar(int $which, IntlDateFormatter $fmt)" "datefmt_set_lenient" "bool datefmt_set_lenient(bool $lenient, IntlDateFormatter $fmt)" "datefmt_set_pattern" "bool datefmt_set_pattern(string $pattern, IntlDateFormatter $fmt)" "datefmt_set_timezone_id" "bool datefmt_set_timezone_id(string $zone, IntlDateFormatter $fmt)" "date_default_timezone_set" "bool date_default_timezone_set(string $timezone_identifier)" "db2_bind_param" "bool db2_bind_param(resource $stmt, int $parameter-number, string $variable-name [, int $parameter-type = '' [, int $data-type = '' [, int $precision = -1 [, int $scale = '']]]])" "db2_close" "bool db2_close(resource $connection)" "db2_commit" "bool db2_commit(resource $connection)" "db2_execute" "bool db2_execute(resource $stmt [, array $parameters = ''])" "db2_fetch_row" "bool db2_fetch_row(resource $stmt [, int $row_number = ''])" "db2_free_result" "bool db2_free_result(resource $stmt)" "db2_free_stmt" "bool db2_free_stmt(resource $stmt)" "db2_pclose" "bool db2_pclose(resource $resource)" "db2_rollback" "bool db2_rollback(resource $connection)" "db2_set_option" "bool db2_set_option(resource $resource, array $options, int $type)" "dbase_add_record" "bool dbase_add_record(int $dbase_identifier, array $record)" "dbase_close" "bool dbase_close(int $dbase_identifier)" "dbase_delete_record" "bool dbase_delete_record(int $dbase_identifier, int $record_number)" "dbase_pack" "bool dbase_pack(int $dbase_identifier)" "dbase_replace_record" "bool dbase_replace_record(int $dbase_identifier, array $record, int $record_number)" "dba_delete" "bool dba_delete(string $key, resource $handle)" "dba_exists" "bool dba_exists(string $key, resource $handle)" "dba_insert" "bool dba_insert(string $key, string $value, resource $handle)" "dba_optimize" "bool dba_optimize(resource $handle)" "dba_replace" "bool dba_replace(string $key, string $value, resource $handle)" "dba_sync" "bool dba_sync(resource $handle)" "dbx_sort" "bool dbx_sort(object $result, string $user_compare_function)" "define" "bool define(string $name, mixed $value [, bool $case_insensitive = false])" "defined" "bool defined(string $name)" "dio_tcsetattr" "bool dio_tcsetattr(resource $fd, array $options)" "dio_truncate" "bool dio_truncate(resource $fd, int $offset)" "dl" "bool dl(string $library)" "db2_num_rows" "boolean db2_num_rows(resource $stmt)" "empty" "bool empty(mixed $var)" "enchant_broker_dict_exists" "bool enchant_broker_dict_exists(resource $broker, string $tag)" "enchant_broker_free" "bool enchant_broker_free(resource $broker)" "enchant_broker_free_dict" "bool enchant_broker_free_dict(resource $dict)" "enchant_broker_set_ordering" "bool enchant_broker_set_ordering(resource $broker, string $tag, string $ordering)" "enchant_dict_check" "bool enchant_dict_check(resource $dict, string $word)" "enchant_dict_is_in_session" "bool enchant_dict_is_in_session(resource $dict, string $word)" "enchant_dict_quick_check" "bool enchant_dict_quick_check(resource $dict, string $word [, array $suggestions = ''])" "error_log" "bool error_log(string $message [, int $message_type = '' [, string $destination = '' [, string $extra_headers = '']]])" "event_add" "bool event_add(resource $event [, int $timeout = -1])" "event_base_loopbreak" "bool event_base_loopbreak(resource $event_base)" "event_base_loopexit" "bool event_base_loopexit(resource $event_base [, int $timeout = -1])" "event_base_priority_init" "bool event_base_priority_init(resource $event_base, int $npriorities)" "event_base_set" "bool event_base_set(resource $event, resource $event_base)" "event_buffer_base_set" "bool event_buffer_base_set(resource $bevent, resource $event_base)" "event_buffer_disable" "bool event_buffer_disable(resource $bevent, int $events)" "event_buffer_enable" "bool event_buffer_enable(resource $bevent, int $events)" "event_buffer_priority_set" "bool event_buffer_priority_set(resource $bevent, int $priority)" "event_buffer_set_callback" "bool event_buffer_set_callback(resource $event, mixed $readcb, mixed $writecb, mixed $errorcb [, mixed $arg = ''])" "event_buffer_write" "bool event_buffer_write(resource $bevent, string $data [, int $data_size = -1])" "event_del" "bool event_del(resource $event)" "event_set" "bool event_set(resource $event, mixed $fd, int $events, mixed $callback [, mixed $arg = ''])" "extension_loaded" "bool extension_loaded(string $name)" "fam_cancel_monitor" "bool fam_cancel_monitor(resource $fam, resource $fam_monitor)" "fam_resume_monitor" "bool fam_resume_monitor(resource $fam, resource $fam_monitor)" "fam_suspend_monitor" "bool fam_suspend_monitor(resource $fam, resource $fam_monitor)" "fbsql_autocommit" "bool fbsql_autocommit(resource $link_identifier [, bool $OnOff = ''])" "fbsql_change_user" "bool fbsql_change_user(string $user, string $password [, string $database = '' [, resource $link_identifier = '']])" "fbsql_close" "bool fbsql_close([resource $link_identifier = ''])" "fbsql_commit" "bool fbsql_commit([resource $link_identifier = ''])" "fbsql_create_db" "bool fbsql_create_db(string $database_name [, resource $link_identifier = '' [, string $database_options = '']])" "fbsql_data_seek" "bool fbsql_data_seek(resource $result, int $row_number)" "fbsql_drop_db" "bool fbsql_drop_db(string $database_name [, resource $link_identifier = ''])" "fbsql_field_seek" "bool fbsql_field_seek(resource $result [, int $field_offset = ''])" "fbsql_free_result" "bool fbsql_free_result(resource $result)" "fbsql_next_result" "bool fbsql_next_result(resource $result)" "fbsql_rollback" "bool fbsql_rollback([resource $link_identifier = ''])" "fbsql_select_db" "bool fbsql_select_db([string $database_name = '' [, resource $link_identifier = '']])" "fbsql_set_lob_mode" "bool fbsql_set_lob_mode(resource $result, int $lob_mode)" "fbsql_set_password" "bool fbsql_set_password(resource $link_identifier, string $user, string $password, string $old_password)" "fbsql_start_db" "bool fbsql_start_db(string $database_name [, resource $link_identifier = '' [, string $database_options = '']])" "fbsql_stop_db" "bool fbsql_stop_db(string $database_name [, resource $link_identifier = ''])" "fbsql_warnings" "bool fbsql_warnings([bool $OnOff = ''])" "fclose" "bool fclose(resource $handle)" "fdf_add_doc_javascript" "bool fdf_add_doc_javascript(resource $fdf_document, string $script_name, string $script_code)" "fdf_add_template" "bool fdf_add_template(resource $fdf_document, int $newpage, string $filename, string $template, int $rename)" "fdf_enum_values" "bool fdf_enum_values(resource $fdf_document, callback $function [, mixed $userdata = ''])" "fdf_get_ap" "bool fdf_get_ap(resource $fdf_document, string $field, int $face, string $filename)" "fdf_remove_item" "bool fdf_remove_item(resource $fdf_document, string $fieldname, int $item)" "fdf_save" "bool fdf_save(resource $fdf_document [, string $filename = ''])" "fdf_set_ap" "bool fdf_set_ap(resource $fdf_document, string $field_name, int $face, string $filename, int $page_number)" "fdf_set_encoding" "bool fdf_set_encoding(resource $fdf_document, string $encoding)" "fdf_set_file" "bool fdf_set_file(resource $fdf_document, string $url [, string $target_frame = ''])" "fdf_set_flags" "bool fdf_set_flags(resource $fdf_document, string $fieldname, int $whichFlags, int $newFlags)" "fdf_set_javascript_action" "bool fdf_set_javascript_action(resource $fdf_document, string $fieldname, int $trigger, string $script)" "fdf_set_on_import_javascript" "bool fdf_set_on_import_javascript(resource $fdf_document, string $script, bool $before_data_import)" "fdf_set_opt" "bool fdf_set_opt(resource $fdf_document, string $fieldname, int $element, string $str1, string $str2)" "fdf_set_status" "bool fdf_set_status(resource $fdf_document, string $status)" "fdf_set_submit_form_action" "bool fdf_set_submit_form_action(resource $fdf_document, string $fieldname, int $trigger, string $script, int $flags)" "fdf_set_target_frame" "bool fdf_set_target_frame(resource $fdf_document, string $frame_name)" "fdf_set_value" "bool fdf_set_value(resource $fdf_document, string $fieldname, mixed $value [, int $isName = ''])" "fdf_set_version" "bool fdf_set_version(resource $fdf_document, string $version)" "feof" "bool feof(resource $handle)" "fflush" "bool fflush(resource $handle)" "filepro" "bool filepro(string $directory)" "file_exists" "bool file_exists(string $filename)" "filter_has_var" "bool filter_has_var(int $type, string $variable_name)" "finfo_close" "bool finfo_close(resource $finfo)" "finfo_set_flags" "bool finfo_set_flags(resource $finfo, int $options)" "flock" "bool flock(resource $handle, int $operation [, int $wouldblock = ''])" "fnmatch" "bool fnmatch(string $pattern, string $string [, int $flags = ''])" "ftp_alloc" "bool ftp_alloc(resource $ftp_stream, int $filesize [, string $result = ''])" "ftp_cdup" "bool ftp_cdup(resource $ftp_stream)" "ftp_chdir" "bool ftp_chdir(resource $ftp_stream, string $directory)" "ftp_delete" "bool ftp_delete(resource $ftp_stream, string $path)" "ftp_exec" "bool ftp_exec(resource $ftp_stream, string $command)" "ftp_fget" "bool ftp_fget(resource $ftp_stream, resource $handle, string $remote_file, int $mode [, int $resumepos = ''])" "ftp_fput" "bool ftp_fput(resource $ftp_stream, string $remote_file, resource $handle, int $mode [, int $startpos = ''])" "ftp_get" "bool ftp_get(resource $ftp_stream, string $local_file, string $remote_file, int $mode [, int $resumepos = ''])" "ftp_login" "bool ftp_login(resource $ftp_stream, string $username, string $password)" "ftp_pasv" "bool ftp_pasv(resource $ftp_stream, bool $pasv)" "ftp_put" "bool ftp_put(resource $ftp_stream, string $remote_file, string $local_file, int $mode [, int $startpos = ''])" "ftp_rename" "bool ftp_rename(resource $ftp_stream, string $oldname, string $newname)" "ftp_rmdir" "bool ftp_rmdir(resource $ftp_stream, string $directory)" "ftp_set_option" "bool ftp_set_option(resource $ftp_stream, int $option, mixed $value)" "ftp_site" "bool ftp_site(resource $ftp_stream, string $command)" "ftruncate" "bool ftruncate(resource $handle, int $size)" "function_exists" "bool function_exists(string $function_name)" "gc_enabled" "bool gc_enabled()" "geoip_db_avail" "bool geoip_db_avail(int $database)" "getmxrr" "bool getmxrr(string $hostname, array $mxhosts [, array $weight = ''])" "gmp_perfect_square" "bool gmp_perfect_square(resource $a)" "gmp_testbit" "bool gmp_testbit(resource $a, int $index)" "gnupg_adddecryptkey" "bool gnupg_adddecryptkey(resource $identifier, string $fingerprint, string $passphrase)" "gnupg_addencryptkey" "bool gnupg_addencryptkey(resource $identifier, string $fingerprint)" "gnupg_addsignkey" "bool gnupg_addsignkey(resource $identifier, string $fingerprint [, string $passphrase = ''])" "gnupg_cleardecryptkeys" "bool gnupg_cleardecryptkeys(resource $identifier)" "gnupg_clearencryptkeys" "bool gnupg_clearencryptkeys(resource $identifier)" "gnupg_clearsignkeys" "bool gnupg_clearsignkeys(resource $identifier)" "gnupg_setarmor" "bool gnupg_setarmor(resource $identifier, int $armor)" "gnupg_setsignmode" "bool gnupg_setsignmode(resource $identifier, int $signmode)" "gupnp_context_host_path" "bool gupnp_context_host_path(resource $context, string $local_path, string $server_path)" "gupnp_context_timeout_add" "bool gupnp_context_timeout_add(resource $context, int $timeout, mixed $callback [, mixed $arg = ''])" "gupnp_context_unhost_path" "bool gupnp_context_unhost_path(resource $context, string $server_path)" "gupnp_control_point_browse_start" "bool gupnp_control_point_browse_start(resource $cpoint)" "gupnp_control_point_browse_stop" "bool gupnp_control_point_browse_stop(resource $cpoint)" "gupnp_control_point_callback_set" "bool gupnp_control_point_callback_set(resource $cpoint, int $signal, mixed $callback [, mixed $arg = ''])" "gupnp_device_action_callback_set" "bool gupnp_device_action_callback_set(resource $root_device, int $signal, string $action_name, mixed $callback [, mixed $arg = ''])" "gupnp_root_device_get_available" "bool gupnp_root_device_get_available(resource $root_device)" "gupnp_root_device_set_available" "bool gupnp_root_device_set_available(resource $root_device, bool $available)" "gupnp_root_device_start" "bool gupnp_root_device_start(resource $root_device)" "gupnp_root_device_stop" "bool gupnp_root_device_stop(resource $root_device)" "gupnp_service_action_return" "bool gupnp_service_action_return(resource $action)" "gupnp_service_action_return_error" "bool gupnp_service_action_return_error(resource $action, int $error_code [, string $error_description = ''])" "gupnp_service_action_set" "bool gupnp_service_action_set(resource $action, string $name, int $type, mixed $value)" "gupnp_service_freeze_notify" "bool gupnp_service_freeze_notify(resource $service)" "gupnp_service_notify" "bool gupnp_service_notify(resource $service, string $name, int $type, mixed $value)" "gupnp_service_proxy_action_set" "bool gupnp_service_proxy_action_set(resource $proxy, string $action, string $name, mixed $value, int $type)" "gupnp_service_proxy_add_notify" "bool gupnp_service_proxy_add_notify(resource $proxy, string $value, int $type, mixed $callback [, mixed $arg = ''])" "gupnp_service_proxy_callback_set" "bool gupnp_service_proxy_callback_set(resource $proxy, int $signal, mixed $callback [, mixed $arg = ''])" "gupnp_service_proxy_get_subscribed" "bool gupnp_service_proxy_get_subscribed(resource $proxy)" "gupnp_service_proxy_remove_notify" "bool gupnp_service_proxy_remove_notify(resource $proxy, string $value)" "gupnp_service_proxy_set_subscribed" "bool gupnp_service_proxy_set_subscribed(resource $proxy, bool $subscribed)" "gupnp_service_thaw_notify" "bool gupnp_service_thaw_notify(resource $service)" "gzclose" "bool gzclose(resource $zp)" "gzrewind" "bool gzrewind(resource $zp)" "hash_update" "bool hash_update(resource $context, string $data)" "hash_update_file" "bool hash_update_file([resource $context = '', string $filename])" "headers_sent" "bool headers_sent([string $file = '' [, int $line = '']])" "http_cache_etag" "bool http_cache_etag([string $etag = ''])" "http_cache_last_modified" "bool http_cache_last_modified([int $timestamp_or_expires = ''])" "http_match_etag" "bool http_match_etag(string $etag [, bool $for_range = false])" "http_match_modified" "bool http_match_modified([int $timestamp = -1 [, bool $for_range = false]])" "http_match_request_header" "bool http_match_request_header(string $header, string $value [, bool $match_case = false])" "http_redirect" "bool http_redirect([string $url = '' [, array $params = '' [, bool $session = false [, int $status = '']]]])" "http_request_method_unregister" "bool http_request_method_unregister(mixed $method)" "http_send_content_disposition" "bool http_send_content_disposition(string $filename [, bool $inline = false])" "http_send_content_type" "bool http_send_content_type([string $content_type = \"application/x-octetstream\"])" "http_send_data" "bool http_send_data(string $data)" "http_send_file" "bool http_send_file(string $file)" "http_send_last_modified" "bool http_send_last_modified([int $timestamp = ''])" "http_send_status" "bool http_send_status(int $status)" "http_send_stream" "bool http_send_stream(resource $stream)" "hw_changeobject" "bool hw_changeobject(int $link, int $objid, array $attributes)" "hw_Close" "bool hw_Close(int $connection)" "hw_Deleteobject" "bool hw_Deleteobject(int $connection, int $object_to_delete)" "hw_Document_SetContent" "bool hw_Document_SetContent(int $hw_document, string $content)" "hw_EditText" "bool hw_EditText(int $connection, int $hw_document)" "hw_Free_Document" "bool hw_Free_Document(int $hw_document)" "hw_insertanchors" "bool hw_insertanchors(int $hwdoc, array $anchorecs, array $dest [, array $urlprefixes = ''])" "hw_Modifyobject" "bool hw_Modifyobject(int $connection, int $object_to_change, array $remove, array $add [, int $mode = ''])" "hw_Output_Document" "bool hw_Output_Document(int $hw_document)" "hw_Unlock" "bool hw_Unlock(int $connection, int $objectID)" "ibase_add_user" "bool ibase_add_user(resource $service_handle, string $user_name, string $password [, string $first_name = '' [, string $middle_name = '' [, string $last_name = '']]])" "ibase_blob_cancel" "bool ibase_blob_cancel(resource $blob_handle)" "ibase_blob_echo" "bool ibase_blob_echo(string $blob_id, resource $link_identifier)" "ibase_close" "bool ibase_close([resource $connection_id = ''])" "ibase_commit" "bool ibase_commit([resource $link_or_trans_identifier = ''])" "ibase_commit_ret" "bool ibase_commit_ret([resource $link_or_trans_identifier = ''])" "ibase_delete_user" "bool ibase_delete_user(resource $service_handle, string $user_name)" "ibase_drop_db" "bool ibase_drop_db([resource $connection = ''])" "ibase_free_event_handler" "bool ibase_free_event_handler(resource $event)" "ibase_free_query" "bool ibase_free_query(resource $query)" "ibase_free_result" "bool ibase_free_result(resource $result_identifier)" "ibase_maintain_db" "bool ibase_maintain_db(resource $service_handle, string $db, int $action [, int $argument = ''])" "ibase_modify_user" "bool ibase_modify_user(resource $service_handle, string $user_name, string $password [, string $first_name = '' [, string $middle_name = '' [, string $last_name = '']]])" "ibase_name_result" "bool ibase_name_result(resource $result, string $name)" "ibase_rollback" "bool ibase_rollback([resource $link_or_trans_identifier = ''])" "ibase_rollback_ret" "bool ibase_rollback_ret([resource $link_or_trans_identifier = ''])" "ibase_service_detach" "bool ibase_service_detach(resource $service_handle)" "ibase_timefmt" "bool ibase_timefmt(string $format [, int $columntype = ''])" "iconv_set_encoding" "bool iconv_set_encoding(string $type, string $charset)" "id3_remove_tag" "bool id3_remove_tag(string $filename [, int $version = ID3_V1_0])" "id3_set_tag" "bool id3_set_tag(string $filename, array $tag [, int $version = ID3_V1_0])" "ifxus_close_slob" "bool ifxus_close_slob(int $bid)" "ifxus_free_slob" "bool ifxus_free_slob(int $bid)" "ifx_blobinfile_mode" "bool ifx_blobinfile_mode(int $mode)" "ifx_byteasvarchar" "bool ifx_byteasvarchar(int $mode)" "ifx_close" "bool ifx_close([resource $link_identifier = ''])" "ifx_do" "bool ifx_do(resource $result_id)" "ifx_free_blob" "bool ifx_free_blob(int $bid)" "ifx_free_char" "bool ifx_free_char(int $bid)" "ifx_free_result" "bool ifx_free_result(resource $result_id)" "ifx_nullformat" "bool ifx_nullformat(int $mode)" "ifx_textasvarchar" "bool ifx_textasvarchar(int $mode)" "ifx_update_blob" "bool ifx_update_blob(int $bid, string $content)" "ifx_update_char" "bool ifx_update_char(int $bid, string $content)" "image2wbmp" "bool image2wbmp(resource $image [, string $filename = '' [, int $threshold = '']])" "imagealphablending" "bool imagealphablending(resource $image, bool $blendmode)" "imageantialias" "bool imageantialias(resource $image, bool $enabled)" "imagearc" "bool imagearc(resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color)" "imagechar" "bool imagechar(resource $image, int $font, int $x, int $y, string $c, int $color)" "imagecharup" "bool imagecharup(resource $image, int $font, int $x, int $y, string $c, int $color)" "imagecolordeallocate" "bool imagecolordeallocate(resource $image, int $color)" "imagecolormatch" "bool imagecolormatch(resource $image1, resource $image2)" "imageconvolution" "bool imageconvolution(resource $image, array $matrix, float $div, float $offset)" "imagecopy" "bool imagecopy(resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h)" "imagecopymerge" "bool imagecopymerge(resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct)" "imagecopymergegray" "bool imagecopymergegray(resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct)" "imagecopyresampled" "bool imagecopyresampled(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h)" "imagecopyresized" "bool imagecopyresized(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h)" "imagedashedline" "bool imagedashedline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)" "imagedestroy" "bool imagedestroy(resource $image)" "imageellipse" "bool imageellipse(resource $image, int $cx, int $cy, int $width, int $height, int $color)" "imagefill" "bool imagefill(resource $image, int $x, int $y, int $color)" "imagefilledarc" "bool imagefilledarc(resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color, int $style)" "imagefilledellipse" "bool imagefilledellipse(resource $image, int $cx, int $cy, int $width, int $height, int $color)" "imagefilledpolygon" "bool imagefilledpolygon(resource $image, array $points, int $num_points, int $color)" "imagefilledrectangle" "bool imagefilledrectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)" "imagefilltoborder" "bool imagefilltoborder(resource $image, int $x, int $y, int $border, int $color)" "imagefilter" "bool imagefilter(resource $image, int $filtertype [, int $arg1 = '' [, int $arg2 = '' [, int $arg3 = '' [, int $arg4 = '']]]])" "imagegammacorrect" "bool imagegammacorrect(resource $image, float $inputgamma, float $outputgamma)" "imagegd" "bool imagegd(resource $image [, string $filename = ''])" "imagegd2" "bool imagegd2(resource $image [, string $filename = '' [, int $chunk_size = '' [, int $type = '']]])" "imagegif" "bool imagegif(resource $image [, string $filename = ''])" "imageistruecolor" "bool imageistruecolor(resource $image)" "imagejpeg" "bool imagejpeg(resource $image [, string $filename = '' [, int $quality = '']])" "imagelayereffect" "bool imagelayereffect(resource $image, int $effect)" "imageline" "bool imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)" "imagepng" "bool imagepng(resource $image [, string $filename = '' [, int $quality = '' [, int $filters = '']]])" "imagepolygon" "bool imagepolygon(resource $image, array $points, int $num_points, int $color)" "imagepsencodefont" "bool imagepsencodefont(resource $font_index, string $encodingfile)" "imagepsextendfont" "bool imagepsextendfont(resource $font_index, float $extend)" "imagepsfreefont" "bool imagepsfreefont(resource $font_index)" "imagepsslantfont" "bool imagepsslantfont(resource $font_index, float $slant)" "imagerectangle" "bool imagerectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)" "imagesavealpha" "bool imagesavealpha(resource $image, bool $saveflag)" "imagesetbrush" "bool imagesetbrush(resource $image, resource $brush)" "imagesetpixel" "bool imagesetpixel(resource $image, int $x, int $y, int $color)" "imagesetstyle" "bool imagesetstyle(resource $image, array $style)" "imagesetthickness" "bool imagesetthickness(resource $image, int $thickness)" "imagesettile" "bool imagesettile(resource $image, resource $tile)" "imagestring" "bool imagestring(resource $image, int $font, int $x, int $y, string $string, int $color)" "imagestringup" "bool imagestringup(resource $image, int $font, int $x, int $y, string $string, int $color)" "imagetruecolortopalette" "bool imagetruecolortopalette(resource $image, bool $dither, int $ncolors)" "imagewbmp" "bool imagewbmp(resource $image [, string $filename = '' [, int $foreground = '']])" "imagexbm" "bool imagexbm(resource $image, string $filename [, int $foreground = ''])" "imap_append" "bool imap_append(resource $imap_stream, string $mailbox, string $message [, string $options = '' [, string $internal_date = '']])" "imap_clearflag_full" "bool imap_clearflag_full(resource $imap_stream, string $sequence, string $flag [, int $options = ''])" "imap_close" "bool imap_close(resource $imap_stream [, int $flag = ''])" "imap_createmailbox" "bool imap_createmailbox(resource $imap_stream, string $mailbox)" "imap_delete" "bool imap_delete(resource $imap_stream, int $msg_number [, int $options = ''])" "imap_deletemailbox" "bool imap_deletemailbox(resource $imap_stream, string $mailbox)" "imap_expunge" "bool imap_expunge(resource $imap_stream)" "imap_gc" "bool imap_gc(resource $imap_stream, int $caches)" "imap_mail" "bool imap_mail(string $to, string $subject, string $message [, string $additional_headers = '' [, string $cc = '' [, string $bcc = '' [, string $rpath = '']]]])" "imap_mail_copy" "bool imap_mail_copy(resource $imap_stream, string $msglist, string $mailbox [, int $options = ''])" "imap_mail_move" "bool imap_mail_move(resource $imap_stream, string $msglist, string $mailbox [, int $options = ''])" "imap_ping" "bool imap_ping(resource $imap_stream)" "imap_renamemailbox" "bool imap_renamemailbox(resource $imap_stream, string $old_mbox, string $new_mbox)" "imap_reopen" "bool imap_reopen(resource $imap_stream, string $mailbox [, int $options = '' [, int $n_retries = '']])" "imap_savebody" "bool imap_savebody(resource $imap_stream, mixed $file, int $msg_number [, string $part_number = \"\" [, int $options = '']])" "imap_setacl" "bool imap_setacl(resource $imap_stream, string $mailbox, string $id, string $rights)" "imap_setflag_full" "bool imap_setflag_full(resource $imap_stream, string $sequence, string $flag [, int $options = NIL])" "imap_set_quota" "bool imap_set_quota(resource $imap_stream, string $quota_root, int $quota_limit)" "imap_subscribe" "bool imap_subscribe(resource $imap_stream, string $mailbox)" "imap_undelete" "bool imap_undelete(resource $imap_stream, int $msg_number [, int $flags = ''])" "imap_unsubscribe" "bool imap_unsubscribe(resource $imap_stream, string $mailbox)" "import_request_variables" "bool import_request_variables(string $types [, string $prefix = ''])" "ingres_autocommit" "bool ingres_autocommit(resource $link)" "ingres_autocommit_state" "bool ingres_autocommit_state(resource $link)" "ingres_close" "bool ingres_close(resource $link)" "ingres_commit" "bool ingres_commit(resource $link)" "ingres_execute" "bool ingres_execute(resource $result [, array $params = '' [, string $types = '']])" "ingres_field_nullable" "bool ingres_field_nullable(resource $result, int $index)" "ingres_free_result" "bool ingres_free_result(resource $result)" "ingres_next_error" "bool ingres_next_error([resource $link = ''])" "ingres_result_seek" "bool ingres_result_seek(resource $result, int $position)" "ingres_rollback" "bool ingres_rollback(resource $link)" "ingres_set_environment" "bool ingres_set_environment(resource $link, array $options)" "inotify_rm_watch" "bool inotify_rm_watch(resource $inotify_instance, int $watch_descriptor)" "interface_exists" "bool interface_exists(string $interface_name [, bool $autoload = true])" "intl_is_failure" "bool intl_is_failure(int $error_code)" "in_array" "bool in_array(mixed $needle, array $haystack [, bool $strict = ''])" "isset" "bool isset([mixed $var = '' [, $... = '']])" "is_a" "bool is_a(object $object, string $class_name)" "is_array" "bool is_array(mixed $var)" "is_bool" "bool is_bool(mixed $var)" "is_callable" "bool is_callable(callback $name [, bool $syntax_only = false [, string $callable_name = '']])" "is_dir" "bool is_dir(string $filename)" "is_executable" "bool is_executable(string $filename)" "is_file" "bool is_file(string $filename)" "is_finite" "bool is_finite(float $val)" "is_float" "bool is_float(mixed $var)" "is_infinite" "bool is_infinite(float $val)" "is_int" "bool is_int(mixed $var)" "is_link" "bool is_link(string $filename)" "is_nan" "bool is_nan(float $val)" "is_null" "bool is_null(mixed $var)" "is_numeric" "bool is_numeric(mixed $var)" "is_object" "bool is_object(mixed $var)" "is_readable" "bool is_readable(string $filename)" "is_resource" "bool is_resource(mixed $var)" "is_soap_fault" "bool is_soap_fault(mixed $object)" "is_string" "bool is_string(mixed $var)" "is_subclass_of" "bool is_subclass_of(mixed $object, string $class_name)" "is_uploaded_file" "bool is_uploaded_file(string $filename)" "is_writable" "bool is_writable(string $filename)" "jpeg2wbmp" "bool jpeg2wbmp(string $jpegname, string $wbmpname, int $dest_height, int $dest_width, int $threshold)" "kadm5_chpass_principal" "bool kadm5_chpass_principal(resource $handle, string $principal, string $password)" "kadm5_create_principal" "bool kadm5_create_principal(resource $handle, string $principal [, string $password = '' [, array $options = '']])" "kadm5_delete_principal" "bool kadm5_delete_principal(resource $handle, string $principal)" "kadm5_destroy" "bool kadm5_destroy(resource $handle)" "kadm5_flush" "bool kadm5_flush(resource $handle)" "kadm5_modify_principal" "bool kadm5_modify_principal(resource $handle, string $principal, array $options)" "krsort" "bool krsort(array $array [, int $sort_flags = SORT_REGULAR])" "ksort" "bool ksort(array $array [, int $sort_flags = SORT_REGULAR])" "lchgrp" "bool lchgrp(string $filename, mixed $group)" "lchown" "bool lchown(string $filename, mixed $user)" "ldap_add" "bool ldap_add(resource $link_identifier, string $dn, array $entry)" "ldap_bind" "bool ldap_bind(resource $link_identifier [, string $bind_rdn = '' [, string $bind_password = '']])" "ldap_delete" "bool ldap_delete(resource $link_identifier, string $dn)" "ldap_free_result" "bool ldap_free_result(resource $result_identifier)" "ldap_get_option" "bool ldap_get_option(resource $link_identifier, int $option, mixed $retval)" "ldap_modify" "bool ldap_modify(resource $link_identifier, string $dn, array $entry)" "ldap_mod_add" "bool ldap_mod_add(resource $link_identifier, string $dn, array $entry)" "ldap_mod_del" "bool ldap_mod_del(resource $link_identifier, string $dn, array $entry)" "ldap_mod_replace" "bool ldap_mod_replace(resource $link_identifier, string $dn, array $entry)" "ldap_parse_reference" "bool ldap_parse_reference(resource $link, resource $entry, array $referrals)" "ldap_parse_result" "bool ldap_parse_result(resource $link, resource $result, int $errcode [, string $matcheddn = '' [, string $errmsg = '' [, array $referrals = '']]])" "ldap_rename" "bool ldap_rename(resource $link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn)" "ldap_sasl_bind" "bool ldap_sasl_bind(resource $link [, string $binddn = '' [, string $password = '' [, string $sasl_mech = '' [, string $sasl_realm = '' [, string $sasl_authc_id = '' [, string $sasl_authz_id = '' [, string $props = '']]]]]]])" "ldap_set_option" "bool ldap_set_option(resource $link_identifier, int $option, mixed $newval)" "ldap_set_rebind_proc" "bool ldap_set_rebind_proc(resource $link, callback $callback)" "ldap_sort" "bool ldap_sort(resource $link, resource $result, string $sortfilter)" "ldap_start_tls" "bool ldap_start_tls(resource $link)" "ldap_unbind" "bool ldap_unbind(resource $link_identifier)" "libxml_disable_entity_loader" "bool libxml_disable_entity_loader([bool $disable = true])" "libxml_use_internal_errors" "bool libxml_use_internal_errors([bool $use_errors = false])" "link" "bool link(string $target, string $link)" "locale_filter_matches" "bool locale_filter_matches(string $langtag, string $locale [, bool $canonicalize = false])" "locale_set_default" "bool locale_set_default(string $locale)" "mail" "bool mail(string $to, string $subject, string $message [, string $additional_headers = '' [, string $additional_parameters = '']])" "mailparse_msg_free" "bool mailparse_msg_free(resource $mimemail)" "mailparse_msg_parse" "bool mailparse_msg_parse(resource $mimemail, string $data)" "mailparse_stream_encode" "bool mailparse_stream_encode(resource $sourcefp, resource $destfp, string $encoding)" "maxdb_autocommit" "bool maxdb_autocommit(resource $link, bool $mode)" "maxdb_change_user" "bool maxdb_change_user(resource $link, string $user, string $password, string $database)" "maxdb_close" "bool maxdb_close(resource $link)" "maxdb_commit" "bool maxdb_commit(resource $link)" "maxdb_data_seek" "bool maxdb_data_seek(resource $result, int $offset)" "maxdb_disable_rpl_parse" "bool maxdb_disable_rpl_parse(resource $link)" "maxdb_dump_debug_info" "bool maxdb_dump_debug_info(resource $link)" "maxdb_enable_reads_from_master" "bool maxdb_enable_reads_from_master(resource $link)" "maxdb_enable_rpl_parse" "bool maxdb_enable_rpl_parse(resource $link)" "maxdb_field_seek" "bool maxdb_field_seek(resource $result, int $fieldnr)" "maxdb_kill" "bool maxdb_kill(resource $link, int $processid)" "maxdb_master_query" "bool maxdb_master_query(resource $link, string $query)" "maxdb_more_results" "bool maxdb_more_results(resource $link)" "maxdb_multi_query" "bool maxdb_multi_query(resource $link, string $query)" "maxdb_next_result" "bool maxdb_next_result(resource $link)" "maxdb_options" "bool maxdb_options(resource $link, int $option, mixed $value)" "maxdb_ping" "bool maxdb_ping(resource $link)" "maxdb_real_connect" "bool maxdb_real_connect(resource $link [, string $hostname = '' [, string $username = '' [, string $passwd = '' [, string $dbname = '' [, int $port = '' [, string $socket = '']]]]]])" "maxdb_real_query" "bool maxdb_real_query(resource $link, string $query)" "maxdb_report" "bool maxdb_report(int $flags)" "maxdb_rollback" "bool maxdb_rollback(resource $link)" "maxdb_rpl_probe" "bool maxdb_rpl_probe(resource $link)" "maxdb_select_db" "bool maxdb_select_db(resource $link, string $dbname)" "maxdb_send_query" "bool maxdb_send_query(resource $link, string $query)" "maxdb_server_init" "bool maxdb_server_init([array $server = '' [, array $groups = '']])" "maxdb_ssl_set" "bool maxdb_ssl_set(resource $link, string $key, string $cert, string $ca, string $capath, string $cipher)" "maxdb_stmt_bind_param" "bool maxdb_stmt_bind_param(resource $stmt, string $types, mixed $var1 [, mixed $... = '', array $var])" "maxdb_stmt_bind_result" "bool maxdb_stmt_bind_result(resource $stmt, mixed $var1 [, mixed $... = ''])" "maxdb_stmt_close" "bool maxdb_stmt_close(resource $stmt)" "maxdb_stmt_close_long_data" "bool maxdb_stmt_close_long_data(resource $stmt, int $param_nr)" "maxdb_stmt_data_seek" "bool maxdb_stmt_data_seek(resource $statement, int $offset)" "maxdb_stmt_execute" "bool maxdb_stmt_execute(resource $stmt)" "maxdb_stmt_fetch" "bool maxdb_stmt_fetch(resource $stmt)" "maxdb_stmt_reset" "bool maxdb_stmt_reset(resource $stmt)" "maxdb_stmt_send_long_data" "bool maxdb_stmt_send_long_data(resource $stmt, int $param_nr, string $data)" "maxdb_thread_safe" "bool maxdb_thread_safe()" "mb_check_encoding" "bool mb_check_encoding([string $var = '' [, string $encoding = mb_internal_encoding()]])" "mb_ereg_match" "bool mb_ereg_match(string $pattern, string $string [, string $option = \"msr\"])" "mb_ereg_search" "bool mb_ereg_search([string $pattern = '' [, string $option = \"ms\"]])" "mb_ereg_search_init" "bool mb_ereg_search_init(string $string [, string $pattern = '' [, string $option = \"msr\"]])" "mb_ereg_search_setpos" "bool mb_ereg_search_setpos(int $position)" "mb_send_mail" "bool mb_send_mail(string $to, string $subject, string $message [, string $additional_headers = '' [, string $additional_parameter = '']])" "mcrypt_enc_is_block_algorithm" "bool mcrypt_enc_is_block_algorithm(resource $td)" "mcrypt_enc_is_block_algorithm_mode" "bool mcrypt_enc_is_block_algorithm_mode(resource $td)" "mcrypt_enc_is_block_mode" "bool mcrypt_enc_is_block_mode(resource $td)" "mcrypt_generic_deinit" "bool mcrypt_generic_deinit(resource $td)" "mcrypt_generic_end" "bool mcrypt_generic_end(resource $td)" "mcrypt_module_close" "bool mcrypt_module_close(resource $td)" "mcrypt_module_is_block_algorithm" "bool mcrypt_module_is_block_algorithm(string $algorithm [, string $lib_dir = ''])" "mcrypt_module_is_block_algorithm_mode" "bool mcrypt_module_is_block_algorithm_mode(string $mode [, string $lib_dir = ''])" "mcrypt_module_is_block_mode" "bool mcrypt_module_is_block_mode(string $mode [, string $lib_dir = ''])" "mcrypt_module_self_test" "bool mcrypt_module_self_test(string $algorithm [, string $lib_dir = ''])" "memcache_debug" "bool memcache_debug(bool $on_off)" "method_exists" "bool method_exists(mixed $object, string $method_name)" "mkdir" "bool mkdir(string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context = '']]])" "move_uploaded_file" "bool move_uploaded_file(string $filename, string $destination)" "msession_connect" "bool msession_connect(string $host, string $port)" "msession_create" "bool msession_create(string $session [, string $classname = '' [, string $data = '']])" "msession_destroy" "bool msession_destroy(string $name)" "msession_set" "bool msession_set(string $session, string $name, string $value)" "msession_set_data" "bool msession_set_data(string $session, string $value)" "msgfmt_set_pattern" "bool msgfmt_set_pattern(string $pattern, MessageFormatter $fmt)" "msg_queue_exists" "bool msg_queue_exists(int $key)" "msg_receive" "bool msg_receive(resource $queue, int $desiredmsgtype, int $msgtype, int $maxsize, mixed $message [, bool $unserialize = true [, int $flags = '' [, int $errorcode = '']]])" "msg_remove_queue" "bool msg_remove_queue(resource $queue)" "msg_send" "bool msg_send(resource $queue, int $msgtype, mixed $message [, bool $serialize = '' [, bool $blocking = '' [, int $errorcode = '']]])" "msg_set_queue" "bool msg_set_queue(resource $queue, array $data)" "msql_close" "bool msql_close([resource $link_identifier = ''])" "msql_create_db" "bool msql_create_db(string $database_name [, resource $link_identifier = ''])" "msql_data_seek" "bool msql_data_seek(resource $result, int $row_number)" "msql_drop_db" "bool msql_drop_db(string $database_name [, resource $link_identifier = ''])" "msql_field_seek" "bool msql_field_seek(resource $result, int $field_offset)" "msql_free_result" "bool msql_free_result(resource $result)" "msql_select_db" "bool msql_select_db(string $database_name [, resource $link_identifier = ''])" "mssql_bind" "bool mssql_bind(resource $stmt, string $param_name, mixed $var, int $type [, bool $is_output = false [, bool $is_null = false [, int $maxlen = -1]]])" "mssql_close" "bool mssql_close([resource $link_identifier = ''])" "mssql_data_seek" "bool mssql_data_seek(resource $result_identifier, int $row_number)" "mssql_field_seek" "bool mssql_field_seek(resource $result, int $field_offset)" "mssql_free_result" "bool mssql_free_result(resource $result)" "mssql_free_statement" "bool mssql_free_statement(resource $stmt)" "mssql_next_result" "bool mssql_next_result(resource $result_id)" "mssql_select_db" "bool mssql_select_db(string $database_name [, resource $link_identifier = ''])" "mysqli_autocommit" "bool mysqli_autocommit(bool $mode, mysqli $link)" "mysqli_change_user" "bool mysqli_change_user(string $user, string $password, string $database, mysqli $link)" "mysqli_close" "bool mysqli_close(mysqli $link)" "mysqli_commit" "bool mysqli_commit(mysqli $link)" "mysqli_data_seek" "bool mysqli_data_seek(int $offset, mysqli_result $result)" "mysqli_debug" "bool mysqli_debug(string $message)" "mysqli_disable_reads_from_master" "bool mysqli_disable_reads_from_master(mysqli $link)" "mysqli_disable_rpl_parse" "bool mysqli_disable_rpl_parse(mysqli $link)" "mysqli_dump_debug_info" "bool mysqli_dump_debug_info(mysqli $link)" "mysqli_embedded_server_start" "bool mysqli_embedded_server_start(bool $start, array $arguments, array $groups)" "mysqli_enable_reads_from_master" "bool mysqli_enable_reads_from_master(mysqli $link)" "mysqli_enable_rpl_parse" "bool mysqli_enable_rpl_parse(mysqli $link)" "mysqli_field_seek" "bool mysqli_field_seek(int $fieldnr, mysqli_result $result)" "mysqli_kill" "bool mysqli_kill(int $processid, mysqli $link)" "mysqli_master_query" "bool mysqli_master_query(mysqli $link, string $query)" "mysqli_more_results" "bool mysqli_more_results(mysqli $link)" "mysqli_multi_query" "bool mysqli_multi_query(string $query, mysqli $link)" "mysqli_next_result" "bool mysqli_next_result(mysqli $link)" "mysqli_options" "bool mysqli_options(int $option, mixed $value, mysqli $link)" "mysqli_ping" "bool mysqli_ping(mysqli $link)" "mysqli_real_connect" "bool mysqli_real_connect([string $host = '' [, string $username = '' [, string $passwd = '' [, string $dbname = '' [, int $port = '' [, string $socket = '' [, int $flags = '', mysqli $link]]]]]]])" "mysqli_real_query" "bool mysqli_real_query(string $query, mysqli $link)" "mysqli_report" "bool mysqli_report(int $flags)" "mysqli_rollback" "bool mysqli_rollback(mysqli $link)" "mysqli_rpl_probe" "bool mysqli_rpl_probe(mysqli $link)" "mysqli_select_db" "bool mysqli_select_db(string $dbname, mysqli $link)" "mysqli_send_query" "bool mysqli_send_query(string $query, mysqli $link)" "mysqli_set_charset" "bool mysqli_set_charset(string $charset, mysqli $link)" "mysqli_set_local_infile_handler" "bool mysqli_set_local_infile_handler(mysqli $link, callback $read_func)" "mysqli_slave_query" "bool mysqli_slave_query(mysqli $link, string $query)" "mysqli_ssl_set" "bool mysqli_ssl_set(string $key, string $cert, string $ca, string $capath, string $cipher, mysqli $link)" "mysqli_stmt_attr_set" "bool mysqli_stmt_attr_set(int $attr, int $mode, mysqli_stmt $stmt)" "mysqli_stmt_bind_param" "bool mysqli_stmt_bind_param(string $types, mixed $var1 [, mixed $... = '', mysqli_stmt $stmt])" "mysqli_stmt_bind_result" "bool mysqli_stmt_bind_result(mixed $var1 [, mixed $... = '', mysqli_stmt $stmt])" "mysqli_stmt_close" "bool mysqli_stmt_close(mysqli_stmt $stmt)" "mysqli_stmt_execute" "bool mysqli_stmt_execute(mysqli_stmt $stmt)" "mysqli_stmt_fetch" "bool mysqli_stmt_fetch(mysqli_stmt $stmt)" "mysqli_stmt_get_result" "bool mysqli_stmt_get_result(mysqli_stmt $stmt)" "mysqli_stmt_prepare" "bool mysqli_stmt_prepare(string $query, mysqli_stmt $stmt)" "mysqli_stmt_reset" "bool mysqli_stmt_reset(mysqli_stmt $stmt)" "mysqli_stmt_send_long_data" "bool mysqli_stmt_send_long_data(int $param_nr, string $data, mysqli_stmt $stmt)" "mysqli_stmt_store_result" "bool mysqli_stmt_store_result(mysqli_stmt $stmt)" "mysqli_thread_safe" "bool mysqli_thread_safe()" "mysqlnd_ms_set_user_pick_server" "bool mysqlnd_ms_set_user_pick_server(string $function)" "mysqlnd_qc_change_handler" "bool mysqlnd_qc_change_handler(mixed $handler)" "mysqlnd_qc_clear_cache" "bool mysqlnd_qc_clear_cache()" "mysqlnd_qc_set_user_handlers" "bool mysqlnd_qc_set_user_handlers(string $get_hash, string $find_query_in_cache, string $return_to_cache, string $add_query_to_cache_if_not_exists, string $query_is_select, string $update_query_run_time_stats, string $get_stats, string $clear_cache)" "mysql_close" "bool mysql_close([resource $link_identifier = ''])" "mysql_create_db" "bool mysql_create_db(string $database_name [, resource $link_identifier = ''])" "mysql_data_seek" "bool mysql_data_seek(resource $result, int $row_number)" "mysql_drop_db" "bool mysql_drop_db(string $database_name [, resource $link_identifier = ''])" "mysql_field_seek" "bool mysql_field_seek(resource $result, int $field_offset)" "mysql_free_result" "bool mysql_free_result(resource $result)" "mysql_ping" "bool mysql_ping([resource $link_identifier = ''])" "mysql_select_db" "bool mysql_select_db(string $database_name [, resource $link_identifier = ''])" "mysql_set_charset" "bool mysql_set_charset(string $charset [, resource $link_identifier = ''])" "m_deletetrans" "bool m_deletetrans(resource $conn, int $identifier)" "m_destroyconn" "bool m_destroyconn(resource $conn)" "m_maxconntimeout" "bool m_maxconntimeout(resource $conn, int $secs)" "m_verifyconnection" "bool m_verifyconnection(resource $conn, int $tf)" "m_verifysslcert" "bool m_verifysslcert(resource $conn, int $tf)" "natcasesort" "bool natcasesort(array $array)" "natsort" "bool natsort(array $array)" "ncurses_can_change_color" "bool ncurses_can_change_color()" "ncurses_cbreak" "bool ncurses_cbreak()" "ncurses_clear" "bool ncurses_clear()" "ncurses_clrtobot" "bool ncurses_clrtobot()" "ncurses_clrtoeol" "bool ncurses_clrtoeol()" "ncurses_def_prog_mode" "bool ncurses_def_prog_mode()" "ncurses_def_shell_mode" "bool ncurses_def_shell_mode()" "ncurses_delch" "bool ncurses_delch()" "ncurses_deleteln" "bool ncurses_deleteln()" "ncurses_delwin" "bool ncurses_delwin(resource $window)" "ncurses_del_panel" "bool ncurses_del_panel(resource $panel)" "ncurses_doupdate" "bool ncurses_doupdate()" "ncurses_echo" "bool ncurses_echo()" "ncurses_erase" "bool ncurses_erase()" "ncurses_flash" "bool ncurses_flash()" "ncurses_flushinp" "bool ncurses_flushinp()" "ncurses_getmouse" "bool ncurses_getmouse(array $mevent)" "ncurses_has_colors" "bool ncurses_has_colors()" "ncurses_has_ic" "bool ncurses_has_ic()" "ncurses_has_il" "bool ncurses_has_il()" "ncurses_isendwin" "bool ncurses_isendwin()" "ncurses_mouse_trafo" "bool ncurses_mouse_trafo(int $y, int $x, bool $toscreen)" "ncurses_nl" "bool ncurses_nl()" "ncurses_nocbreak" "bool ncurses_nocbreak()" "ncurses_noecho" "bool ncurses_noecho()" "ncurses_nonl" "bool ncurses_nonl()" "ncurses_noraw" "bool ncurses_noraw()" "ncurses_raw" "bool ncurses_raw()" "ncurses_resetty" "bool ncurses_resetty()" "ncurses_savetty" "bool ncurses_savetty()" "ncurses_slk_clear" "bool ncurses_slk_clear()" "ncurses_slk_init" "bool ncurses_slk_init(int $format)" "ncurses_slk_noutrefresh" "bool ncurses_slk_noutrefresh()" "ncurses_slk_set" "bool ncurses_slk_set(int $labelnr, string $label, int $format)" "ncurses_termattrs" "bool ncurses_termattrs()" "ncurses_ungetmouse" "bool ncurses_ungetmouse(array $mevent)" "ncurses_use_default_colors" "bool ncurses_use_default_colors()" "ncurses_wmouse_trafo" "bool ncurses_wmouse_trafo(resource $window, int $y, int $x, bool $toscreen)" "notes_copy_db" "bool notes_copy_db(string $from_database_name, string $to_database_name)" "notes_create_db" "bool notes_create_db(string $database_name)" "notes_create_note" "bool notes_create_note(string $database_name, string $form_name)" "notes_drop_db" "bool notes_drop_db(string $database_name)" "notes_list_msgs" "bool notes_list_msgs(string $db)" "notes_mark_read" "bool notes_mark_read(string $database_name, string $user_name, string $note_id)" "notes_mark_unread" "bool notes_mark_unread(string $database_name, string $user_name, string $note_id)" "notes_nav_create" "bool notes_nav_create(string $database_name, string $name)" "nsapi_virtual" "bool nsapi_virtual(string $uri)" "numfmt_set_attribute" "bool numfmt_set_attribute(int $attr, int $value, NumberFormatter $fmt)" "numfmt_set_pattern" "bool numfmt_set_pattern(string $pattern, NumberFormatter $fmt)" "numfmt_set_symbol" "bool numfmt_set_symbol(int $attr, string $value, NumberFormatter $fmt)" "numfmt_set_text_attribute" "bool numfmt_set_text_attribute(int $attr, string $value, NumberFormatter $fmt)" "ob_end_clean" "bool ob_end_clean()" "ob_end_flush" "bool ob_end_flush()" "ob_start" "bool ob_start([callback $output_callback = '' [, int $chunk_size = '' [, bool $erase = '']]])" "oci_bind_array_by_name" "bool oci_bind_array_by_name(resource $statement, string $name, array $var_array, int $max_table_length [, int $max_item_length = -1 [, int $type = SQLT_AFC]])" "oci_bind_by_name" "bool oci_bind_by_name(resource $statement, string $bv_name, mixed $variable [, int $maxlength = -1 [, int $type = SQLT_CHR]])" "oci_cancel" "bool oci_cancel(resource $statement)" "oci_close" "bool oci_close(resource $connection)" "oci_commit" "bool oci_commit(resource $connection)" "oci_define_by_name" "bool oci_define_by_name(resource $statement, string $column_name, mixed $variable [, int $type = SQLT_CHR])" "oci_execute" "bool oci_execute(resource $statement [, int $mode = OCI_COMMIT_ON_SUCCESS])" "oci_fetch" "bool oci_fetch(resource $statement)" "oci_field_is_null" "bool oci_field_is_null(resource $statement, mixed $field)" "oci_free_statement" "bool oci_free_statement(resource $statement)" "oci_lob_copy" "bool oci_lob_copy(OCI-Lob $lob_to, OCI-Lob $lob_from [, int $length = ''])" "oci_lob_is_equal" "bool oci_lob_is_equal(OCI-Lob $lob1, OCI-Lob $lob2)" "oci_rollback" "bool oci_rollback(resource $connection)" "oci_set_action" "bool oci_set_action(resource $connection, string $action_name)" "oci_set_client_identifier" "bool oci_set_client_identifier(resource $connection, string $client_identifier)" "oci_set_client_info" "bool oci_set_client_info(resource $connection, string $client_info)" "oci_set_edition" "bool oci_set_edition(string $edition)" "oci_set_module_name" "bool oci_set_module_name(resource $connection, string $module_name)" "oci_set_prefetch" "bool oci_set_prefetch(resource $statement, int $rows)" "odbc_binmode" "bool odbc_binmode(resource $result_id, int $mode)" "odbc_commit" "bool odbc_commit(resource $connection_id)" "odbc_execute" "bool odbc_execute(resource $result_id [, array $parameters_array = ''])" "odbc_fetch_row" "bool odbc_fetch_row(resource $result_id [, int $row_number = ''])" "odbc_free_result" "bool odbc_free_result(resource $result_id)" "odbc_longreadlen" "bool odbc_longreadlen(resource $result_id, int $length)" "odbc_next_result" "bool odbc_next_result(resource $result_id)" "odbc_rollback" "bool odbc_rollback(resource $connection_id)" "odbc_setoption" "bool odbc_setoption(resource $id, int $function, int $option, int $param)" "openal_buffer_data" "bool openal_buffer_data(resource $buffer, int $format, string $data, int $freq)" "openal_buffer_destroy" "bool openal_buffer_destroy(resource $buffer)" "openal_buffer_loadwav" "bool openal_buffer_loadwav(resource $buffer, string $wavfile)" "openal_context_current" "bool openal_context_current(resource $context)" "openal_context_destroy" "bool openal_context_destroy(resource $context)" "openal_context_process" "bool openal_context_process(resource $context)" "openal_context_suspend" "bool openal_context_suspend(resource $context)" "openal_device_close" "bool openal_device_close(resource $device)" "openal_listener_set" "bool openal_listener_set(int $property, mixed $setting)" "openal_source_destroy" "bool openal_source_destroy(resource $source)" "openal_source_pause" "bool openal_source_pause(resource $source)" "openal_source_play" "bool openal_source_play(resource $source)" "openal_source_rewind" "bool openal_source_rewind(resource $source)" "openal_source_set" "bool openal_source_set(resource $source, int $property, mixed $setting)" "openal_source_stop" "bool openal_source_stop(resource $source)" "openlog" "bool openlog(string $ident, int $option, int $facility)" "openssl_csr_export" "bool openssl_csr_export(resource $csr, string $out [, bool $notext = true])" "openssl_csr_export_to_file" "bool openssl_csr_export_to_file(resource $csr, string $outfilename [, bool $notext = true])" "openssl_open" "bool openssl_open(string $sealed_data, string $open_data, string $env_key, mixed $priv_key_id [, string $method = ''])" "openssl_pkcs7_decrypt" "bool openssl_pkcs7_decrypt(string $infilename, string $outfilename, mixed $recipcert [, mixed $recipkey = ''])" "openssl_pkcs7_encrypt" "bool openssl_pkcs7_encrypt(string $infile, string $outfile, mixed $recipcerts, array $headers [, int $flags = '' [, int $cipherid = OPENSSL_CIPHER_RC2_40]])" "openssl_pkcs7_sign" "bool openssl_pkcs7_sign(string $infilename, string $outfilename, mixed $signcert, mixed $privkey, array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts = '']])" "openssl_pkcs12_export" "bool openssl_pkcs12_export(mixed $x509, string $out, mixed $priv_key, string $pass [, array $args = ''])" "openssl_pkcs12_export_to_file" "bool openssl_pkcs12_export_to_file(mixed $x509, string $filename, mixed $priv_key, string $pass [, array $args = ''])" "openssl_pkcs12_read" "bool openssl_pkcs12_read(string $pkcs12, array $certs, string $pass)" "openssl_pkey_export" "bool openssl_pkey_export(mixed $key, string $out [, string $passphrase = '' [, array $configargs = '']])" "openssl_pkey_export_to_file" "bool openssl_pkey_export_to_file(mixed $key, string $outfilename [, string $passphrase = '' [, array $configargs = '']])" "openssl_private_decrypt" "bool openssl_private_decrypt(string $data, string $decrypted, mixed $key [, int $padding = OPENSSL_PKCS1_PADDING])" "openssl_private_encrypt" "bool openssl_private_encrypt(string $data, string $crypted, mixed $key [, int $padding = OPENSSL_PKCS1_PADDING])" "openssl_public_decrypt" "bool openssl_public_decrypt(string $data, string $decrypted, mixed $key [, int $padding = OPENSSL_PKCS1_PADDING])" "openssl_public_encrypt" "bool openssl_public_encrypt(string $data, string $crypted, mixed $key [, int $padding = OPENSSL_PKCS1_PADDING])" "openssl_sign" "bool openssl_sign(string $data, string $signature, mixed $priv_key_id [, int $signature_alg = OPENSSL_ALGO_SHA1])" "openssl_x509_check_private_key" "bool openssl_x509_check_private_key(mixed $cert, mixed $key)" "openssl_x509_export" "bool openssl_x509_export(mixed $x509, string $output [, bool $notext = ''])" "openssl_x509_export_to_file" "bool openssl_x509_export_to_file(mixed $x509, string $outfilename [, bool $notext = ''])" "output_add_rewrite_var" "bool output_add_rewrite_var(string $name, string $value)" "output_reset_rewrite_vars" "bool output_reset_rewrite_vars()" "override_function" "bool override_function(string $function_name, string $function_args, string $function_code)" "ovrimos_commit" "bool ovrimos_commit(int $connection_id)" "ovrimos_execute" "bool ovrimos_execute(int $result_id [, array $parameters_array = ''])" "ovrimos_fetch_into" "bool ovrimos_fetch_into(int $result_id, array $result_array [, string $how = '' [, int $rownumber = '']])" "ovrimos_fetch_row" "bool ovrimos_fetch_row(int $result_id [, int $how = '' [, int $row_number = '']])" "ovrimos_free_result" "bool ovrimos_free_result(int $result_id)" "ovrimos_longreadlen" "bool ovrimos_longreadlen(int $result_id, int $length)" "ovrimos_rollback" "bool ovrimos_rollback(int $connection_id)" "pcntl_setpriority" "bool pcntl_setpriority(int $priority [, int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS]])" "pcntl_signal" "bool pcntl_signal(int $signo, callback $handler [, bool $restart_syscalls = true])" "pcntl_signal_dispatch" "bool pcntl_signal_dispatch()" "pcntl_sigprocmask" "bool pcntl_sigprocmask(int $how, array $set [, array $oldset = ''])" "pcntl_wifexited" "bool pcntl_wifexited(int $status)" "pcntl_wifsignaled" "bool pcntl_wifsignaled(int $status)" "pcntl_wifstopped" "bool pcntl_wifstopped(int $status)" "PDF_activate_item" "bool PDF_activate_item(resource $pdfdoc, int $id)" "PDF_add_launchlink" "bool PDF_add_launchlink(resource $pdfdoc, float $llx, float $lly, float $urx, float $ury, string $filename)" "PDF_add_locallink" "bool PDF_add_locallink(resource $pdfdoc, float $lowerleftx, float $lowerlefty, float $upperrightx, float $upperrighty, int $page, string $dest)" "PDF_add_nameddest" "bool PDF_add_nameddest(resource $pdfdoc, string $name, string $optlist)" "PDF_add_note" "bool PDF_add_note(resource $pdfdoc, float $llx, float $lly, float $urx, float $ury, string $contents, string $title, string $icon, int $open)" "PDF_add_pdflink" "bool PDF_add_pdflink(resource $pdfdoc, float $bottom_left_x, float $bottom_left_y, float $up_right_x, float $up_right_y, string $filename, int $page, string $dest)" "PDF_add_thumbnail" "bool PDF_add_thumbnail(resource $pdfdoc, int $image)" "PDF_add_weblink" "bool PDF_add_weblink(resource $pdfdoc, float $lowerleftx, float $lowerlefty, float $upperrightx, float $upperrighty, string $url)" "PDF_arc" "bool PDF_arc(resource $p, float $x, float $y, float $r, float $alpha, float $beta)" "PDF_arcn" "bool PDF_arcn(resource $p, float $x, float $y, float $r, float $alpha, float $beta)" "PDF_attach_file" "bool PDF_attach_file(resource $pdfdoc, float $llx, float $lly, float $urx, float $ury, string $filename, string $description, string $author, string $mimetype, string $icon)" "PDF_begin_font" "bool PDF_begin_font(resource $pdfdoc, string $filename, float $a, float $b, float $c, float $d, float $e, float $f, string $optlist)" "PDF_begin_glyph" "bool PDF_begin_glyph(resource $pdfdoc, string $glyphname, float $wx, float $llx, float $lly, float $urx, float $ury)" "PDF_begin_layer" "bool PDF_begin_layer(resource $pdfdoc, int $layer)" "PDF_begin_page" "bool PDF_begin_page(resource $pdfdoc, float $width, float $height)" "PDF_begin_page_ext" "bool PDF_begin_page_ext(resource $pdfdoc, float $width, float $height, string $optlist)" "PDF_circle" "bool PDF_circle(resource $pdfdoc, float $x, float $y, float $r)" "PDF_clip" "bool PDF_clip(resource $p)" "PDF_close" "bool PDF_close(resource $p)" "PDF_closepath" "bool PDF_closepath(resource $p)" "PDF_closepath_fill_stroke" "bool PDF_closepath_fill_stroke(resource $p)" "PDF_closepath_stroke" "bool PDF_closepath_stroke(resource $p)" "PDF_close_image" "bool PDF_close_image(resource $p, int $image)" "PDF_close_pdi" "bool PDF_close_pdi(resource $p, int $doc)" "PDF_close_pdi_page" "bool PDF_close_pdi_page(resource $p, int $page)" "PDF_concat" "bool PDF_concat(resource $p, float $a, float $b, float $c, float $d, float $e, float $f)" "PDF_continue_text" "bool PDF_continue_text(resource $p, string $text)" "PDF_create_annotation" "bool PDF_create_annotation(resource $pdfdoc, float $llx, float $lly, float $urx, float $ury, string $type, string $optlist)" "PDF_create_field" "bool PDF_create_field(resource $pdfdoc, float $llx, float $lly, float $urx, float $ury, string $name, string $type, string $optlist)" "PDF_create_fieldgroup" "bool PDF_create_fieldgroup(resource $pdfdoc, string $name, string $optlist)" "PDF_create_pvf" "bool PDF_create_pvf(resource $pdfdoc, string $filename, string $data, string $optlist)" "PDF_curveto" "bool PDF_curveto(resource $p, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3)" "PDF_delete" "bool PDF_delete(resource $pdfdoc)" "PDF_delete_table" "bool PDF_delete_table(resource $pdfdoc, int $table, string $optlist)" "PDF_delete_textflow" "bool PDF_delete_textflow(resource $pdfdoc, int $textflow)" "PDF_encoding_set_char" "bool PDF_encoding_set_char(resource $pdfdoc, string $encoding, int $slot, string $glyphname, int $uv)" "PDF_endpath" "bool PDF_endpath(resource $p)" "PDF_end_document" "bool PDF_end_document(resource $pdfdoc, string $optlist)" "PDF_end_font" "bool PDF_end_font(resource $pdfdoc)" "PDF_end_glyph" "bool PDF_end_glyph(resource $pdfdoc)" "PDF_end_item" "bool PDF_end_item(resource $pdfdoc, int $id)" "PDF_end_layer" "bool PDF_end_layer(resource $pdfdoc)" "PDF_end_page" "bool PDF_end_page(resource $p)" "PDF_end_page_ext" "bool PDF_end_page_ext(resource $pdfdoc, string $optlist)" "PDF_end_pattern" "bool PDF_end_pattern(resource $p)" "PDF_end_template" "bool PDF_end_template(resource $p)" "PDF_fill" "bool PDF_fill(resource $p)" "PDF_fill_stroke" "bool PDF_fill_stroke(resource $p)" "PDF_fit_image" "bool PDF_fit_image(resource $pdfdoc, int $image, float $x, float $y, string $optlist)" "PDF_fit_pdi_page" "bool PDF_fit_pdi_page(resource $pdfdoc, int $page, float $x, float $y, string $optlist)" "PDF_fit_textline" "bool PDF_fit_textline(resource $pdfdoc, string $text, float $x, float $y, string $optlist)" "PDF_initgraphics" "bool PDF_initgraphics(resource $p)" "PDF_lineto" "bool PDF_lineto(resource $p, float $x, float $y)" "PDF_moveto" "bool PDF_moveto(resource $p, float $x, float $y)" "PDF_open_file" "bool PDF_open_file(resource $p, string $filename)" "PDF_place_image" "bool PDF_place_image(resource $pdfdoc, int $image, float $x, float $y, float $scale)" "PDF_place_pdi_page" "bool PDF_place_pdi_page(resource $pdfdoc, int $page, float $x, float $y, float $sx, float $sy)" "PDF_rect" "bool PDF_rect(resource $p, float $x, float $y, float $width, float $height)" "PDF_restore" "bool PDF_restore(resource $p)" "PDF_resume_page" "bool PDF_resume_page(resource $pdfdoc, string $optlist)" "PDF_rotate" "bool PDF_rotate(resource $p, float $phi)" "PDF_save" "bool PDF_save(resource $p)" "PDF_scale" "bool PDF_scale(resource $p, float $sx, float $sy)" "PDF_setcolor" "bool PDF_setcolor(resource $p, string $fstype, string $colorspace, float $c1, float $c2, float $c3, float $c4)" "PDF_setdash" "bool PDF_setdash(resource $pdfdoc, float $b, float $w)" "PDF_setdashpattern" "bool PDF_setdashpattern(resource $pdfdoc, string $optlist)" "PDF_setflat" "bool PDF_setflat(resource $pdfdoc, float $flatness)" "PDF_setfont" "bool PDF_setfont(resource $pdfdoc, int $font, float $fontsize)" "PDF_setgray" "bool PDF_setgray(resource $p, float $g)" "PDF_setgray_fill" "bool PDF_setgray_fill(resource $p, float $g)" "PDF_setgray_stroke" "bool PDF_setgray_stroke(resource $p, float $g)" "PDF_setlinecap" "bool PDF_setlinecap(resource $p, int $linecap)" "PDF_setlinejoin" "bool PDF_setlinejoin(resource $p, int $value)" "PDF_setlinewidth" "bool PDF_setlinewidth(resource $p, float $width)" "PDF_setmatrix" "bool PDF_setmatrix(resource $p, float $a, float $b, float $c, float $d, float $e, float $f)" "PDF_setmiterlimit" "bool PDF_setmiterlimit(resource $pdfdoc, float $miter)" "PDF_setrgbcolor" "bool PDF_setrgbcolor(resource $p, float $red, float $green, float $blue)" "PDF_setrgbcolor_fill" "bool PDF_setrgbcolor_fill(resource $p, float $red, float $green, float $blue)" "PDF_setrgbcolor_stroke" "bool PDF_setrgbcolor_stroke(resource $p, float $red, float $green, float $blue)" "PDF_set_border_color" "bool PDF_set_border_color(resource $p, float $red, float $green, float $blue)" "PDF_set_border_dash" "bool PDF_set_border_dash(resource $pdfdoc, float $black, float $white)" "PDF_set_border_style" "bool PDF_set_border_style(resource $pdfdoc, string $style, float $width)" "PDF_set_gstate" "bool PDF_set_gstate(resource $pdfdoc, int $gstate)" "PDF_set_info" "bool PDF_set_info(resource $p, string $key, string $value)" "PDF_set_layer_dependency" "bool PDF_set_layer_dependency(resource $pdfdoc, string $type, string $optlist)" "PDF_set_parameter" "bool PDF_set_parameter(resource $p, string $key, string $value)" "PDF_set_text_pos" "bool PDF_set_text_pos(resource $p, float $x, float $y)" "PDF_set_value" "bool PDF_set_value(resource $p, string $key, float $value)" "PDF_shfill" "bool PDF_shfill(resource $pdfdoc, int $shading)" "PDF_show" "bool PDF_show(resource $pdfdoc, string $text)" "PDF_show_xy" "bool PDF_show_xy(resource $p, string $text, float $x, float $y)" "PDF_skew" "bool PDF_skew(resource $p, float $alpha, float $beta)" "PDF_stroke" "bool PDF_stroke(resource $p)" "PDF_suspend_page" "bool PDF_suspend_page(resource $pdfdoc, string $optlist)" "PDF_translate" "bool PDF_translate(resource $p, float $tx, float $ty)" "pg_cancel_query" "bool pg_cancel_query(resource $connection)" "pg_close" "bool pg_close([resource $connection = ''])" "pg_connection_busy" "bool pg_connection_busy(resource $connection)" "pg_connection_reset" "bool pg_connection_reset(resource $connection)" "pg_copy_from" "bool pg_copy_from(resource $connection, string $table_name, array $rows [, string $delimiter = '' [, string $null_as = '']])" "pg_end_copy" "bool pg_end_copy([resource $connection = ''])" "pg_lo_close" "bool pg_lo_close(resource $large_object)" "pg_lo_export" "bool pg_lo_export([resource $connection = '', int $oid, string $pathname])" "pg_lo_seek" "bool pg_lo_seek(resource $large_object, int $offset [, int $whence = PGSQL_SEEK_CUR])" "pg_lo_unlink" "bool pg_lo_unlink(resource $connection, int $oid)" "pg_ping" "bool pg_ping([resource $connection = ''])" "pg_put_line" "bool pg_put_line([resource $connection = '', string $data])" "pg_result_seek" "bool pg_result_seek(resource $result, int $offset)" "pg_send_execute" "bool pg_send_execute(resource $connection, string $stmtname, array $params)" "pg_send_prepare" "bool pg_send_prepare(resource $connection, string $stmtname, string $query)" "pg_send_query" "bool pg_send_query(resource $connection, string $query)" "pg_send_query_params" "bool pg_send_query_params(resource $connection, string $query, array $params)" "pg_trace" "bool pg_trace(string $pathname [, string $mode = \"w\" [, resource $connection = '']])" "pg_untrace" "bool pg_untrace([resource $connection = ''])" "phpcredits" "bool phpcredits([int $flag = CREDITS_ALL])" "phpinfo" "bool phpinfo([int $what = INFO_ALL])" "php_check_syntax" "bool php_check_syntax(string $filename [, string $error_message = ''])" "png2wbmp" "bool png2wbmp(string $pngname, string $wbmpname, int $dest_height, int $dest_width, int $threshold)" "posix_access" "bool posix_access(string $file [, int $mode = POSIX_F_OK])" "posix_initgroups" "bool posix_initgroups(string $name, int $base_group_id)" "posix_isatty" "bool posix_isatty(int $fd)" "posix_kill" "bool posix_kill(int $pid, int $sig)" "posix_mkfifo" "bool posix_mkfifo(string $pathname, int $mode)" "posix_mknod" "bool posix_mknod(string $pathname, int $mode [, int $major = '' [, int $minor = '']])" "posix_setegid" "bool posix_setegid(int $gid)" "posix_seteuid" "bool posix_seteuid(int $uid)" "posix_setgid" "bool posix_setgid(int $gid)" "posix_setpgid" "bool posix_setpgid(int $pid, int $pgid)" "posix_setuid" "bool posix_setuid(int $uid)" "printer_delete_dc" "bool printer_delete_dc(resource $printer_handle)" "printer_draw_bmp" "bool printer_draw_bmp(resource $printer_handle, string $filename, int $x, int $y [, int $width = '', int $height])" "printer_end_doc" "bool printer_end_doc(resource $printer_handle)" "printer_end_page" "bool printer_end_page(resource $printer_handle)" "printer_set_option" "bool printer_set_option(resource $printer_handle, int $option, mixed $value)" "printer_start_doc" "bool printer_start_doc(resource $printer_handle [, string $document = ''])" "printer_start_page" "bool printer_start_page(resource $printer_handle)" "printer_write" "bool printer_write(resource $printer_handle, string $content)" "proc_nice" "bool proc_nice(int $increment)" "proc_terminate" "bool proc_terminate(resource $process [, int $signal = 15])" "property_exists" "bool property_exists(mixed $class, string $property)" "pspell_add_to_personal" "bool pspell_add_to_personal(int $dictionary_link, string $word)" "pspell_add_to_session" "bool pspell_add_to_session(int $dictionary_link, string $word)" "pspell_check" "bool pspell_check(int $dictionary_link, string $word)" "pspell_clear_session" "bool pspell_clear_session(int $dictionary_link)" "pspell_config_data_dir" "bool pspell_config_data_dir(int $conf, string $directory)" "pspell_config_dict_dir" "bool pspell_config_dict_dir(int $conf, string $directory)" "pspell_config_ignore" "bool pspell_config_ignore(int $dictionary_link, int $n)" "pspell_config_mode" "bool pspell_config_mode(int $dictionary_link, int $mode)" "pspell_config_personal" "bool pspell_config_personal(int $dictionary_link, string $file)" "pspell_config_repl" "bool pspell_config_repl(int $dictionary_link, string $file)" "pspell_config_runtogether" "bool pspell_config_runtogether(int $dictionary_link, bool $flag)" "pspell_config_save_repl" "bool pspell_config_save_repl(int $dictionary_link, bool $flag)" "pspell_save_wordlist" "bool pspell_save_wordlist(int $dictionary_link)" "pspell_store_replacement" "bool pspell_store_replacement(int $dictionary_link, string $misspelled, string $correct)" "ps_add_launchlink" "bool ps_add_launchlink(resource $psdoc, float $llx, float $lly, float $urx, float $ury, string $filename)" "ps_add_locallink" "bool ps_add_locallink(resource $psdoc, float $llx, float $lly, float $urx, float $ury, int $page, string $dest)" "ps_add_note" "bool ps_add_note(resource $psdoc, float $llx, float $lly, float $urx, float $ury, string $contents, string $title, string $icon, int $open)" "ps_add_pdflink" "bool ps_add_pdflink(resource $psdoc, float $llx, float $lly, float $urx, float $ury, string $filename, int $page, string $dest)" "ps_add_weblink" "bool ps_add_weblink(resource $psdoc, float $llx, float $lly, float $urx, float $ury, string $url)" "ps_arc" "bool ps_arc(resource $psdoc, float $x, float $y, float $radius, float $alpha, float $beta)" "ps_arcn" "bool ps_arcn(resource $psdoc, float $x, float $y, float $radius, float $alpha, float $beta)" "ps_begin_page" "bool ps_begin_page(resource $psdoc, float $width, float $height)" "ps_circle" "bool ps_circle(resource $psdoc, float $x, float $y, float $radius)" "ps_clip" "bool ps_clip(resource $psdoc)" "ps_close" "bool ps_close(resource $psdoc)" "ps_closepath" "bool ps_closepath(resource $psdoc)" "ps_closepath_stroke" "bool ps_closepath_stroke(resource $psdoc)" "ps_continue_text" "bool ps_continue_text(resource $psdoc, string $text)" "ps_curveto" "bool ps_curveto(resource $psdoc, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3)" "ps_delete" "bool ps_delete(resource $psdoc)" "ps_end_page" "bool ps_end_page(resource $psdoc)" "ps_end_pattern" "bool ps_end_pattern(resource $psdoc)" "ps_end_template" "bool ps_end_template(resource $psdoc)" "ps_fill" "bool ps_fill(resource $psdoc)" "ps_fill_stroke" "bool ps_fill_stroke(resource $psdoc)" "ps_include_file" "bool ps_include_file(resource $psdoc, string $file)" "ps_lineto" "bool ps_lineto(resource $psdoc, float $x, float $y)" "ps_moveto" "bool ps_moveto(resource $psdoc, float $x, float $y)" "ps_open_file" "bool ps_open_file(resource $psdoc [, string $filename = ''])" "ps_place_image" "bool ps_place_image(resource $psdoc, int $imageid, float $x, float $y, float $scale)" "ps_rect" "bool ps_rect(resource $psdoc, float $x, float $y, float $width, float $height)" "ps_restore" "bool ps_restore(resource $psdoc)" "ps_rotate" "bool ps_rotate(resource $psdoc, float $rot)" "ps_save" "bool ps_save(resource $psdoc)" "ps_scale" "bool ps_scale(resource $psdoc, float $x, float $y)" "ps_setcolor" "bool ps_setcolor(resource $psdoc, string $type, string $colorspace, float $c1, float $c2, float $c3, float $c4)" "ps_setdash" "bool ps_setdash(resource $psdoc, float $on, float $off)" "ps_setflat" "bool ps_setflat(resource $psdoc, float $value)" "ps_setfont" "bool ps_setfont(resource $psdoc, int $fontid, float $size)" "ps_setgray" "bool ps_setgray(resource $psdoc, float $gray)" "ps_setlinecap" "bool ps_setlinecap(resource $psdoc, int $type)" "ps_setlinejoin" "bool ps_setlinejoin(resource $psdoc, int $type)" "ps_setlinewidth" "bool ps_setlinewidth(resource $psdoc, float $width)" "ps_setmiterlimit" "bool ps_setmiterlimit(resource $psdoc, float $value)" "ps_setoverprintmode" "bool ps_setoverprintmode(resource $psdoc, int $mode)" "ps_setpolydash" "bool ps_setpolydash(resource $psdoc, float $arr)" "ps_set_border_color" "bool ps_set_border_color(resource $psdoc, float $red, float $green, float $blue)" "ps_set_border_dash" "bool ps_set_border_dash(resource $psdoc, float $black, float $white)" "ps_set_border_style" "bool ps_set_border_style(resource $psdoc, string $style, float $width)" "ps_set_info" "bool ps_set_info(resource $p, string $key, string $val)" "ps_set_parameter" "bool ps_set_parameter(resource $psdoc, string $name, string $value)" "ps_set_text_pos" "bool ps_set_text_pos(resource $psdoc, float $x, float $y)" "ps_set_value" "bool ps_set_value(resource $psdoc, string $name, float $value)" "ps_shfill" "bool ps_shfill(resource $psdoc, int $shadingid)" "ps_show" "bool ps_show(resource $psdoc, string $text)" "ps_show2" "bool ps_show2(resource $psdoc, string $text, int $len)" "ps_show_xy" "bool ps_show_xy(resource $psdoc, string $text, float $x, float $y)" "ps_show_xy2" "bool ps_show_xy2(resource $psdoc, string $text, int $len, float $xcoor, float $ycoor)" "ps_stroke" "bool ps_stroke(resource $psdoc)" "ps_symbol" "bool ps_symbol(resource $psdoc, int $ord)" "ps_translate" "bool ps_translate(resource $psdoc, float $x, float $y)" "putenv" "bool putenv(string $setting)" "px_close" "bool px_close(resource $pxdoc)" "px_create_fp" "bool px_create_fp(resource $pxdoc, resource $file, array $fielddesc)" "px_delete" "bool px_delete(resource $pxdoc)" "px_delete_record" "bool px_delete_record(resource $pxdoc, int $num)" "px_open_fp" "bool px_open_fp(resource $pxdoc, resource $file)" "px_put_record" "bool px_put_record(resource $pxdoc, array $record [, int $recpos = -1])" "px_set_blob_file" "bool px_set_blob_file(resource $pxdoc, string $filename)" "px_set_parameter" "bool px_set_parameter(resource $pxdoc, string $name, string $value)" "px_set_targetencoding" "bool px_set_targetencoding(resource $pxdoc, string $encoding)" "px_set_value" "bool px_set_value(resource $pxdoc, string $name, float $value)" "px_update_record" "bool px_update_record(resource $pxdoc, array $data, int $num)" "radius_add_server" "bool radius_add_server(resource $radius_handle, string $hostname, int $port, string $secret, int $timeout, int $max_tries)" "radius_close" "bool radius_close(resource $radius_handle)" "radius_config" "bool radius_config(resource $radius_handle, string $file)" "radius_create_request" "bool radius_create_request(resource $radius_handle, int $type)" "radius_put_addr" "bool radius_put_addr(resource $radius_handle, int $type, string $addr)" "radius_put_attr" "bool radius_put_attr(resource $radius_handle, int $type, string $value)" "radius_put_int" "bool radius_put_int(resource $radius_handle, int $type, int $value)" "radius_put_string" "bool radius_put_string(resource $radius_handle, int $type, string $value)" "radius_put_vendor_addr" "bool radius_put_vendor_addr(resource $radius_handle, int $vendor, int $type, string $addr)" "radius_put_vendor_attr" "bool radius_put_vendor_attr(resource $radius_handle, int $vendor, int $type, string $value)" "radius_put_vendor_int" "bool radius_put_vendor_int(resource $radius_handle, int $vendor, int $type, int $value)" "radius_put_vendor_string" "bool radius_put_vendor_string(resource $radius_handle, int $vendor, int $type, string $value)" "rar_broken_is" "bool rar_broken_is(RarArchive $rarfile)" "rar_close" "bool rar_close(RarArchive $rarfile)" "rar_solid_is" "bool rar_solid_is(RarArchive $rarfile)" "readline_add_history" "bool readline_add_history(string $line)" "readline_callback_handler_install" "bool readline_callback_handler_install(string $prompt, callback $callback)" "readline_callback_handler_remove" "bool readline_callback_handler_remove()" "readline_clear_history" "bool readline_clear_history()" "readline_completion_function" "bool readline_completion_function(callback $function)" "readline_read_history" "bool readline_read_history([string $filename = ''])" "readline_write_history" "bool readline_write_history([string $filename = ''])" "recode_file" "bool recode_file(string $request, resource $input, resource $output)" "register_tick_function" "bool register_tick_function(callback $function [, mixed $arg = '' [, mixed $... = '']])" "rename" "bool rename(string $oldname, string $newname [, resource $context = ''])" "rename_function" "bool rename_function(string $original_name, string $new_name)" "restore_error_handler" "bool restore_error_handler()" "restore_exception_handler" "bool restore_exception_handler()" "rewind" "bool rewind(resource $handle)" "rmdir" "bool rmdir(string $dirname [, resource $context = ''])" "rpm_close" "bool rpm_close(resource $rpmr)" "rpm_is_valid" "bool rpm_is_valid(string $filename)" "rrd_create" "bool rrd_create(string $filename, array $options)" "rrd_restore" "bool rrd_restore(string $xml_file, string $rrd_file [, array $options = ''])" "rrd_tune" "bool rrd_tune(string $filename, array $options)" "rrd_update" "bool rrd_update(string $filename, array $options)" "rsort" "bool rsort(array $array [, int $sort_flags = SORT_REGULAR])" "runkit_class_adopt" "bool runkit_class_adopt(string $classname, string $parentname)" "runkit_class_emancipate" "bool runkit_class_emancipate(string $classname)" "runkit_constant_add" "bool runkit_constant_add(string $constname, mixed $value)" "runkit_constant_redefine" "bool runkit_constant_redefine(string $constname, mixed $newvalue)" "runkit_constant_remove" "bool runkit_constant_remove(string $constname)" "runkit_function_add" "bool runkit_function_add(string $funcname, string $arglist, string $code)" "runkit_function_copy" "bool runkit_function_copy(string $funcname, string $targetname)" "runkit_function_redefine" "bool runkit_function_redefine(string $funcname, string $arglist, string $code)" "runkit_function_remove" "bool runkit_function_remove(string $funcname)" "runkit_function_rename" "bool runkit_function_rename(string $funcname, string $newname)" "runkit_import" "bool runkit_import(string $filename [, int $flags = RUNKIT_IMPORT_CLASS_METHODS])" "runkit_lint" "bool runkit_lint(string $code)" "runkit_lint_file" "bool runkit_lint_file(string $filename)" "runkit_method_add" "bool runkit_method_add(string $classname, string $methodname, string $args, string $code [, int $flags = RUNKIT_ACC_PUBLIC])" "runkit_method_copy" "bool runkit_method_copy(string $dClass, string $dMethod, string $sClass [, string $sMethod = ''])" "runkit_method_redefine" "bool runkit_method_redefine(string $classname, string $methodname, string $args, string $code [, int $flags = RUNKIT_ACC_PUBLIC])" "runkit_method_remove" "bool runkit_method_remove(string $classname, string $methodname)" "runkit_method_rename" "bool runkit_method_rename(string $classname, string $methodname, string $newname)" "runkit_return_value_used" "bool runkit_return_value_used()" "sem_acquire" "bool sem_acquire(resource $sem_identifier)" "sem_release" "bool sem_release(resource $sem_identifier)" "sem_remove" "bool sem_remove(resource $sem_identifier)" "session_decode" "bool session_decode(string $data)" "session_destroy" "bool session_destroy()" "session_is_registered" "bool session_is_registered(string $name)" "session_pgsql_add_error" "bool session_pgsql_add_error(int $error_level [, string $error_message = ''])" "session_pgsql_reset" "bool session_pgsql_reset()" "session_pgsql_set_field" "bool session_pgsql_set_field(string $value)" "session_regenerate_id" "bool session_regenerate_id([bool $delete_old_session = false])" "session_register" "bool session_register(mixed $name [, mixed $... = ''])" "session_set_save_handler" "bool session_set_save_handler(callback $open, callback $close, callback $read, callback $write, callback $destroy, callback $gc)" "session_start" "bool session_start()" "session_unregister" "bool session_unregister(string $name)" "setcookie" "bool setcookie(string $name [, string $value = '' [, int $expire = '' [, string $path = '' [, string $domain = '' [, bool $secure = false [, bool $httponly = false]]]]]])" "setrawcookie" "bool setrawcookie(string $name [, string $value = '' [, int $expire = '' [, string $path = '' [, string $domain = '' [, bool $secure = false [, bool $httponly = false]]]]]])" "setthreadtitle" "bool setthreadtitle(string $title)" "settype" "bool settype(mixed $var, string $type)" "set_magic_quotes_runtime" "bool set_magic_quotes_runtime(bool $new_setting)" "shmop_delete" "bool shmop_delete(int $shmid)" "shm_detach" "bool shm_detach(resource $shm_identifier)" "shm_has_var" "bool shm_has_var(resource $shm_identifier, int $variable_key)" "shm_put_var" "bool shm_put_var(resource $shm_identifier, int $variable_key, mixed $variable)" "shm_remove" "bool shm_remove(resource $shm_identifier)" "shm_remove_var" "bool shm_remove_var(resource $shm_identifier, int $variable_key)" "shuffle" "bool shuffle(array $array)" "snmp2_set" "bool snmp2_set(string $host, string $community, string $object_id, string $type, string $value [, string $timeout = 1000000 [, string $retries = 5]])" "snmp3_set" "bool snmp3_set(string $host, string $sec_name, string $sec_level, string $auth_protocol, string $auth_passphrase, string $priv_protocol, string $priv_passphrase, string $object_id, string $type, string $value [, string $timeout = 1000000 [, string $retries = 5]])" "snmpset" "bool snmpset(string $host, string $community, string $object_id, string $type, mixed $value [, int $timeout = 1000000 [, int $retries = 5]])" "snmp_get_quick_print" "bool snmp_get_quick_print()" "snmp_read_mib" "bool snmp_read_mib(string $filename)" "snmp_set_enum_print" "bool snmp_set_enum_print(int $enum_print)" "snmp_set_oid_output_format" "bool snmp_set_oid_output_format(int $oid_format)" "snmp_set_quick_print" "bool snmp_set_quick_print(bool $quick_print)" "snmp_set_valueretrieval" "bool snmp_set_valueretrieval(int $method)" "socket_bind" "bool socket_bind(resource $socket, string $address [, int $port = ''])" "socket_connect" "bool socket_connect(resource $socket, string $address [, int $port = ''])" "socket_create_pair" "bool socket_create_pair(int $domain, int $type, int $protocol, array $fd)" "socket_getpeername" "bool socket_getpeername(resource $socket, string $address [, int $port = ''])" "socket_getsockname" "bool socket_getsockname(resource $socket, string $addr [, int $port = ''])" "socket_listen" "bool socket_listen(resource $socket [, int $backlog = ''])" "socket_set_block" "bool socket_set_block(resource $socket)" "socket_set_nonblock" "bool socket_set_nonblock(resource $socket)" "socket_set_option" "bool socket_set_option(resource $socket, int $level, int $optname, mixed $optval)" "socket_shutdown" "bool socket_shutdown(resource $socket [, int $how = 2])" "sort" "bool sort(array $array [, int $sort_flags = SORT_REGULAR])" "spl_autoload_register" "bool spl_autoload_register([callback $autoload_function = '' [, bool $throw = true [, bool $prepend = false]]])" "spl_autoload_unregister" "bool spl_autoload_unregister(mixed $autoload_function)" "sqlite_exec" "bool sqlite_exec(resource $dbhandle, string $query [, string $error_msg = ''])" "sqlite_has_more" "bool sqlite_has_more(resource $result)" "sqlite_has_prev" "bool sqlite_has_prev(resource $result)" "sqlite_next" "bool sqlite_next(resource $result)" "sqlite_prev" "bool sqlite_prev(resource $result)" "sqlite_rewind" "bool sqlite_rewind(resource $result)" "sqlite_seek" "bool sqlite_seek(resource $result, int $rownum)" "sqlite_valid" "bool sqlite_valid(resource $result)" "ssh2_auth_hostbased_file" "bool ssh2_auth_hostbased_file(resource $session, string $username, string $hostname, string $pubkeyfile, string $privkeyfile [, string $passphrase = '' [, string $local_username = '']])" "ssh2_auth_password" "bool ssh2_auth_password(resource $session, string $username, string $password)" "ssh2_auth_pubkey_file" "bool ssh2_auth_pubkey_file(resource $session, string $username, string $pubkeyfile, string $privkeyfile [, string $passphrase = ''])" "ssh2_publickey_add" "bool ssh2_publickey_add(resource $pkey, string $algoname, string $blob [, bool $overwrite = false [, array $attributes = '']])" "ssh2_publickey_remove" "bool ssh2_publickey_remove(resource $pkey, string $algoname, string $blob)" "ssh2_scp_recv" "bool ssh2_scp_recv(resource $session, string $remote_file, string $local_file)" "ssh2_scp_send" "bool ssh2_scp_send(resource $session, string $local_file, string $remote_file [, int $create_mode = 0644])" "ssh2_sftp_mkdir" "bool ssh2_sftp_mkdir(resource $sftp, string $dirname [, int $mode = 0777 [, bool $recursive = false]])" "ssh2_sftp_rename" "bool ssh2_sftp_rename(resource $sftp, string $from, string $to)" "ssh2_sftp_rmdir" "bool ssh2_sftp_rmdir(resource $sftp, string $dirname)" "ssh2_sftp_symlink" "bool ssh2_sftp_symlink(resource $sftp, string $target, string $link)" "ssh2_sftp_unlink" "bool ssh2_sftp_unlink(resource $sftp, string $filename)" "stomp_abort" "bool stomp_abort(string $transaction_id [, array $headers = '', resource $link])" "stomp_ack" "bool stomp_ack(mixed $msg [, array $headers = '', resource $link])" "stomp_begin" "bool stomp_begin(string $transaction_id [, array $headers = '', resource $link])" "stomp_close" "bool stomp_close(resource $link)" "stomp_commit" "bool stomp_commit(string $transaction_id [, array $headers = '', resource $link])" "stomp_has_frame" "bool stomp_has_frame(resource $link)" "stomp_send" "bool stomp_send(string $destination, mixed $msg [, array $headers = '', resource $link])" "stomp_subscribe" "bool stomp_subscribe(string $destination [, array $headers = '', resource $link])" "stomp_unsubscribe" "bool stomp_unsubscribe(string $destination [, array $headers = '', resource $link])" "stream_context_set_option" "bool stream_context_set_option(resource $stream_or_context, string $wrapper, string $option, mixed $value, array $options)" "stream_context_set_params" "bool stream_context_set_params(resource $stream_or_context, array $params)" "stream_encoding" "bool stream_encoding(resource $stream [, string $encoding = ''])" "stream_filter_register" "bool stream_filter_register(string $filtername, string $classname)" "stream_filter_remove" "bool stream_filter_remove(resource $stream_filter)" "stream_is_local" "bool stream_is_local(mixed $stream_or_url)" "stream_set_blocking" "bool stream_set_blocking(resource $stream, int $mode)" "stream_set_timeout" "bool stream_set_timeout(resource $stream, int $seconds [, int $microseconds = ''])" "stream_socket_shutdown" "bool stream_socket_shutdown(resource $stream, int $how)" "stream_supports_lock" "bool stream_supports_lock(resource $stream)" "stream_wrapper_register" "bool stream_wrapper_register(string $protocol, string $classname [, int $flags = ''])" "stream_wrapper_restore" "bool stream_wrapper_restore(string $protocol)" "stream_wrapper_unregister" "bool stream_wrapper_unregister(string $protocol)" "svn_add" "bool svn_add(string $path [, bool $recursive = true [, bool $force = false]])" "svn_checkout" "bool svn_checkout(string $repos, string $targetpath [, int $revision = '' [, int $flags = '']])" "svn_cleanup" "bool svn_cleanup(string $workingdir)" "svn_delete" "bool svn_delete(string $path [, bool $force = false])" "svn_export" "bool svn_export(string $frompath, string $topath [, bool $working_copy = true [, int $revision_no = -1]])" "svn_fs_abort_txn" "bool svn_fs_abort_txn(resource $txn)" "svn_fs_change_node_prop" "bool svn_fs_change_node_prop(resource $root, string $path, string $name, string $value)" "svn_fs_contents_changed" "bool svn_fs_contents_changed(resource $root1, string $path1, resource $root2, string $path2)" "svn_fs_copy" "bool svn_fs_copy(resource $from_root, string $from_path, resource $to_root, string $to_path)" "svn_fs_delete" "bool svn_fs_delete(resource $root, string $path)" "svn_fs_is_dir" "bool svn_fs_is_dir(resource $root, string $path)" "svn_fs_is_file" "bool svn_fs_is_file(resource $root, string $path)" "svn_fs_make_dir" "bool svn_fs_make_dir(resource $root, string $path)" "svn_fs_make_file" "bool svn_fs_make_file(resource $root, string $path)" "svn_fs_props_changed" "bool svn_fs_props_changed(resource $root1, string $path1, resource $root2, string $path2)" "svn_import" "bool svn_import(string $path, string $url, bool $nonrecursive)" "svn_mkdir" "bool svn_mkdir(string $path [, string $log_message = ''])" "svn_repos_hotcopy" "bool svn_repos_hotcopy(string $repospath, string $destpath, bool $cleanlogs)" "svn_repos_recover" "bool svn_repos_recover(string $path)" "svn_revert" "bool svn_revert(string $path [, bool $recursive = false])" "sybase_close" "bool sybase_close([resource $link_identifier = ''])" "sybase_data_seek" "bool sybase_data_seek(resource $result_identifier, int $row_number)" "sybase_field_seek" "bool sybase_field_seek(resource $result, int $field_offset)" "sybase_free_result" "bool sybase_free_result(resource $result)" "sybase_select_db" "bool sybase_select_db(string $database_name [, resource $link_identifier = ''])" "sybase_set_message_handler" "bool sybase_set_message_handler(callback $handler [, resource $connection = ''])" "symlink" "bool symlink(string $target, string $link)" "syslog" "bool syslog(int $priority, string $message)" "tcpwrap_check" "bool tcpwrap_check(string $daemon, string $address [, string $user = '' [, bool $nodns = false]])" "tidy_clean_repair" "bool tidy_clean_repair(tidy $object)" "tidy_diagnose" "bool tidy_diagnose(tidy $object)" "tidy_is_xhtml" "bool tidy_is_xhtml(tidy $object)" "tidy_is_xml" "bool tidy_is_xml(tidy $object)" "tidy_reset_config" "bool tidy_reset_config()" "tidy_save_config" "bool tidy_save_config(string $filename)" "tidy_setopt" "bool tidy_setopt(string $option, mixed $value)" "tidy_set_encoding" "bool tidy_set_encoding(string $encoding)" "time_sleep_until" "bool time_sleep_until(float $timestamp)" "touch" "bool touch(string $filename [, int $time = time() [, int $atime = '']])" "trigger_error" "bool trigger_error(string $error_msg [, int $error_type = E_USER_NOTICE])" "uasort" "bool uasort(array $array, callback $cmp_function)" "udm_add_search_limit" "bool udm_add_search_limit(resource $agent, int $var, string $val)" "udm_check_charset" "bool udm_check_charset(resource $agent, string $charset)" "udm_clear_search_limits" "bool udm_clear_search_limits(resource $agent)" "udm_free_ispell_data" "bool udm_free_ispell_data(int $agent)" "udm_free_res" "bool udm_free_res(resource $res)" "udm_load_ispell_data" "bool udm_load_ispell_data(resource $agent, int $var, string $val1, string $val2, int $flag)" "udm_set_agent_param" "bool udm_set_agent_param(resource $agent, int $var, string $val)" "uksort" "bool uksort(array $array, callback $cmp_function)" "unlink" "bool unlink(string $filename [, resource $context = ''])" "use_soap_error_handler" "bool use_soap_error_handler([bool $handler = true])" "usort" "bool usort(array $array, callback $cmp_function)" "virtual" "bool virtual(string $filename)" "vpopmail_add_alias_domain" "bool vpopmail_add_alias_domain(string $domain, string $aliasdomain)" "vpopmail_add_alias_domain_ex" "bool vpopmail_add_alias_domain_ex(string $olddomain, string $newdomain)" "vpopmail_add_domain" "bool vpopmail_add_domain(string $domain, string $dir, int $uid, int $gid)" "vpopmail_add_domain_ex" "bool vpopmail_add_domain_ex(string $domain, string $passwd [, string $quota = '' [, string $bounce = '' [, bool $apop = '']]])" "vpopmail_add_user" "bool vpopmail_add_user(string $user, string $domain, string $password [, string $gecos = '' [, bool $apop = '']])" "vpopmail_alias_add" "bool vpopmail_alias_add(string $user, string $domain, string $alias)" "vpopmail_alias_del" "bool vpopmail_alias_del(string $user, string $domain)" "vpopmail_alias_del_domain" "bool vpopmail_alias_del_domain(string $domain)" "vpopmail_auth_user" "bool vpopmail_auth_user(string $user, string $domain, string $password [, string $apop = ''])" "vpopmail_del_domain" "bool vpopmail_del_domain(string $domain)" "vpopmail_del_domain_ex" "bool vpopmail_del_domain_ex(string $domain)" "vpopmail_del_user" "bool vpopmail_del_user(string $user, string $domain)" "vpopmail_passwd" "bool vpopmail_passwd(string $user, string $domain, string $password [, bool $apop = ''])" "vpopmail_set_user_quota" "bool vpopmail_set_user_quota(string $user, string $domain, string $quota)" "w32api_deftype" "bool w32api_deftype(string $typename, string $member1_type, string $member1_name [, string $... = ''])" "w32api_register_function" "bool w32api_register_function(string $library, string $function_name, string $return_type)" "wddx_add_vars" "bool wddx_add_vars(resource $packet_id, mixed $var_name [, mixed $... = ''])" "win32_set_service_status" "bool win32_set_service_status(int $status [, int $checkpoint = ''])" "wincache_lock" "bool wincache_lock(string $key [, bool $isglobal = false])" "wincache_refresh_if_changed" "bool wincache_refresh_if_changed([array $files = ''])" "wincache_ucache_add" "bool wincache_ucache_add(string $key, mixed $value [, int $ttl = '', array $values [, mixed $unused = '']])" "wincache_ucache_cas" "bool wincache_ucache_cas(string $key, int $old_value, int $new_value)" "wincache_ucache_clear" "bool wincache_ucache_clear()" "wincache_ucache_delete" "bool wincache_ucache_delete(mixed $key)" "wincache_ucache_exists" "bool wincache_ucache_exists(string $key)" "wincache_ucache_set" "bool wincache_ucache_set(mixed $key, mixed $value [, int $ttl = '', array $values [, mixed $unused = '']])" "wincache_unlock" "bool wincache_unlock(string $key)" "xattr_remove" "bool xattr_remove(string $filename, string $name [, int $flags = ''])" "xattr_set" "bool xattr_set(string $filename, string $name, string $value [, int $flags = ''])" "xattr_supported" "bool xattr_supported(string $filename [, int $flags = ''])" "xdiff_file_bdiff" "bool xdiff_file_bdiff(string $old_file, string $new_file, string $dest)" "xdiff_file_bpatch" "bool xdiff_file_bpatch(string $file, string $patch, string $dest)" "xdiff_file_diff" "bool xdiff_file_diff(string $old_file, string $new_file, string $dest [, int $context = 3 [, bool $minimal = false]])" "xdiff_file_diff_binary" "bool xdiff_file_diff_binary(string $old_file, string $new_file, string $dest)" "xdiff_file_patch_binary" "bool xdiff_file_patch_binary(string $file, string $patch, string $dest)" "xdiff_file_rabdiff" "bool xdiff_file_rabdiff(string $old_file, string $new_file, string $dest)" "xmlrpc_is_fault" "bool xmlrpc_is_fault(array $arg)" "xmlrpc_server_register_introspection_callback" "bool xmlrpc_server_register_introspection_callback(resource $server, string $function)" "xmlrpc_server_register_method" "bool xmlrpc_server_register_method(resource $server, string $method_name, string $function)" "xmlrpc_set_type" "bool xmlrpc_set_type(string $value, string $type)" "xml_parser_free" "bool xml_parser_free(resource $parser)" "xml_parser_set_option" "bool xml_parser_set_option(resource $parser, int $option, mixed $value)" "xml_set_character_data_handler" "bool xml_set_character_data_handler(resource $parser, callback $handler)" "xml_set_default_handler" "bool xml_set_default_handler(resource $parser, callback $handler)" "xml_set_element_handler" "bool xml_set_element_handler(resource $parser, callback $start_element_handler, callback $end_element_handler)" "xml_set_end_namespace_decl_handler" "bool xml_set_end_namespace_decl_handler(resource $parser, callback $handler)" "xml_set_external_entity_ref_handler" "bool xml_set_external_entity_ref_handler(resource $parser, callback $handler)" "xml_set_notation_decl_handler" "bool xml_set_notation_decl_handler(resource $parser, callback $handler)" "xml_set_object" "bool xml_set_object(resource $parser, object $object)" "xml_set_processing_instruction_handler" "bool xml_set_processing_instruction_handler(resource $parser, callback $handler)" "xml_set_start_namespace_decl_handler" "bool xml_set_start_namespace_decl_handler(resource $parser, callback $handler)" "xml_set_unparsed_entity_decl_handler" "bool xml_set_unparsed_entity_decl_handler(resource $parser, callback $handler)" "xpath_register_ns" "bool xpath_register_ns(XPathContext $xpath_context, string $prefix, string $uri)" "xpath_register_ns_auto" "bool xpath_register_ns_auto(XPathContext $xpath_context [, object $context_node = ''])" "xslt_set_object" "bool xslt_set_object(resource $processor, object $obj)" "yaml_emit_file" "bool yaml_emit_file(string $filename, mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK]])" "yaz_ccl_parse" "bool yaz_ccl_parse(resource $id, string $query, array $result)" "yaz_close" "bool yaz_close(resource $id)" "yaz_database" "bool yaz_database(resource $id, string $databases)" "yaz_element" "bool yaz_element(resource $id, string $elementset)" "yaz_present" "bool yaz_present(resource $id)" "yaz_search" "bool yaz_search(resource $id, string $type, string $query)" "zip_entry_close" "bool zip_entry_close(resource $zip_entry)" "zip_entry_open" "bool zip_entry_open(resource $zip, resource $zip_entry [, string $mode = ''])" "cairo_create" "CairoContext cairo_create(CairoSurface $surface)" "cairo_scaled_font_get_font_face" "CairoFontFace cairo_scaled_font_get_font_face(CairoScaledFont $scaledfont)" "cairo_font_options_create" "CairoFontOptions cairo_font_options_create()" "cairo_scaled_font_get_font_matrix" "CairoFontOptions cairo_scaled_font_get_font_matrix(CairoScaledFont $scaledfont)" "cairo_scaled_font_get_font_options" "CairoFontOptions cairo_scaled_font_get_font_options(CairoScaledFont $scaledfont)" "cairo_surface_get_font_options" "CairoFontOptions cairo_surface_get_font_options(CairoSurface $surface)" "cairo_image_surface_create" "CairoImageSurface cairo_image_surface_create(int $format, int $width, int $height)" "cairo_image_surface_create_for_data" "CairoImageSurface cairo_image_surface_create_for_data(string $data, int $format, int $width, int $height [, int $stride = -1])" "cairo_image_surface_create_from_png" "CairoImageSurface cairo_image_surface_create_from_png(string $file)" "cairo_matrix_multiply" "CairoMatrix cairo_matrix_multiply(CairoMatrix $matrix1, CairoMatrix $matrix2)" "cairo_pattern_get_matrix" "CairoMatrix cairo_pattern_get_matrix(CairoPattern $pattern)" "cairo_scaled_font_get_ctm" "CairoMatrix cairo_scaled_font_get_ctm(CairoScaledFont $scaledfont)" "cairo_scaled_font_get_scale_matrix" "CairoMatrix cairo_scaled_font_get_scale_matrix(CairoScaledFont $scaledfont)" "cairo_copy_path" "CairoPath cairo_copy_path(CairoContext $context)" "cairo_copy_path_flat" "CairoPath cairo_copy_path_flat(CairoContext $context)" "cairo_pattern_create_for_surface" "CairoPattern cairo_pattern_create_for_surface(CairoSurface $surface)" "cairo_pattern_create_linear" "CairoPattern cairo_pattern_create_linear(float $x0, float $y0, float $x1, float $y1)" "cairo_pattern_create_radial" "CairoPattern cairo_pattern_create_radial(float $x0, float $y0, float $r0, float $x1, float $y1, float $r1)" "cairo_pattern_create_rgb" "CairoPattern cairo_pattern_create_rgb(float $red, float $green, float $blue)" "cairo_pattern_create_rgba" "CairoPattern cairo_pattern_create_rgba(float $red, float $green, float $blue, float $alpha)" "cairo_pdf_surface_create" "CairoPdfSurface cairo_pdf_surface_create(string $file, float $width, float $height)" "cairo_ps_surface_create" "CairoPsSurface cairo_ps_surface_create(string $file, float $width, float $height)" "cairo_scaled_font_create" "CairoScaledFont cairo_scaled_font_create(CairoFontFace $fontface, CairoMatrix $matrix, CairoMatrix $ctm, CairoFontOptions $fontoptions)" "cairo_pattern_get_surface" "CairoSurface cairo_pattern_get_surface(CairoSurfacePattern $pattern)" "cairo_surface_create_similar" "CairoSurface cairo_surface_create_similar(CairoSurface $surface, int $content, float $width, float $height)" "cairo_svg_surface_create" "CairoSvgSurface cairo_svg_surface_create(string $file, float $width, float $height)" "cairo_matrix_create_translate" " cairo_matrix_create_translate()" "set_exception_handler" "callback set_exception_handler(callback $exception_handler)" "stream_notification_callback" "callback stream_notification_callback(int $notification_code, int $severity, string $message, int $message_code, int $bytes_transferred, int $bytes_max)" "chop" " chop()" "collator_create" "Collator collator_create(string $locale)" "COM" " COM()" "com_get" " com_get()" "com_invoke" " com_invoke()" "com_load" " com_load()" "com_propget" " com_propget()" "com_propput" " com_propput()" "com_propset" " com_propset()" "com_set" " com_set()" "date_add" " date_add()" "date_create" " date_create()" "date_create_from_format" " date_create_from_format()" "date_date_set" " date_date_set()" "date_diff" " date_diff()" "date_format" " date_format()" "date_get_last_errors" " date_get_last_errors()" "date_interval_create_from_date_string" " date_interval_create_from_date_string()" "date_interval_format" " date_interval_format()" "date_isodate_set" " date_isodate_set()" "date_modify" " date_modify()" "date_offset_get" " date_offset_get()" "date_sub" " date_sub()" "date_timestamp_get" " date_timestamp_get()" "date_timestamp_set" " date_timestamp_set()" "date_timezone_get" " date_timezone_get()" "date_timezone_set" " date_timezone_set()" "date_time_set" " date_time_set()" "die" " die()" "diskfreespace" " diskfreespace()" "dns_check_record" " dns_check_record()" "dns_get_mx" " dns_get_mx()" "xinclude" " DomDocument.xinclude()" "domxml_new_doc" "DomDocument domxml_new_doc(string $version)" "domxml_open_file" "DomDocument domxml_open_file(string $filename [, int $mode = '' [, array $error = '']])" "domxml_open_mem" "DomDocument domxml_open_mem(string $str [, int $mode = '' [, array $error = '']])" "domxml_xmltree" "DomDocument domxml_xmltree(string $str)" "dom_import_simplexml" "DOMElement dom_import_simplexml(SimpleXMLElement $node)" "domxml_xslt_stylesheet" "DomXsltStylesheet domxml_xslt_stylesheet(string $xsl_buf)" "domxml_xslt_stylesheet_doc" "DomXsltStylesheet domxml_xslt_stylesheet_doc(DomDocument $xsl_doc)" "domxml_xslt_stylesheet_file" "DomXsltStylesheet domxml_xslt_stylesheet_file(string $xsl_file)" "DOTNET" " DOTNET()" "doubleval" " doubleval()" "fbsql_tablename" " fbsql_tablename()" "acos" "float acos(float $arg)" "acosh" "float acosh(float $arg)" "asin" "float asin(float $arg)" "asinh" "float asinh(float $arg)" "atan" "float atan(float $arg)" "atan2" "float atan2(float $y, float $x)" "atanh" "float atanh(float $arg)" "bindec" "float bindec(string $binary_string)" "cairo_get_line_width" "float cairo_get_line_width(CairoContext $context)" "cairo_get_miter_limit" "float cairo_get_miter_limit(CairoContext $context)" "cairo_get_tolerance" "float cairo_get_tolerance(CairoContext $context)" "ceil" "float ceil(float $value)" "cos" "float cos(float $arg)" "cosh" "float cosh(float $arg)" "deg2rad" "float deg2rad(float $number)" "disk_free_space" "float disk_free_space(string $directory)" "disk_total_space" "float disk_total_space(string $directory)" "exp" "float exp(float $arg)" "expm1" "float expm1(float $arg)" "floatval" "float floatval(mixed $var)" "floor" "float floor(float $value)" "fmod" "float fmod(float $x, float $y)" "hypot" "float hypot(float $x, float $y)" "lcg_value" "float lcg_value()" "log" "float log(float $arg [, float $base = M_E])" "log1p" "float log1p(float $number)" "log10" "float log10(float $arg)" "notes_version" "float notes_version(string $database_name)" "numfmt_parse_currency" "float numfmt_parse_currency(string $value, string $currency [, int $position = '', NumberFormatter $fmt])" "PDF_get_pdi_value" "float PDF_get_pdi_value(resource $p, string $key, int $doc, int $page, int $reserved)" "PDF_get_value" "float PDF_get_value(resource $p, string $key, float $modifier)" "PDF_info_font" "float PDF_info_font(resource $pdfdoc, int $font, string $keyword, string $optlist)" "PDF_info_matchbox" "float PDF_info_matchbox(resource $pdfdoc, string $boxname, int $num, string $keyword)" "PDF_info_table" "float PDF_info_table(resource $pdfdoc, int $table, string $keyword)" "PDF_info_textflow" "float PDF_info_textflow(resource $pdfdoc, int $textflow, string $keyword)" "PDF_info_textline" "float PDF_info_textline(resource $pdfdoc, string $text, string $keyword, string $optlist)" "PDF_pcos_get_number" "float PDF_pcos_get_number(resource $p, int $doc, string $path)" "PDF_stringwidth" "float PDF_stringwidth(resource $p, string $text, int $font, float $fontsize)" "pi" "float pi()" "pow" "float pow(number $base, number $exp)" "ps_get_value" "float ps_get_value(resource $psdoc, string $name [, float $modifier = ''])" "ps_stringwidth" "float ps_stringwidth(resource $psdoc, string $text [, int $fontid = '' [, float $size = 0.0]])" "ps_symbol_width" "float ps_symbol_width(resource $psdoc, int $ord [, int $fontid = '' [, float $size = 0.0]])" "px_get_value" "float px_get_value(resource $pxdoc, string $name)" "rad2deg" "float rad2deg(float $number)" "round" "float round(float $val [, int $precision = '' [, int $mode = PHP_ROUND_HALF_UP]])" "sin" "float sin(float $arg)" "sinh" "float sinh(float $arg)" "sqrt" "float sqrt(float $arg)" "stats_absolute_deviation" "float stats_absolute_deviation(array $a)" "stats_cdf_beta" "float stats_cdf_beta(float $par1, float $par2, float $par3, int $which)" "stats_cdf_binomial" "float stats_cdf_binomial(float $par1, float $par2, float $par3, int $which)" "stats_cdf_cauchy" "float stats_cdf_cauchy(float $par1, float $par2, float $par3, int $which)" "stats_cdf_chisquare" "float stats_cdf_chisquare(float $par1, float $par2, int $which)" "stats_cdf_exponential" "float stats_cdf_exponential(float $par1, float $par2, int $which)" "stats_cdf_f" "float stats_cdf_f(float $par1, float $par2, float $par3, int $which)" "stats_cdf_gamma" "float stats_cdf_gamma(float $par1, float $par2, float $par3, int $which)" "stats_cdf_laplace" "float stats_cdf_laplace(float $par1, float $par2, float $par3, int $which)" "stats_cdf_logistic" "float stats_cdf_logistic(float $par1, float $par2, float $par3, int $which)" "stats_cdf_negative_binomial" "float stats_cdf_negative_binomial(float $par1, float $par2, float $par3, int $which)" "stats_cdf_noncentral_chisquare" "float stats_cdf_noncentral_chisquare(float $par1, float $par2, float $par3, int $which)" "stats_cdf_noncentral_f" "float stats_cdf_noncentral_f(float $par1, float $par2, float $par3, float $par4, int $which)" "stats_cdf_poisson" "float stats_cdf_poisson(float $par1, float $par2, int $which)" "stats_cdf_t" "float stats_cdf_t(float $par1, float $par2, int $which)" "stats_cdf_uniform" "float stats_cdf_uniform(float $par1, float $par2, float $par3, int $which)" "stats_cdf_weibull" "float stats_cdf_weibull(float $par1, float $par2, float $par3, int $which)" "stats_covariance" "float stats_covariance(array $a, array $b)" "stats_dens_beta" "float stats_dens_beta(float $x, float $a, float $b)" "stats_dens_cauchy" "float stats_dens_cauchy(float $x, float $ave, float $stdev)" "stats_dens_chisquare" "float stats_dens_chisquare(float $x, float $dfr)" "stats_dens_exponential" "float stats_dens_exponential(float $x, float $scale)" "stats_dens_f" "float stats_dens_f(float $x, float $dfr1, float $dfr2)" "stats_dens_gamma" "float stats_dens_gamma(float $x, float $shape, float $scale)" "stats_dens_laplace" "float stats_dens_laplace(float $x, float $ave, float $stdev)" "stats_dens_logistic" "float stats_dens_logistic(float $x, float $ave, float $stdev)" "stats_dens_negative_binomial" "float stats_dens_negative_binomial(float $x, float $n, float $pi)" "stats_dens_normal" "float stats_dens_normal(float $x, float $ave, float $stdev)" "stats_dens_pmf_binomial" "float stats_dens_pmf_binomial(float $x, float $n, float $pi)" "stats_dens_pmf_hypergeometric" "float stats_dens_pmf_hypergeometric(float $n1, float $n2, float $N1, float $N2)" "stats_dens_pmf_poisson" "float stats_dens_pmf_poisson(float $x, float $lb)" "stats_dens_t" "float stats_dens_t(float $x, float $dfr)" "stats_dens_weibull" "float stats_dens_weibull(float $x, float $a, float $b)" "stats_den_uniform" "float stats_den_uniform(float $x, float $a, float $b)" "stats_kurtosis" "float stats_kurtosis(array $a)" "stats_rand_gen_beta" "float stats_rand_gen_beta(float $a, float $b)" "stats_rand_gen_chisquare" "float stats_rand_gen_chisquare(float $df)" "stats_rand_gen_exponential" "float stats_rand_gen_exponential(float $av)" "stats_rand_gen_f" "float stats_rand_gen_f(float $dfn, float $dfd)" "stats_rand_gen_funiform" "float stats_rand_gen_funiform(float $low, float $high)" "stats_rand_gen_gamma" "float stats_rand_gen_gamma(float $a, float $r)" "stats_rand_gen_noncenral_chisquare" "float stats_rand_gen_noncenral_chisquare(float $df, float $xnonc)" "stats_rand_gen_noncentral_f" "float stats_rand_gen_noncentral_f(float $dfn, float $dfd, float $xnonc)" "stats_rand_gen_noncentral_t" "float stats_rand_gen_noncentral_t(float $df, float $xnonc)" "stats_rand_gen_normal" "float stats_rand_gen_normal(float $av, float $sd)" "stats_rand_gen_t" "float stats_rand_gen_t(float $df)" "stats_rand_ranf" "float stats_rand_ranf()" "stats_skew" "float stats_skew(array $a)" "stats_standard_deviation" "float stats_standard_deviation(array $a [, bool $sample = false])" "stats_stat_binomial_coef" "float stats_stat_binomial_coef(int $x, int $n)" "stats_stat_correlation" "float stats_stat_correlation(array $arr1, array $arr2)" "stats_stat_gennch" "float stats_stat_gennch(int $n)" "stats_stat_independent_t" "float stats_stat_independent_t(array $arr1, array $arr2)" "stats_stat_innerproduct" "float stats_stat_innerproduct(array $arr1, array $arr2)" "stats_stat_noncentral_t" "float stats_stat_noncentral_t(float $par1, float $par2, float $par3, int $which)" "stats_stat_paired_t" "float stats_stat_paired_t(array $arr1, array $arr2)" "stats_stat_percentile" "float stats_stat_percentile(float $df, float $xnonc)" "stats_stat_powersum" "float stats_stat_powersum(array $arr, float $power)" "stats_variance" "float stats_variance(array $a [, bool $sample = false])" "swf_textwidth" "float swf_textwidth(string $str)" "tan" "float tan(float $arg)" "tanh" "float tanh(float $arg)" "fputs" " fputs()" "ftp_quit" " ftp_quit()" "get_required_files" " get_required_files()" "gmp_div" " gmp_div()" "gzputs" " gzputs()" "hwapi_hgcsp" "HW_API hwapi_hgcsp(string $hostname [, int $port = ''])" "hw_api_attribute" "HW_API_Attribute hw_api_attribute([string $name = '' [, string $value = '']])" "hw_api_content" "HW_API_Content hw_api_content(string $content, string $mimetype)" "hw_api_object" "hw_api_object hw_api_object(array $parameter)" "idn_to_unicode" " idn_to_unicode()" "imap_header" " imap_header()" "imap_listmailbox" " imap_listmailbox()" "imap_listsubscribed" " imap_listsubscribed()" "imap_scanmailbox" " imap_scanmailbox()" "ini_alter" " ini_alter()" "apc_bin_dumpfile" "int apc_bin_dumpfile(array $files, array $user_vars, string $filename [, int $flags = '' [, resource $context = '']])" "apc_dec" "int apc_dec(string $key [, int $step = 1 [, bool $success = '']])" "apc_inc" "int apc_inc(string $key [, int $step = 1 [, bool $success = '']])" "array_push" "int array_push(array $array, mixed $var [, mixed $... = ''])" "array_unshift" "int array_unshift(array $array, mixed $var [, mixed $... = ''])" "bccomp" "int bccomp(string $left_operand, string $right_operand [, int $scale = ''])" "bzclose" "int bzclose(resource $bz)" "bzerrno" "int bzerrno(resource $bz)" "bzflush" "int bzflush(resource $bz)" "bzwrite" "int bzwrite(resource $bz, string $data [, int $length = ''])" "cairo_font_face_get_type" "int cairo_font_face_get_type(CairoFontFace $fontface)" "cairo_font_face_status" "int cairo_font_face_status(CairoFontFace $fontface)" "cairo_font_options_get_antialias" "int cairo_font_options_get_antialias(CairoFontOptions $options)" "cairo_font_options_get_hint_metrics" "int cairo_font_options_get_hint_metrics(CairoFontOptions $options)" "cairo_font_options_get_hint_style" "int cairo_font_options_get_hint_style(CairoFontOptions $options)" "cairo_font_options_get_subpixel_order" "int cairo_font_options_get_subpixel_order(CairoFontOptions $options)" "cairo_font_options_hash" "int cairo_font_options_hash(CairoFontOptions $options)" "cairo_font_options_status" "int cairo_font_options_status(CairoFontOptions $options)" "cairo_format_stride_for_width" "int cairo_format_stride_for_width(int $format, int $width)" "cairo_get_antialias" "int cairo_get_antialias(CairoContext $context)" "cairo_get_dash_count" "int cairo_get_dash_count(CairoContext $context)" "cairo_get_fill_rule" "int cairo_get_fill_rule(CairoContext $context)" "cairo_get_line_cap" "int cairo_get_line_cap(CairoContext $context)" "cairo_get_line_join" "int cairo_get_line_join(CairoContext $context)" "cairo_get_operator" "int cairo_get_operator(CairoContext $context)" "cairo_image_surface_get_format" "int cairo_image_surface_get_format(CairoImageSurface $surface)" "cairo_image_surface_get_height" "int cairo_image_surface_get_height(CairoImageSurface $surface)" "cairo_image_surface_get_stride" "int cairo_image_surface_get_stride(CairoImageSurface $surface)" "cairo_image_surface_get_width" "int cairo_image_surface_get_width(CairoImageSurface $surface)" "cairo_pattern_get_color_stop_count" "int cairo_pattern_get_color_stop_count(CairoGradientPattern $pattern)" "cairo_pattern_get_extend" "int cairo_pattern_get_extend(string $pattern)" "cairo_pattern_get_filter" "int cairo_pattern_get_filter(CairoSurfacePattern $pattern)" "cairo_pattern_get_type" "int cairo_pattern_get_type(CairoPattern $pattern)" "cairo_pattern_status" "int cairo_pattern_status(CairoPattern $pattern)" "cairo_scaled_font_get_type" "int cairo_scaled_font_get_type(CairoScaledFont $scaledfont)" "cairo_scaled_font_status" "int cairo_scaled_font_status(CairoScaledFont $scaledfont)" "cairo_status" "int cairo_status(CairoContext $context)" "cairo_surface_get_content" "int cairo_surface_get_content(CairoSurface $surface)" "cairo_surface_get_type" "int cairo_surface_get_type(CairoSurface $surface)" "cairo_surface_status" "int cairo_surface_status(CairoSurface $surface)" "cairo_version" "int cairo_version()" "cal_days_in_month" "int cal_days_in_month(int $calendar, int $month, int $year)" "cal_to_jd" "int cal_to_jd(int $calendar, int $month, int $day, int $year)" "collator_compare" "int collator_compare(string $str1, string $str2, Collator $coll)" "collator_get_attribute" "int collator_get_attribute(int $attr, Collator $coll)" "collator_get_error_code" "int collator_get_error_code(Collator $coll)" "collator_get_strength" "int collator_get_strength(Collator $coll)" "connection_aborted" "int connection_aborted()" "connection_status" "int connection_status()" "connection_timeout" "int connection_timeout()" "count" "int count(mixed $var [, int $mode = COUNT_NORMAL])" "crc32" "int crc32(string $str)" "cubrid_affected_rows" "int cubrid_affected_rows([resource $req_identifier = ''])" "cubrid_close_prepare" "int cubrid_close_prepare(resource $req_identifier)" "cubrid_col_size" "int cubrid_col_size(resource $conn_identifier, string $oid, string $attr_name)" "cubrid_data_seek" "int cubrid_data_seek(resource $req_identifier, int $row_number)" "cubrid_errno" "int cubrid_errno([resource $conn_identifier = ''])" "cubrid_error_code" "int cubrid_error_code()" "cubrid_error_code_facility" "int cubrid_error_code_facility()" "cubrid_field_len" "int cubrid_field_len(resource $result, int $field_offset)" "cubrid_is_instance" "int cubrid_is_instance(resource $conn_identifier, string $oid)" "cubrid_load_from_glo" "int cubrid_load_from_glo(resource $conn_identifier, string $oid, string $file_name)" "cubrid_move_cursor" "int cubrid_move_cursor(resource $req_identifier, int $offset [, int $origin = CUBRID_CURSOR_CURRENT])" "cubrid_num_cols" "int cubrid_num_cols(resource $req_identifier)" "cubrid_num_fields" "int cubrid_num_fields(resource $result)" "cubrid_num_rows" "int cubrid_num_rows(resource $req_identifier)" "cubrid_put" "int cubrid_put(resource $conn_identifier, string $oid [, string $attr = '', mixed $value])" "cubrid_save_to_glo" "int cubrid_save_to_glo(resource $conn_identifier, string $oid, string $file_name)" "cubrid_send_glo" "int cubrid_send_glo(resource $conn_identifier, string $oid)" "curl_errno" "int curl_errno(resource $ch)" "curl_multi_add_handle" "int curl_multi_add_handle(resource $mh, resource $ch)" "curl_multi_exec" "int curl_multi_exec(resource $mh, int $still_running)" "curl_multi_remove_handle" "int curl_multi_remove_handle(resource $mh, resource $ch)" "curl_multi_select" "int curl_multi_select(resource $mh [, float $timeout = 1.0])" "datefmt_get_calendar" "int datefmt_get_calendar(IntlDateFormatter $fmt)" "datefmt_get_datetype" "int datefmt_get_datetype(IntlDateFormatter $fmt)" "datefmt_get_error_code" "int datefmt_get_error_code(IntlDateFormatter $fmt)" "datefmt_get_timetype" "int datefmt_get_timetype(IntlDateFormatter $fmt)" "datefmt_parse" "int datefmt_parse(string $value [, int $position = '', IntlDateFormatter $fmt])" "db2_cursor_type" "int db2_cursor_type(resource $stmt)" "db2_field_display_size" "int db2_field_display_size(resource $stmt, mixed $column)" "db2_field_num" "int db2_field_num(resource $stmt, mixed $column)" "db2_field_precision" "int db2_field_precision(resource $stmt, mixed $column)" "db2_field_scale" "int db2_field_scale(resource $stmt, mixed $column)" "db2_field_width" "int db2_field_width(resource $stmt, mixed $column)" "db2_num_fields" "int db2_num_fields(resource $stmt)" "dbase_create" "int dbase_create(string $filename, array $fields)" "dbase_numfields" "int dbase_numfields(int $dbase_identifier)" "dbase_numrecords" "int dbase_numrecords(int $dbase_identifier)" "dbase_open" "int dbase_open(string $filename, int $mode)" "dbplus_add" "int dbplus_add(resource $relation, array $tuple)" "dbplus_curr" "int dbplus_curr(resource $relation, array $tuple)" "dbplus_errno" "int dbplus_errno()" "dbplus_find" "int dbplus_find(resource $relation, array $constraints, mixed $tuple)" "dbplus_first" "int dbplus_first(resource $relation, array $tuple)" "dbplus_flush" "int dbplus_flush(resource $relation)" "dbplus_freealllocks" "int dbplus_freealllocks()" "dbplus_freelock" "int dbplus_freelock(resource $relation, string $tuple)" "dbplus_freerlocks" "int dbplus_freerlocks(resource $relation)" "dbplus_getlock" "int dbplus_getlock(resource $relation, string $tuple)" "dbplus_getunique" "int dbplus_getunique(resource $relation, int $uniqueid)" "dbplus_info" "int dbplus_info(resource $relation, string $key, array $result)" "dbplus_last" "int dbplus_last(resource $relation, array $tuple)" "dbplus_lockrel" "int dbplus_lockrel(resource $relation)" "dbplus_next" "int dbplus_next(resource $relation, array $tuple)" "dbplus_prev" "int dbplus_prev(resource $relation, array $tuple)" "dbplus_rchperm" "int dbplus_rchperm(resource $relation, int $mask, string $user, string $group)" "dbplus_restorepos" "int dbplus_restorepos(resource $relation, array $tuple)" "dbplus_rrename" "int dbplus_rrename(resource $relation, string $name)" "dbplus_runlink" "int dbplus_runlink(resource $relation)" "dbplus_rzap" "int dbplus_rzap(resource $relation)" "dbplus_savepos" "int dbplus_savepos(resource $relation)" "dbplus_setindex" "int dbplus_setindex(resource $relation, string $idx_name)" "dbplus_setindexbynumber" "int dbplus_setindexbynumber(resource $relation, int $idx_number)" "dbplus_tremove" "int dbplus_tremove(resource $relation, array $tuple [, array $current = ''])" "dbplus_undo" "int dbplus_undo(resource $relation)" "dbplus_undoprepare" "int dbplus_undoprepare(resource $relation)" "dbplus_unlockrel" "int dbplus_unlockrel(resource $relation)" "dbplus_unselect" "int dbplus_unselect(resource $relation)" "dbplus_update" "int dbplus_update(resource $relation, array $old, array $new)" "dbplus_xlockrel" "int dbplus_xlockrel(resource $relation)" "dbplus_xunlockrel" "int dbplus_xunlockrel(resource $relation)" "dbx_close" "int dbx_close(object $link_identifier)" "dbx_compare" "int dbx_compare(array $row_a, array $row_b, string $column_key [, int $flags = DBX_CMP_ASC | DBX_CMP_NATIVE])" "dio_seek" "int dio_seek(resource $fd, int $pos [, int $whence = SEEK_SET])" "dio_write" "int dio_write(resource $fd, string $data [, int $len = ''])" "domxml_xslt_version" "int domxml_xslt_version()" "dotnet_load" "int dotnet_load(string $assembly_name [, string $datatype_name = '' [, int $codepage = '']])" "easter_date" "int easter_date([int $year = ''])" "easter_days" "int easter_days([int $year = '' [, int $method = CAL_EASTER_DEFAULT]])" "intval" "integer intval(mixed $var [, int $base = 10])" "max" "integer max(array $values, mixed $value1, mixed $value2 [, mixed $value3... = ''])" "mb_substitute_character" "integer mb_substitute_character([mixed $substrchar = ''])" "min" "integer min(array $values, mixed $value1, mixed $value2 [, mixed $value3... = ''])" "openssl_cipher_iv_length" "integer openssl_cipher_iv_length(string $method)" "pg_field_prtlen" "integer pg_field_prtlen(resource $result, int $row_number, mixed $field_name_or_number)" "ereg" "int ereg(string $pattern, string $string [, array $regs = ''])" "eregi" "int eregi(string $pattern, string $string [, array $regs = ''])" "error_reporting" "int error_reporting([int $level = ''])" "event_base_loop" "int event_base_loop(resource $event_base [, int $flags = ''])" "exif_imagetype" "int exif_imagetype(string $filename)" "expect_expectl" "int expect_expectl(resource $expect, array $cases [, array $match = ''])" "extract" "int extract(array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix = '']])" "ezmlm_hash" "int ezmlm_hash(string $addr)" "fam_pending" "int fam_pending(resource $fam)" "fbsql_affected_rows" "int fbsql_affected_rows([resource $link_identifier = ''])" "fbsql_blob_size" "int fbsql_blob_size(string $blob_handle [, resource $link_identifier = ''])" "fbsql_clob_size" "int fbsql_clob_size(string $clob_handle [, resource $link_identifier = ''])" "fbsql_db_status" "int fbsql_db_status(string $database_name [, resource $link_identifier = ''])" "fbsql_errno" "int fbsql_errno([resource $link_identifier = ''])" "fbsql_field_len" "int fbsql_field_len(resource $result [, int $field_offset = ''])" "fbsql_insert_id" "int fbsql_insert_id([resource $link_identifier = ''])" "fbsql_num_fields" "int fbsql_num_fields(resource $result)" "fbsql_num_rows" "int fbsql_num_rows(resource $result)" "fbsql_rows_fetched" "int fbsql_rows_fetched(resource $result)" "fdf_errno" "int fdf_errno()" "fdf_get_flags" "int fdf_get_flags(resource $fdf_document, string $fieldname, int $whichflags)" "fileatime" "int fileatime(string $filename)" "filectime" "int filectime(string $filename)" "filegroup" "int filegroup(string $filename)" "fileinode" "int fileinode(string $filename)" "filemtime" "int filemtime(string $filename)" "fileowner" "int fileowner(string $filename)" "fileperms" "int fileperms(string $filename)" "filepro_fieldcount" "int filepro_fieldcount()" "filepro_fieldwidth" "int filepro_fieldwidth(int $field_number)" "filepro_rowcount" "int filepro_rowcount()" "filesize" "int filesize(string $filename)" "file_put_contents" "int file_put_contents(string $filename, mixed $data [, int $flags = '' [, resource $context = '']])" "filter_id" "int filter_id(string $filtername)" "fpassthru" "int fpassthru(resource $handle)" "fprintf" "int fprintf(resource $handle, string $format [, mixed $args = '' [, mixed $... = '']])" "fputcsv" "int fputcsv(resource $handle, array $fields [, string $delimiter = ',' [, string $enclosure = '\"']])" "FrenchToJD" "int FrenchToJD(int $month, int $day, int $year)" "fseek" "int fseek(resource $handle, int $offset [, int $whence = SEEK_SET])" "ftell" "int ftell(resource $handle)" "ftok" "int ftok(string $pathname, string $proj)" "ftp_chmod" "int ftp_chmod(resource $ftp_stream, int $mode, string $filename)" "ftp_mdtm" "int ftp_mdtm(resource $ftp_stream, string $remote_file)" "ftp_nb_continue" "int ftp_nb_continue(resource $ftp_stream)" "ftp_nb_fget" "int ftp_nb_fget(resource $ftp_stream, resource $handle, string $remote_file, int $mode [, int $resumepos = ''])" "ftp_nb_fput" "int ftp_nb_fput(resource $ftp_stream, string $remote_file, resource $handle, int $mode [, int $startpos = ''])" "ftp_nb_get" "int ftp_nb_get(resource $ftp_stream, string $local_file, string $remote_file, int $mode [, int $resumepos = ''])" "ftp_nb_put" "int ftp_nb_put(resource $ftp_stream, string $remote_file, string $local_file, int $mode [, int $startpos = ''])" "ftp_size" "int ftp_size(resource $ftp_stream, string $remote_file)" "func_num_args" "int func_num_args()" "fwrite" "int fwrite(resource $handle, string $string [, int $length = ''])" "gc_collect_cycles" "int gc_collect_cycles()" "geoip_id_by_name" "int geoip_id_by_name(string $hostname)" "getlastmod" "int getlastmod()" "getmygid" "int getmygid()" "getmyinode" "int getmyinode()" "getmypid" "int getmypid()" "getmyuid" "int getmyuid()" "getprotobyname" "int getprotobyname(string $name)" "getrandmax" "int getrandmax()" "getservbyname" "int getservbyname(string $service, string $protocol)" "get_magic_quotes_gpc" "int get_magic_quotes_gpc()" "get_magic_quotes_runtime" "int get_magic_quotes_runtime()" "gmmktime" "int gmmktime([int $hour = gmdate(\"H\") [, int $minute = gmdate(\"i\") [, int $second = gmdate(\"s\") [, int $month = gmdate(\"n\") [, int $day = gmdate(\"j\") [, int $year = gmdate(\"Y\") [, int $is_dst = -1]]]]]]])" "gmp_cmp" "int gmp_cmp(resource $a, resource $b)" "gmp_hamdist" "int gmp_hamdist(resource $a, resource $b)" "gmp_intval" "int gmp_intval(resource $gmpnumber)" "gmp_jacobi" "int gmp_jacobi(resource $a, resource $p)" "gmp_legendre" "int gmp_legendre(resource $a, resource $p)" "gmp_popcount" "int gmp_popcount(resource $a)" "gmp_prob_prime" "int gmp_prob_prime(resource $a [, int $reps = 10])" "gmp_scan0" "int gmp_scan0(resource $a, int $start)" "gmp_scan1" "int gmp_scan1(resource $a, int $start)" "gmp_sign" "int gmp_sign(resource $a)" "gnupg_getprotocol" "int gnupg_getprotocol(resource $identifier)" "grapheme_stripos" "int grapheme_stripos(string $haystack, string $needle [, int $offset = ''])" "grapheme_strlen" "int grapheme_strlen(string $input)" "grapheme_strpos" "int grapheme_strpos(string $haystack, string $needle [, int $offset = ''])" "grapheme_strripos" "int grapheme_strripos(string $haystack, string $needle [, int $offset = ''])" "grapheme_strrpos" "int grapheme_strrpos(string $haystack, string $needle [, int $offset = ''])" "grapheme_substr" "int grapheme_substr(string $string, int $start [, int $length = ''])" "GregorianToJD" "int GregorianToJD(int $month, int $day, int $year)" "gupnp_context_get_port" "int gupnp_context_get_port(resource $context)" "gupnp_context_get_subscription_timeout" "int gupnp_context_get_subscription_timeout(resource $context)" "gzeof" "int gzeof(resource $zp)" "gzpassthru" "int gzpassthru(resource $zp)" "gzseek" "int gzseek(resource $zp, int $offset [, int $whence = SEEK_SET])" "gztell" "int gztell(resource $zp)" "gzwrite" "int gzwrite(resource $zp, string $string [, int $length = ''])" "hash_update_stream" "int hash_update_stream(resource $context, resource $handle [, int $length = -1])" "http_request_method_exists" "int http_request_method_exists(mixed $method)" "http_request_method_register" "int http_request_method_register(string $method)" "http_support" "int http_support([int $feature = ''])" "hw_Connect" "int hw_Connect(string $host, int $port [, string $username = '', string $password])" "hw_cp" "int hw_cp(int $connection, array $object_id_array, int $destination_id)" "hw_DocByAnchor" "int hw_DocByAnchor(int $connection, int $anchorID)" "hw_Document_Size" "int hw_Document_Size(int $hw_document)" "hw_Error" "int hw_Error(int $connection)" "hw_GetRemote" "int hw_GetRemote(int $connection, int $objectID)" "hw_GetText" "int hw_GetText(int $connection, int $objectID [, mixed $rootID/prefix = ''])" "hw_InsColl" "int hw_InsColl(int $connection, int $objectID, array $object_array)" "hw_InsDoc" "int hw_InsDoc(resource $connection, int $parentID, string $object_record [, string $text = ''])" "hw_InsertDocument" "int hw_InsertDocument(int $connection, int $parent_id, int $hw_document)" "hw_InsertObject" "int hw_InsertObject(int $connection, string $object_rec, string $parameter)" "hw_mapid" "int hw_mapid(int $connection, int $server_id, int $object_id)" "hw_mv" "int hw_mv(int $connection, array $object_id_array, int $source_id, int $destination_id)" "hw_New_Document" "int hw_New_Document(string $object_record, string $document_data, int $document_size)" "hw_pConnect" "int hw_pConnect(string $host, int $port [, string $username = '', string $password])" "hw_PipeDocument" "int hw_PipeDocument(int $connection, int $objectID [, array $url_prefixes = ''])" "hw_Root" "int hw_Root()" "hw_setlinkroot" "int hw_setlinkroot(int $link, int $rootid)" "ibase_affected_rows" "int ibase_affected_rows([resource $link_identifier = ''])" "ibase_errcode" "int ibase_errcode()" "ibase_num_fields" "int ibase_num_fields(resource $result_id)" "ibase_num_params" "int ibase_num_params(resource $query)" "iconv_strlen" "int iconv_strlen(string $str [, string $charset = ini_get(\"iconv.internal_encoding\")])" "iconv_strpos" "int iconv_strpos(string $haystack, string $needle [, int $offset = '' [, string $charset = ini_get(\"iconv.internal_encoding\")]])" "iconv_strrpos" "int iconv_strrpos(string $haystack, string $needle [, string $charset = ini_get(\"iconv.internal_encoding\")])" "id3_get_genre_id" "int id3_get_genre_id(string $genre)" "id3_get_version" "int id3_get_version(string $filename)" "idate" "int idate(string $format [, int $timestamp = time()])" "ifxus_create_slob" "int ifxus_create_slob(int $mode)" "ifxus_open_slob" "int ifxus_open_slob(int $bid, int $mode)" "ifxus_seek_slob" "int ifxus_seek_slob(int $bid, int $mode, int $offset)" "ifxus_tell_slob" "int ifxus_tell_slob(int $bid)" "ifxus_write_slob" "int ifxus_write_slob(int $bid, string $content)" "ifx_affected_rows" "int ifx_affected_rows(resource $result_id)" "ifx_copy_blob" "int ifx_copy_blob(int $bid)" "ifx_create_blob" "int ifx_create_blob(int $type, int $mode, string $param)" "ifx_create_char" "int ifx_create_char(string $param)" "ifx_htmltbl_result" "int ifx_htmltbl_result(resource $result_id [, string $html_table_options = ''])" "ifx_num_fields" "int ifx_num_fields(resource $result_id)" "ifx_num_rows" "int ifx_num_rows(resource $result_id)" "ignore_user_abort" "int ignore_user_abort([string $value = ''])" "iis_add_server" "int iis_add_server(string $path, string $comment, string $server_ip, int $port, string $host_name, int $rights, int $start_server)" "iis_get_dir_security" "int iis_get_dir_security(int $server_instance, string $virtual_path)" "iis_get_server_by_comment" "int iis_get_server_by_comment(string $comment)" "iis_get_server_by_path" "int iis_get_server_by_path(string $path)" "iis_get_server_rights" "int iis_get_server_rights(int $server_instance, string $virtual_path)" "iis_get_service_state" "int iis_get_service_state(string $service_id)" "iis_remove_server" "int iis_remove_server(int $server_instance)" "iis_set_app_settings" "int iis_set_app_settings(int $server_instance, string $virtual_path, string $application_scope)" "iis_set_dir_security" "int iis_set_dir_security(int $server_instance, string $virtual_path, int $directory_flags)" "iis_set_script_map" "int iis_set_script_map(int $server_instance, string $virtual_path, string $script_extension, string $engine_path, int $allow_scripting)" "iis_set_server_rights" "int iis_set_server_rights(int $server_instance, string $virtual_path, int $directory_flags)" "iis_start_server" "int iis_start_server(int $server_instance)" "iis_start_service" "int iis_start_service(string $service_id)" "iis_stop_server" "int iis_stop_server(int $server_instance)" "iis_stop_service" "int iis_stop_service(string $service_id)" "imagecolorallocate" "int imagecolorallocate(resource $image, int $red, int $green, int $blue)" "imagecolorallocatealpha" "int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)" "imagecolorat" "int imagecolorat(resource $image, int $x, int $y)" "imagecolorclosest" "int imagecolorclosest(resource $image, int $red, int $green, int $blue)" "imagecolorclosestalpha" "int imagecolorclosestalpha(resource $image, int $red, int $green, int $blue, int $alpha)" "imagecolorclosesthwb" "int imagecolorclosesthwb(resource $image, int $red, int $green, int $blue)" "imagecolorexact" "int imagecolorexact(resource $image, int $red, int $green, int $blue)" "imagecolorexactalpha" "int imagecolorexactalpha(resource $image, int $red, int $green, int $blue, int $alpha)" "imagecolorresolve" "int imagecolorresolve(resource $image, int $red, int $green, int $blue)" "imagecolorresolvealpha" "int imagecolorresolvealpha(resource $image, int $red, int $green, int $blue, int $alpha)" "imagecolorstotal" "int imagecolorstotal(resource $image)" "imagecolortransparent" "int imagecolortransparent(resource $image [, int $color = ''])" "imagefontheight" "int imagefontheight(int $font)" "imagefontwidth" "int imagefontwidth(int $font)" "imageinterlace" "int imageinterlace(resource $image [, int $interlace = ''])" "imageloadfont" "int imageloadfont(string $file)" "imagesx" "int imagesx(resource $image)" "imagesy" "int imagesy(resource $image)" "imagetypes" "int imagetypes()" "imap_msgno" "int imap_msgno(resource $imap_stream, int $uid)" "imap_num_msg" "int imap_num_msg(resource $imap_stream)" "imap_num_recent" "int imap_num_recent(resource $imap_stream)" "imap_uid" "int imap_uid(resource $imap_stream, int $msg_number)" "ingres_errno" "int ingres_errno([resource $link = ''])" "ingres_fetch_proc_return" "int ingres_fetch_proc_return(resource $result)" "ingres_field_length" "int ingres_field_length(resource $result, int $index)" "ingres_field_precision" "int ingres_field_precision(resource $result, int $index)" "ingres_field_scale" "int ingres_field_scale(resource $result, int $index)" "ingres_num_fields" "int ingres_num_fields(resource $result)" "ingres_num_rows" "int ingres_num_rows(resource $result)" "inotify_add_watch" "int inotify_add_watch(resource $inotify_instance, string $pathname, int $mask)" "inotify_queue_len" "int inotify_queue_len(resource $inotify_instance)" "intl_get_error_code" "int intl_get_error_code()" "ip2long" "int ip2long(string $ip_address)" "iterator_apply" "int iterator_apply(Traversable $iterator, callback $function [, array $args = ''])" "iterator_count" "int iterator_count(Traversable $iterator)" "jdtounix" "int jdtounix(int $jday)" "JewishToJD" "int JewishToJD(int $month, int $day, int $year)" "json_last_error" "int json_last_error()" "judy_type" "int judy_type(Judy $array)" "JulianToJD" "int JulianToJD(int $month, int $day, int $year)" "ldap_count_entries" "int ldap_count_entries(resource $link_identifier, resource $result_identifier)" "ldap_errno" "int ldap_errno(resource $link_identifier)" "datefmt_create" "IntlDateFormatter datefmt_create(string $locale, int $datetype, int $timetype [, string $timezone = '' [, int $calendar = '' [, string $pattern = '']]])" "levenshtein" "int levenshtein(string $str1, string $str2, int $cost_ins, int $cost_rep, int $cost_del)" "linkinfo" "int linkinfo(string $path)" "lzf_optimized_for" "int lzf_optimized_for()" "maxdb_affected_rows" "int maxdb_affected_rows(resource $link)" "maxdb_connect_errno" "int maxdb_connect_errno()" "maxdb_errno" "int maxdb_errno(resource $link)" "maxdb_field_count" "int maxdb_field_count(resource $link)" "maxdb_field_tell" "int maxdb_field_tell(resource $result)" "maxdb_get_client_version" "int maxdb_get_client_version()" "maxdb_get_server_version" "int maxdb_get_server_version(resource $link)" "maxdb_num_fields" "int maxdb_num_fields(resource $result)" "maxdb_num_rows" "int maxdb_num_rows(resource $result)" "maxdb_rpl_parse_enabled" "int maxdb_rpl_parse_enabled(resource $link)" "maxdb_rpl_query_type" "int maxdb_rpl_query_type(resource $link)" "maxdb_stmt_affected_rows" "int maxdb_stmt_affected_rows(resource $stmt)" "maxdb_stmt_errno" "int maxdb_stmt_errno(resource $stmt)" "maxdb_stmt_num_rows" "int maxdb_stmt_num_rows(resource $stmt)" "maxdb_stmt_param_count" "int maxdb_stmt_param_count(resource $stmt)" "maxdb_thread_id" "int maxdb_thread_id(resource $link)" "maxdb_warning_count" "int maxdb_warning_count(resource $link)" "mb_ereg" "int mb_ereg(string $pattern, string $string [, array $regs = ''])" "mb_eregi" "int mb_eregi(string $pattern, string $string [, array $regs = ''])" "mb_ereg_search_getpos" "int mb_ereg_search_getpos()" "mb_stripos" "int mb_stripos(string $haystack, string $needle [, int $offset = '' [, string $encoding = '']])" "mb_strripos" "int mb_strripos(string $haystack, string $needle [, int $offset = '' [, string $encoding = '']])" "mb_strrpos" "int mb_strrpos(string $haystack, string $needle [, int $offset = '' [, string $encoding = '']])" "mcrypt_enc_get_block_size" "int mcrypt_enc_get_block_size(resource $td)" "mcrypt_enc_get_iv_size" "int mcrypt_enc_get_iv_size(resource $td)" "mcrypt_enc_get_key_size" "int mcrypt_enc_get_key_size(resource $td)" "mcrypt_enc_self_test" "int mcrypt_enc_self_test(resource $td)" "mcrypt_generic_init" "int mcrypt_generic_init(resource $td, string $key, string $iv)" "mcrypt_get_block_size" "int mcrypt_get_block_size(string $cipher, string $module)" "mcrypt_get_iv_size" "int mcrypt_get_iv_size(string $cipher, string $mode)" "mcrypt_get_key_size" "int mcrypt_get_key_size(string $cipher, string $module)" "mcrypt_module_get_algo_block_size" "int mcrypt_module_get_algo_block_size(string $algorithm [, string $lib_dir = ''])" "mcrypt_module_get_algo_key_size" "int mcrypt_module_get_algo_key_size(string $algorithm [, string $lib_dir = ''])" "memory_get_peak_usage" "int memory_get_peak_usage([bool $real_usage = false])" "memory_get_usage" "int memory_get_usage([bool $real_usage = false])" "mhash_count" "int mhash_count()" "mhash_get_block_size" "int mhash_get_block_size(int $hash)" "ming_keypress" "int ming_keypress(string $char)" "mktime" "int mktime([int $hour = date(\"H\") [, int $minute = date(\"i\") [, int $second = date(\"s\") [, int $month = date(\"n\") [, int $day = date(\"j\") [, int $year = date(\"Y\") [, int $is_dst = -1]]]]]]])" "msession_count" "int msession_count()" "msession_lock" "int msession_lock(string $name)" "msession_timeout" "int msession_timeout(string $session [, int $param = ''])" "msession_unlock" "int msession_unlock(string $session, int $key)" "msgfmt_get_error_code" "int msgfmt_get_error_code(MessageFormatter $fmt)" "msql_affected_rows" "int msql_affected_rows(resource $result)" "msql_field_len" "int msql_field_len(resource $result, int $field_offset)" "msql_field_table" "int msql_field_table(resource $result, int $field_offset)" "msql_num_fields" "int msql_num_fields(resource $result)" "msql_num_rows" "int msql_num_rows(resource $query_identifier)" "mssql_fetch_batch" "int mssql_fetch_batch(resource $result)" "mssql_field_length" "int mssql_field_length(resource $result [, int $offset = -1])" "mssql_num_fields" "int mssql_num_fields(resource $result)" "mssql_num_rows" "int mssql_num_rows(resource $result)" "mssql_rows_affected" "int mssql_rows_affected(resource $link_identifier)" "mt_getrandmax" "int mt_getrandmax()" "mt_rand" "int mt_rand(int $min, int $max)" "mysqli_affected_rows" "int mysqli_affected_rows(mysqli $link)" "mysqli_connect_errno" "int mysqli_connect_errno()" "mysqli_errno" "int mysqli_errno(mysqli $link)" "mysqli_field_count" "int mysqli_field_count(mysqli $link)" "mysqli_field_tell" "int mysqli_field_tell(mysqli_result $result)" "mysqli_get_client_version" "int mysqli_get_client_version(mysqli $link)" "mysqli_get_proto_info" "int mysqli_get_proto_info(mysqli $link)" "mysqli_get_server_version" "int mysqli_get_server_version(mysqli $link)" "mysqli_num_fields" "int mysqli_num_fields(mysqli_result $result)" "mysqli_num_rows" "int mysqli_num_rows(mysqli_result $result)" "mysqli_poll" "int mysqli_poll(array $read, array $error, array $reject, int $sec [, int $usec = ''])" "mysqli_rpl_parse_enabled" "int mysqli_rpl_parse_enabled(mysqli $link)" "mysqli_rpl_query_type" "int mysqli_rpl_query_type(string $query, mysqli $link)" "mysqli_stmt_affected_rows" "int mysqli_stmt_affected_rows(mysqli_stmt $stmt)" "mysqli_stmt_attr_get" "int mysqli_stmt_attr_get(int $attr, mysqli_stmt $stmt)" "mysqli_stmt_errno" "int mysqli_stmt_errno(mysqli_stmt $stmt)" "mysqli_stmt_field_count" "int mysqli_stmt_field_count(mysqli_stmt $stmt)" "mysqli_stmt_num_rows" "int mysqli_stmt_num_rows(mysqli_stmt $stmt)" "mysqli_stmt_param_count" "int mysqli_stmt_param_count(mysqli_stmt $stmt)" "mysqli_thread_id" "int mysqli_thread_id(mysqli $link)" "mysqli_warning_count" "int mysqli_warning_count(mysqli $link)" "mysqlnd_ms_query_is_select" "int mysqlnd_ms_query_is_select(string $query)" "mysql_affected_rows" "int mysql_affected_rows([resource $link_identifier = ''])" "mysql_errno" "int mysql_errno([resource $link_identifier = ''])" "mysql_field_len" "int mysql_field_len(resource $result, int $field_offset)" "mysql_get_proto_info" "int mysql_get_proto_info([resource $link_identifier = ''])" "mysql_insert_id" "int mysql_insert_id([resource $link_identifier = ''])" "mysql_num_fields" "int mysql_num_fields(resource $result)" "mysql_num_rows" "int mysql_num_rows(resource $result)" "mysql_thread_id" "int mysql_thread_id([resource $link_identifier = ''])" "m_checkstatus" "int m_checkstatus(resource $conn, int $identifier)" "m_completeauthorizations" "int m_completeauthorizations(resource $conn, int $array)" "m_connect" "int m_connect(resource $conn)" "m_initengine" "int m_initengine(string $location)" "m_iscommadelimited" "int m_iscommadelimited(resource $conn, int $identifier)" "m_monitor" "int m_monitor(resource $conn)" "m_numcolumns" "int m_numcolumns(resource $conn, int $identifier)" "m_numrows" "int m_numrows(resource $conn, int $identifier)" "m_parsecommadelimited" "int m_parsecommadelimited(resource $conn, int $identifier)" "m_returnstatus" "int m_returnstatus(resource $conn, int $identifier)" "m_setblocking" "int m_setblocking(resource $conn, int $tf)" "m_setdropfile" "int m_setdropfile(resource $conn, string $directory)" "m_setip" "int m_setip(resource $conn, string $host, int $port)" "m_setssl" "int m_setssl(resource $conn, string $host, int $port)" "m_setssl_cafile" "int m_setssl_cafile(resource $conn, string $cafile)" "m_setssl_files" "int m_setssl_files(resource $conn, string $sslkeyfile, string $sslcertfile)" "m_settimeout" "int m_settimeout(resource $conn, int $seconds)" "m_transactionssent" "int m_transactionssent(resource $conn)" "m_transinqueue" "int m_transinqueue(resource $conn)" "m_transkeyval" "int m_transkeyval(resource $conn, int $identifier, string $key, string $value)" "m_transnew" "int m_transnew(resource $conn)" "m_transsend" "int m_transsend(resource $conn, int $identifier)" "m_uwait" "int m_uwait(int $microsecs)" "m_validateidentifier" "int m_validateidentifier(resource $conn, int $tf)" "ncurses_addch" "int ncurses_addch(int $ch)" "ncurses_addchnstr" "int ncurses_addchnstr(string $s, int $n)" "ncurses_addchstr" "int ncurses_addchstr(string $s)" "ncurses_addnstr" "int ncurses_addnstr(string $s, int $n)" "ncurses_addstr" "int ncurses_addstr(string $text)" "ncurses_assume_default_colors" "int ncurses_assume_default_colors(int $fg, int $bg)" "ncurses_attroff" "int ncurses_attroff(int $attributes)" "ncurses_attron" "int ncurses_attron(int $attributes)" "ncurses_attrset" "int ncurses_attrset(int $attributes)" "ncurses_baudrate" "int ncurses_baudrate()" "ncurses_beep" "int ncurses_beep()" "ncurses_bkgd" "int ncurses_bkgd(int $attrchar)" "ncurses_border" "int ncurses_border(int $left, int $right, int $top, int $bottom, int $tl_corner, int $tr_corner, int $bl_corner, int $br_corner)" "ncurses_bottom_panel" "int ncurses_bottom_panel(resource $panel)" "ncurses_color_content" "int ncurses_color_content(int $color, int $r, int $g, int $b)" "ncurses_color_set" "int ncurses_color_set(int $pair)" "ncurses_curs_set" "int ncurses_curs_set(int $visibility)" "ncurses_define_key" "int ncurses_define_key(string $definition, int $keycode)" "ncurses_delay_output" "int ncurses_delay_output(int $milliseconds)" "ncurses_echochar" "int ncurses_echochar(int $character)" "ncurses_end" "int ncurses_end()" "ncurses_getch" "int ncurses_getch()" "ncurses_halfdelay" "int ncurses_halfdelay(int $tenth)" "ncurses_has_key" "int ncurses_has_key(int $keycode)" "ncurses_hide_panel" "int ncurses_hide_panel(resource $panel)" "ncurses_hline" "int ncurses_hline(int $charattr, int $n)" "ncurses_init_color" "int ncurses_init_color(int $color, int $r, int $g, int $b)" "ncurses_init_pair" "int ncurses_init_pair(int $pair, int $fg, int $bg)" "ncurses_insch" "int ncurses_insch(int $character)" "ncurses_insdelln" "int ncurses_insdelln(int $count)" "ncurses_insertln" "int ncurses_insertln()" "ncurses_insstr" "int ncurses_insstr(string $text)" "ncurses_instr" "int ncurses_instr(string $buffer)" "ncurses_keyok" "int ncurses_keyok(int $keycode, bool $enable)" "ncurses_keypad" "int ncurses_keypad(resource $window, bool $bf)" "ncurses_meta" "int ncurses_meta(resource $window, bool $8bit)" "ncurses_mouseinterval" "int ncurses_mouseinterval(int $milliseconds)" "ncurses_mousemask" "int ncurses_mousemask(int $newmask, int $oldmask)" "ncurses_move" "int ncurses_move(int $y, int $x)" "ncurses_move_panel" "int ncurses_move_panel(resource $panel, int $startx, int $starty)" "ncurses_mvaddch" "int ncurses_mvaddch(int $y, int $x, int $c)" "ncurses_mvaddchnstr" "int ncurses_mvaddchnstr(int $y, int $x, string $s, int $n)" "ncurses_mvaddchstr" "int ncurses_mvaddchstr(int $y, int $x, string $s)" "ncurses_mvaddnstr" "int ncurses_mvaddnstr(int $y, int $x, string $s, int $n)" "ncurses_mvaddstr" "int ncurses_mvaddstr(int $y, int $x, string $s)" "ncurses_mvcur" "int ncurses_mvcur(int $old_y, int $old_x, int $new_y, int $new_x)" "ncurses_mvdelch" "int ncurses_mvdelch(int $y, int $x)" "ncurses_mvgetch" "int ncurses_mvgetch(int $y, int $x)" "ncurses_mvhline" "int ncurses_mvhline(int $y, int $x, int $attrchar, int $n)" "ncurses_mvinch" "int ncurses_mvinch(int $y, int $x)" "ncurses_mvvline" "int ncurses_mvvline(int $y, int $x, int $attrchar, int $n)" "ncurses_mvwaddstr" "int ncurses_mvwaddstr(resource $window, int $y, int $x, string $text)" "ncurses_napms" "int ncurses_napms(int $milliseconds)" "ncurses_pair_content" "int ncurses_pair_content(int $pair, int $f, int $b)" "ncurses_pnoutrefresh" "int ncurses_pnoutrefresh(resource $pad, int $pminrow, int $pmincol, int $sminrow, int $smincol, int $smaxrow, int $smaxcol)" "ncurses_prefresh" "int ncurses_prefresh(resource $pad, int $pminrow, int $pmincol, int $sminrow, int $smincol, int $smaxrow, int $smaxcol)" "ncurses_putp" "int ncurses_putp(string $text)" "ncurses_refresh" "int ncurses_refresh(int $ch)" "ncurses_replace_panel" "int ncurses_replace_panel(resource $panel, resource $window)" "ncurses_reset_prog_mode" "int ncurses_reset_prog_mode()" "ncurses_reset_shell_mode" "int ncurses_reset_shell_mode()" "ncurses_scrl" "int ncurses_scrl(int $count)" "ncurses_scr_dump" "int ncurses_scr_dump(string $filename)" "ncurses_scr_init" "int ncurses_scr_init(string $filename)" "ncurses_scr_restore" "int ncurses_scr_restore(string $filename)" "ncurses_scr_set" "int ncurses_scr_set(string $filename)" "ncurses_show_panel" "int ncurses_show_panel(resource $panel)" "ncurses_slk_attr" "int ncurses_slk_attr()" "ncurses_slk_attroff" "int ncurses_slk_attroff(int $intarg)" "ncurses_slk_attron" "int ncurses_slk_attron(int $intarg)" "ncurses_slk_attrset" "int ncurses_slk_attrset(int $intarg)" "ncurses_slk_color" "int ncurses_slk_color(int $intarg)" "ncurses_slk_refresh" "int ncurses_slk_refresh()" "ncurses_slk_restore" "int ncurses_slk_restore()" "ncurses_slk_touch" "int ncurses_slk_touch()" "ncurses_standend" "int ncurses_standend()" "ncurses_standout" "int ncurses_standout()" "ncurses_start_color" "int ncurses_start_color()" "ncurses_top_panel" "int ncurses_top_panel(resource $panel)" "ncurses_typeahead" "int ncurses_typeahead(int $fd)" "ncurses_ungetch" "int ncurses_ungetch(int $keycode)" "ncurses_use_extended_names" "int ncurses_use_extended_names(bool $flag)" "ncurses_vidattr" "int ncurses_vidattr(int $intarg)" "ncurses_vline" "int ncurses_vline(int $charattr, int $n)" "ncurses_waddch" "int ncurses_waddch(resource $window, int $ch)" "ncurses_waddstr" "int ncurses_waddstr(resource $window, string $str [, int $n = ''])" "ncurses_wattroff" "int ncurses_wattroff(resource $window, int $attrs)" "ncurses_wattron" "int ncurses_wattron(resource $window, int $attrs)" "ncurses_wattrset" "int ncurses_wattrset(resource $window, int $attrs)" "ncurses_wborder" "int ncurses_wborder(resource $window, int $left, int $right, int $top, int $bottom, int $tl_corner, int $tr_corner, int $bl_corner, int $br_corner)" "ncurses_wclear" "int ncurses_wclear(resource $window)" "ncurses_wcolor_set" "int ncurses_wcolor_set(resource $window, int $color_pair)" "ncurses_werase" "int ncurses_werase(resource $window)" "ncurses_wgetch" "int ncurses_wgetch(resource $window)" "ncurses_whline" "int ncurses_whline(resource $window, int $charattr, int $n)" "ncurses_wmove" "int ncurses_wmove(resource $window, int $y, int $x)" "ncurses_wnoutrefresh" "int ncurses_wnoutrefresh(resource $window)" "ncurses_wrefresh" "int ncurses_wrefresh(resource $window)" "ncurses_wstandend" "int ncurses_wstandend(resource $window)" "ncurses_wstandout" "int ncurses_wstandout(resource $window)" "ncurses_wvline" "int ncurses_wvline(resource $window, int $charattr, int $n)" "newt_centered_window" "int newt_centered_window(int $width, int $height [, string $title = ''])" "newt_finished" "int newt_finished()" "newt_init" "int newt_init()" "newt_listbox_item_count" "int newt_listbox_item_count(resource $listbox)" "newt_open_window" "int newt_open_window(int $left, int $top, int $width, int $height [, string $title = ''])" "newt_textbox_get_num_lines" "int newt_textbox_get_num_lines(resource $textbox)" "newt_win_choice" "int newt_win_choice(string $title, string $button1_text, string $button2_text, string $format [, mixed $args = '' [, mixed $... = '']])" "newt_win_entries" "int newt_win_entries(string $title, string $text, int $suggested_width, int $flex_down, int $flex_up, int $data_width, array $items, string $button1 [, string $... = ''])" "newt_win_menu" "int newt_win_menu(string $title, string $text, int $suggestedWidth, int $flexDown, int $flexUp, int $maxListHeight, array $items, int $listItem [, string $button1 = '' [, string $... = '']])" "newt_win_ternary" "int newt_win_ternary(string $title, string $button1_text, string $button2_text, string $button3_text, string $format [, mixed $args = '' [, mixed $... = '']])" "notes_find_note" "int notes_find_note(string $database_name, string $name [, string $type = ''])" "numfmt_get_attribute" "int numfmt_get_attribute(int $attr, NumberFormatter $fmt)" "numfmt_get_error_code" "int numfmt_get_error_code(NumberFormatter $fmt)" "ob_get_length" "int ob_get_length()" "ob_get_level" "int ob_get_level()" "ocifetchinto" "int ocifetchinto(resource $statement, array $result [, int $mode = + ])" "oci_fetch_all" "int oci_fetch_all(resource $statement, array $output [, int $skip = '' [, int $maxrows = -1 [, int $flags = + ]]])" "oci_field_precision" "int oci_field_precision(resource $statement, int $field)" "oci_field_scale" "int oci_field_scale(resource $statement, int $field)" "oci_field_size" "int oci_field_size(resource $statement, mixed $field)" "oci_field_type_raw" "int oci_field_type_raw(resource $statement, int $field)" "oci_num_fields" "int oci_num_fields(resource $statement)" "oci_num_rows" "int oci_num_rows(resource $statement)" "odbc_field_len" "int odbc_field_len(resource $result_id, int $field_number)" "odbc_field_num" "int odbc_field_num(resource $result_id, string $field_name)" "odbc_field_scale" "int odbc_field_scale(resource $result_id, int $field_number)" "odbc_num_fields" "int odbc_num_fields(resource $result_id)" "odbc_num_rows" "int odbc_num_rows(resource $result_id)" "odbc_result_all" "int odbc_result_all(resource $result_id [, string $format = ''])" "openal_buffer_get" "int openal_buffer_get(resource $buffer, int $property)" "openssl_seal" "int openssl_seal(string $data, string $sealed_data, array $env_keys, array $pub_key_ids [, string $method = ''])" "openssl_verify" "int openssl_verify(string $data, string $signature, mixed $pub_key_id [, int $signature_alg = OPENSSL_ALGO_SHA1])" "openssl_x509_checkpurpose" "int openssl_x509_checkpurpose(mixed $x509cert, int $purpose [, array $cainfo = array() [, string $untrustedfile = '']])" "ord" "int ord(string $string)" "ovrimos_connect" "int ovrimos_connect(string $host, string $dborport, string $user, string $password)" "ovrimos_exec" "int ovrimos_exec(int $connection_id, string $query)" "ovrimos_field_len" "int ovrimos_field_len(int $result_id, int $field_number)" "ovrimos_field_num" "int ovrimos_field_num(int $result_id, string $field_name)" "ovrimos_field_type" "int ovrimos_field_type(int $result_id, int $field_number)" "ovrimos_num_fields" "int ovrimos_num_fields(int $result_id)" "ovrimos_num_rows" "int ovrimos_num_rows(int $result_id)" "ovrimos_prepare" "int ovrimos_prepare(int $connection_id, string $query)" "ovrimos_result_all" "int ovrimos_result_all(int $result_id [, string $format = ''])" "pclose" "int pclose(resource $handle)" "pcntl_alarm" "int pcntl_alarm(int $seconds)" "pcntl_fork" "int pcntl_fork()" "pcntl_getpriority" "int pcntl_getpriority([int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS]])" "pcntl_sigtimedwait" "int pcntl_sigtimedwait(array $set [, array $siginfo = '' [, int $seconds = '' [, int $nanoseconds = '']]])" "pcntl_sigwaitinfo" "int pcntl_sigwaitinfo(array $set [, array $siginfo = ''])" "pcntl_wait" "int pcntl_wait(int $status [, int $options = ''])" "pcntl_waitpid" "int pcntl_waitpid(int $pid, int $status [, int $options = ''])" "pcntl_wexitstatus" "int pcntl_wexitstatus(int $status)" "pcntl_wstopsig" "int pcntl_wstopsig(int $status)" "pcntl_wtermsig" "int pcntl_wtermsig(int $status)" "PDF_add_table_cell" "int PDF_add_table_cell(resource $pdfdoc, int $table, int $column, int $row, string $text, string $optlist)" "PDF_add_textflow" "int PDF_add_textflow(resource $pdfdoc, int $textflow, string $text, string $optlist)" "PDF_begin_document" "int PDF_begin_document(resource $pdfdoc, string $filename, string $optlist)" "PDF_begin_item" "int PDF_begin_item(resource $pdfdoc, string $tag, string $optlist)" "PDF_begin_pattern" "int PDF_begin_pattern(resource $pdfdoc, float $width, float $height, float $xstep, float $ystep, int $painttype)" "PDF_begin_template" "int PDF_begin_template(resource $pdfdoc, float $width, float $height)" "PDF_begin_template_ext" "int PDF_begin_template_ext(resource $pdfdoc, float $width, float $height, string $optlist)" "PDF_create_3dview" "int PDF_create_3dview(resource $pdfdoc, string $username, string $optlist)" "PDF_create_action" "int PDF_create_action(resource $pdfdoc, string $type, string $optlist)" "PDF_create_bookmark" "int PDF_create_bookmark(resource $pdfdoc, string $text, string $optlist)" "PDF_create_gstate" "int PDF_create_gstate(resource $pdfdoc, string $optlist)" "PDF_create_textflow" "int PDF_create_textflow(resource $pdfdoc, string $text, string $optlist)" "PDF_define_layer" "int PDF_define_layer(resource $pdfdoc, string $name, string $optlist)" "PDF_delete_pvf" "int PDF_delete_pvf(resource $pdfdoc, string $filename)" "PDF_fill_imageblock" "int PDF_fill_imageblock(resource $pdfdoc, int $page, string $blockname, int $image, string $optlist)" "PDF_fill_pdfblock" "int PDF_fill_pdfblock(resource $pdfdoc, int $page, string $blockname, int $contents, string $optlist)" "PDF_fill_textblock" "int PDF_fill_textblock(resource $pdfdoc, int $page, string $blockname, string $text, string $optlist)" "PDF_findfont" "int PDF_findfont(resource $p, string $fontname, string $encoding, int $embed)" "PDF_get_errnum" "int PDF_get_errnum(resource $pdfdoc)" "PDF_get_majorversion" "int PDF_get_majorversion()" "PDF_get_minorversion" "int PDF_get_minorversion()" "PDF_load_3ddata" "int PDF_load_3ddata(resource $pdfdoc, string $filename, string $optlist)" "PDF_load_font" "int PDF_load_font(resource $pdfdoc, string $fontname, string $encoding, string $optlist)" "PDF_load_iccprofile" "int PDF_load_iccprofile(resource $pdfdoc, string $profilename, string $optlist)" "PDF_load_image" "int PDF_load_image(resource $pdfdoc, string $imagetype, string $filename, string $optlist)" "PDF_makespotcolor" "int PDF_makespotcolor(resource $p, string $spotname)" "PDF_open_ccitt" "int PDF_open_ccitt(resource $pdfdoc, string $filename, int $width, int $height, int $BitReverse, int $k, int $Blackls1)" "PDF_open_image" "int PDF_open_image(resource $p, string $imagetype, string $source, string $data, int $length, int $width, int $height, int $components, int $bpc, string $params)" "PDF_open_image_file" "int PDF_open_image_file(resource $p, string $imagetype, string $filename, string $stringparam, int $intparam)" "PDF_open_memory_image" "int PDF_open_memory_image(resource $p, resource $image)" "PDF_open_pdi" "int PDF_open_pdi(resource $pdfdoc, string $filename, string $optlist, int $len)" "PDF_open_pdi_document" "int PDF_open_pdi_document(resource $p, string $filename, string $optlist)" "PDF_open_pdi_page" "int PDF_open_pdi_page(resource $p, int $doc, int $pagenumber, string $optlist)" "PDF_process_pdi" "int PDF_process_pdi(resource $pdfdoc, int $doc, int $page, string $optlist)" "PDF_shading" "int PDF_shading(resource $pdfdoc, string $shtype, float $x0, float $y0, float $x1, float $y1, float $c1, float $c2, float $c3, float $c4, string $optlist)" "PDF_shading_pattern" "int PDF_shading_pattern(resource $pdfdoc, int $shading, string $optlist)" "PDF_show_boxed" "int PDF_show_boxed(resource $p, string $text, float $left, float $top, float $width, float $height, string $mode, string $feature)" "pg_affected_rows" "int pg_affected_rows(resource $result)" "pg_connection_status" "int pg_connection_status(resource $connection)" "pg_field_is_null" "int pg_field_is_null(resource $result, int $row, mixed $field)" "pg_field_num" "int pg_field_num(resource $result, string $field_name)" "pg_field_size" "int pg_field_size(resource $result, int $field_number)" "pg_field_type_oid" "int pg_field_type_oid(resource $result, int $field_number)" "pg_get_pid" "int pg_get_pid(resource $connection)" "pg_lo_create" "int pg_lo_create([resource $connection = '', mixed $object_id])" "pg_lo_import" "int pg_lo_import([resource $connection = '', string $pathname [, mixed $object_id = '']])" "pg_lo_read_all" "int pg_lo_read_all(resource $large_object)" "pg_lo_tell" "int pg_lo_tell(resource $large_object)" "pg_lo_write" "int pg_lo_write(resource $large_object, string $data [, int $len = ''])" "pg_num_fields" "int pg_num_fields(resource $result)" "pg_num_rows" "int pg_num_rows(resource $result)" "pg_port" "int pg_port([resource $connection = ''])" "pg_set_client_encoding" "int pg_set_client_encoding([resource $connection = '', string $encoding])" "pg_set_error_verbosity" "int pg_set_error_verbosity([resource $connection = '', int $verbosity])" "pg_transaction_status" "int pg_transaction_status(resource $connection)" "posix_getegid" "int posix_getegid()" "posix_geteuid" "int posix_geteuid()" "posix_getgid" "int posix_getgid()" "posix_getpgid" "int posix_getpgid(int $pid)" "posix_getpgrp" "int posix_getpgrp()" "posix_getpid" "int posix_getpid()" "posix_getppid" "int posix_getppid()" "posix_getsid" "int posix_getsid(int $pid)" "posix_getuid" "int posix_getuid()" "posix_get_last_error" "int posix_get_last_error()" "posix_setsid" "int posix_setsid()" "preg_last_error" "int preg_last_error()" "preg_match" "int preg_match(string $pattern, string $subject [, array $matches = '' [, int $flags = '' [, int $offset = '']]])" "preg_match_all" "int preg_match_all(string $pattern, string $subject, array $matches [, int $flags = '' [, int $offset = '']])" "print" "int print(string $arg)" "printer_logical_fontheight" "int printer_logical_fontheight(resource $printer_handle, int $height)" "printf" "int printf(string $format [, mixed $args = '' [, mixed $... = '']])" "proc_close" "int proc_close(resource $process)" "pspell_config_create" "int pspell_config_create(string $language [, string $spelling = '' [, string $jargon = '' [, string $encoding = '']]])" "pspell_new" "int pspell_new(string $language [, string $spelling = '' [, string $jargon = '' [, string $encoding = '' [, int $mode = '']]]])" "pspell_new_config" "int pspell_new_config(int $config)" "pspell_new_personal" "int pspell_new_personal(string $personal, string $language [, string $spelling = '' [, string $jargon = '' [, string $encoding = '' [, int $mode = '']]]])" "ps_add_bookmark" "int ps_add_bookmark(resource $psdoc, string $text [, int $parent = '' [, int $open = '']])" "ps_begin_pattern" "int ps_begin_pattern(resource $psdoc, float $width, float $height, float $xstep, float $ystep, int $painttype)" "ps_begin_template" "int ps_begin_template(resource $psdoc, float $width, float $height)" "ps_findfont" "int ps_findfont(resource $psdoc, string $fontname, string $encoding [, bool $embed = false])" "ps_makespotcolor" "int ps_makespotcolor(resource $psdoc, string $name [, int $reserved = ''])" "ps_open_image" "int ps_open_image(resource $psdoc, string $type, string $source, string $data, int $lenght, int $width, int $height, int $components, int $bpc, string $params)" "ps_open_image_file" "int ps_open_image_file(resource $psdoc, string $type, string $filename [, string $stringparam = '' [, int $intparam = '']])" "ps_open_memory_image" "int ps_open_memory_image(resource $psdoc, int $gd)" "ps_shading" "int ps_shading(resource $psdoc, string $type, float $x0, float $y0, float $x1, float $y1, float $c1, float $c2, float $c3, float $c4, string $optlist)" "ps_shading_pattern" "int ps_shading_pattern(resource $psdoc, int $shadingid, string $optlist)" "ps_show_boxed" "int ps_show_boxed(resource $psdoc, string $text, float $left, float $bottom, float $width, float $height, string $hmode [, string $feature = ''])" "px_insert_record" "int px_insert_record(resource $pxdoc, array $data)" "px_numfields" "int px_numfields(resource $pxdoc)" "px_numrecords" "int px_numrecords(resource $pxdoc)" "radius_cvt_int" "int radius_cvt_int(string $data)" "radius_send_request" "int radius_send_request(resource $radius_handle)" "rand" "int rand(int $min, int $max)" "readfile" "int readfile(string $filename [, bool $use_include_path = false [, resource $context = '']])" "readgzfile" "int readgzfile(string $filename [, int $use_include_path = ''])" "realpath_cache_size" "int realpath_cache_size()" "resourcebundle_count" "int resourcebundle_count(ResourceBundle $r)" "resourcebundle_get_error_code" "int resourcebundle_get_error_code(ResourceBundle $r)" "rrd_first" "int rrd_first(string $file [, int $raaindex = ''])" "rrd_last" "int rrd_last(string $filename)" "session_cache_expire" "int session_cache_expire([string $new_cache_expire = ''])" "shmop_open" "int shmop_open(int $key, string $flags, int $mode, int $size)" "shmop_size" "int shmop_size(int $shmid)" "shmop_write" "int shmop_write(int $shmid, string $data, int $offset)" "similar_text" "int similar_text(string $first, string $second [, float $percent = ''])" "sleep" "int sleep(int $seconds)" "snmp_get_valueretrieval" "int snmp_get_valueretrieval()" "socket_last_error" "int socket_last_error([resource $socket = ''])" "socket_recv" "int socket_recv(resource $socket, string $buf, int $len, int $flags)" "socket_recvfrom" "int socket_recvfrom(resource $socket, string $buf, int $len, int $flags, string $name [, int $port = ''])" "socket_select" "int socket_select(array $read, array $write, array $except, int $tv_sec [, int $tv_usec = ''])" "socket_send" "int socket_send(resource $socket, string $buf, int $len, int $flags)" "socket_sendto" "int socket_sendto(resource $socket, string $buf, int $len, int $flags, string $addr [, int $port = ''])" "socket_write" "int socket_write(resource $socket, string $buffer [, int $length = ''])" "sqlite_changes" "int sqlite_changes(resource $dbhandle)" "sqlite_key" "int sqlite_key(resource $result)" "sqlite_last_error" "int sqlite_last_error(resource $dbhandle)" "sqlite_last_insert_rowid" "int sqlite_last_insert_rowid(resource $dbhandle)" "sqlite_num_fields" "int sqlite_num_fields(resource $result)" "sqlite_num_rows" "int sqlite_num_rows(resource $result)" "ssdeep_fuzzy_compare" "int ssdeep_fuzzy_compare(string $signature1, string $signature2)" "stats_rand_gen_ibinomial" "int stats_rand_gen_ibinomial(int $n, float $pp)" "stats_rand_gen_ibinomial_negative" "int stats_rand_gen_ibinomial_negative(int $n, float $p)" "stats_rand_gen_int" "int stats_rand_gen_int()" "stats_rand_gen_ipoisson" "int stats_rand_gen_ipoisson(float $mu)" "stats_rand_gen_iuniform" "int stats_rand_gen_iuniform(int $low, int $high)" "strcasecmp" "int strcasecmp(string $str1, string $str2)" "strcmp" "int strcmp(string $str1, string $str2)" "strcoll" "int strcoll(string $str1, string $str2)" "strcspn" "int strcspn(string $str1, string $str2 [, int $start = '' [, int $length = '']])" "stream_copy_to_stream" "int stream_copy_to_stream(resource $source, resource $dest [, int $maxlength = -1 [, int $offset = '']])" "stream_select" "int stream_select(array $read, array $write, array $except, int $tv_sec [, int $tv_usec = ''])" "stream_set_read_buffer" "int stream_set_read_buffer(resource $stream, int $buffer)" "stream_set_write_buffer" "int stream_set_write_buffer(resource $stream, int $buffer)" "stream_socket_sendto" "int stream_socket_sendto(resource $socket, string $data [, int $flags = '' [, string $address = '']])" "strlen" "int strlen(string $string)" "strnatcasecmp" "int strnatcasecmp(string $str1, string $str2)" "strnatcmp" "int strnatcmp(string $str1, string $str2)" "strncasecmp" "int strncasecmp(string $str1, string $str2, int $len)" "strncmp" "int strncmp(string $str1, string $str2, int $len)" "strpos" "int strpos(string $haystack, mixed $needle [, int $offset = ''])" "strripos" "int strripos(string $haystack, string $needle [, int $offset = ''])" "strrpos" "int strrpos(string $haystack, string $needle [, int $offset = ''])" "strspn" "int strspn(string $subject, string $mask [, int $start = '' [, int $length = '']])" "strtotime" "int strtotime(string $time [, int $now = ''])" "substr_compare" "int substr_compare(string $main_str, string $str, int $offset [, int $length = '' [, bool $case_insensitivity = false]])" "substr_count" "int substr_count(string $haystack, string $needle [, int $offset = '' [, int $length = '']])" "svn_fs_check_path" "int svn_fs_check_path(resource $fsroot, string $path)" "svn_fs_file_length" "int svn_fs_file_length(resource $fsroot, string $path)" "svn_fs_node_created_rev" "int svn_fs_node_created_rev(resource $fsroot, string $path)" "svn_fs_youngest_rev" "int svn_fs_youngest_rev(resource $fs)" "svn_repos_fs_commit_txn" "int svn_repos_fs_commit_txn(resource $txn)" "svn_update" "int svn_update(string $path [, int $revno = SVN_REVISION_HEAD [, bool $recurse = true]])" "swf_getframe" "int swf_getframe()" "swf_nextid" "int swf_nextid()" "sybase_affected_rows" "int sybase_affected_rows([resource $link_identifier = ''])" "sybase_num_fields" "int sybase_num_fields(resource $result)" "sybase_num_rows" "int sybase_num_rows(resource $result)" "tidy_access_count" "int tidy_access_count(tidy $object)" "tidy_config_count" "int tidy_config_count(tidy $object)" "tidy_error_count" "int tidy_error_count(tidy $object)" "tidy_get_html_ver" "int tidy_get_html_ver(tidy $object)" "tidy_get_status" "int tidy_get_status(tidy $object)" "tidy_warning_count" "int tidy_warning_count(tidy $object)" "time" "int time()" "transliterator_get_error_code" "int transliterator_get_error_code()" "udm_api_version" "int udm_api_version()" "udm_check_stored" "int udm_check_stored(resource $agent, int $link, string $doc_id)" "udm_close_stored" "int udm_close_stored(resource $agent, int $link)" "udm_crc32" "int udm_crc32(resource $agent, string $str)" "udm_errno" "int udm_errno(resource $agent)" "udm_free_agent" "int udm_free_agent(resource $agent)" "udm_get_doc_count" "int udm_get_doc_count(resource $agent)" "udm_hash32" "int udm_hash32(resource $agent, string $str)" "udm_open_stored" "int udm_open_stored(resource $agent, string $storedaddr)" "umask" "int umask([int $mask = ''])" "unixtojd" "int unixtojd([int $timestamp = time()])" "variant_cmp" "int variant_cmp(mixed $left, mixed $right [, int $lcid = '' [, int $flags = '']])" "variant_date_to_timestamp" "int variant_date_to_timestamp(variant $variant)" "variant_get_type" "int variant_get_type(variant $variant)" "vfprintf" "int vfprintf(resource $handle, string $format, array $args)" "vprintf" "int vprintf(string $format, array $args)" "win32_continue_service" "int win32_continue_service(string $servicename [, string $machine = ''])" "win32_get_last_control_message" "int win32_get_last_control_message()" "win32_pause_service" "int win32_pause_service(string $servicename [, string $machine = ''])" "win32_start_service" "int win32_start_service(string $servicename [, string $machine = ''])" "win32_stop_service" "int win32_stop_service(string $servicename [, string $machine = ''])" "xdiff_file_bdiff_size" "int xdiff_file_bdiff_size(string $file)" "xdiff_string_bdiff_size" "int xdiff_string_bdiff_size(string $patch)" "xmlrpc_server_add_introspection_data" "int xmlrpc_server_add_introspection_data(resource $server, array $desc)" "xmlrpc_server_destroy" "int xmlrpc_server_destroy(resource $server)" "xml_get_current_byte_index" "int xml_get_current_byte_index(resource $parser)" "xml_get_current_column_number" "int xml_get_current_column_number(resource $parser)" "xml_get_current_line_number" "int xml_get_current_line_number(resource $parser)" "xml_get_error_code" "int xml_get_error_code(resource $parser)" "xml_parse" "int xml_parse(resource $parser, string $data [, bool $is_final = false])" "xml_parse_into_struct" "int xml_parse_into_struct(resource $parser, string $data, array $values [, array $index = ''])" "xslt_errno" "int xslt_errno(resource $xh)" "xslt_getopt" "int xslt_getopt(resource $processor)" "yaz_errno" "int yaz_errno(resource $id)" "yaz_hits" "int yaz_hits(resource $id [, array $searchresult = ''])" "yp_errno" "int yp_errno()" "yp_order" "int yp_order(string $domain, string $map)" "zend_thread_id" "int zend_thread_id()" "zip_entry_compressedsize" "int zip_entry_compressedsize(resource $zip_entry)" "zip_entry_filesize" "int zip_entry_filesize(resource $zip_entry)" "is_double" " is_double()" "is_integer" " is_integer()" "is_long" " is_long()" "is_real" " is_real()" "is_writeable" " is_writeable()" "join" " join()" "ldap_close" " ldap_close()" "libxml_get_last_error" "LibXMLError libxml_get_last_error()" "magic_quotes_runtime" " magic_quotes_runtime()" "main" " main()" "maxdb_bind_param" " maxdb_bind_param()" "maxdb_bind_result" " maxdb_bind_result()" "maxdb_client_encoding" " maxdb_client_encoding()" "maxdb_close_long_data" " maxdb_close_long_data()" "maxdb_escape_string" " maxdb_escape_string()" "maxdb_execute" " maxdb_execute()" "maxdb_fetch" " maxdb_fetch()" "maxdb_get_metadata" " maxdb_get_metadata()" "maxdb_param_count" " maxdb_param_count()" "maxdb_send_long_data" " maxdb_send_long_data()" "maxdb_set_opt" " maxdb_set_opt()" "maxdb_prepare" "maxdb_stmt maxdb_prepare(resource $link, string $query)" "msgfmt_create" "MessageFormatter msgfmt_create(string $locale, string $pattern)" "apc_compile_file" "mixed apc_compile_file(string $filename [, bool $atomic = true])" "apc_delete" "mixed apc_delete(string $key)" "apc_delete_file" "mixed apc_delete_file(mixed $keys)" "apc_exists" "mixed apc_exists(mixed $keys)" "apc_fetch" "mixed apc_fetch(mixed $key [, bool $success = ''])" "array_rand" "mixed array_rand(array $input [, int $num_req = 1])" "array_reduce" "mixed array_reduce(array $input, callback $function [, mixed $initial = ''])" "array_search" "mixed array_search(mixed $needle, array $haystack [, bool $strict = false])" "assert_options" "mixed assert_options(int $what [, mixed $value = ''])" "bzcompress" "mixed bzcompress(string $source [, int $blocksize = 4 [, int $workfactor = '']])" "bzdecompress" "mixed bzdecompress(string $source [, int $small = ''])" "call_user_func" "mixed call_user_func(callback $function [, mixed $parameter = '' [, mixed $... = '']])" "call_user_func_array" "mixed call_user_func_array(callback $function, array $param_arr)" "call_user_method" "mixed call_user_method(string $method_name, object $obj [, mixed $parameter = '' [, mixed $... = '']])" "call_user_method_array" "mixed call_user_method_array(string $method_name, object $obj, array $params)" "constant" "mixed constant(string $name)" "count_chars" "mixed count_chars(string $string [, int $mode = ''])" "cubrid_fetch" "mixed cubrid_fetch(resource $result [, int $type = CUBRID_BOTH])" "cubrid_get" "mixed cubrid_get(resource $conn_identifier, string $oid [, mixed $attr = ''])" "curl_exec" "mixed curl_exec(resource $ch)" "curl_getinfo" "mixed curl_getinfo(resource $ch [, int $opt = ''])" "current" "mixed current(array $array)" "date_sunrise" "mixed date_sunrise(int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get(\"date.default_latitude\") [, float $longitude = ini_get(\"date.default_longitude\") [, float $zenith = ini_get(\"date.sunrise_zenith\") [, float $gmt_offset = '']]]]])" "date_sunset" "mixed date_sunset(int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get(\"date.default_latitude\") [, float $longitude = ini_get(\"date.default_longitude\") [, float $zenith = ini_get(\"date.sunset_zenith\") [, float $gmt_offset = '']]]]])" "db2_autocommit" "mixed db2_autocommit(resource $connection [, bool $value = ''])" "db2_result" "mixed db2_result(resource $stmt, mixed $column)" "dba_key_split" "mixed dba_key_split(mixed $key)" "dbplus_close" "mixed dbplus_close(resource $relation)" "dbplus_rcrtexact" "mixed dbplus_rcrtexact(string $name, resource $relation [, bool $overwrite = ''])" "dbplus_rcrtlike" "mixed dbplus_rcrtlike(string $name, resource $relation [, int $overwrite = ''])" "dbplus_rkeys" "mixed dbplus_rkeys(resource $relation, mixed $domlist)" "dbplus_rsecindex" "mixed dbplus_rsecindex(resource $relation, mixed $domlist, int $type)" "dbx_fetch_row" "mixed dbx_fetch_row(object $result_identifier)" "dbx_query" "mixed dbx_query(object $link_identifier, string $sql_statement [, int $flags = ''])" "dio_fcntl" "mixed dio_fcntl(resource $fd, int $cmd [, mixed $args = ''])" "enchant_broker_list_dicts" "mixed enchant_broker_list_dicts(resource $broker)" "enchant_dict_describe" "mixed enchant_dict_describe(resource $dict)" "end" "mixed end(array $array)" "eval" "mixed eval(string $code_str)" "fbsql_result" "mixed fbsql_result(resource $result [, int $row = '' [, mixed $field = '']])" "fdf_get_opt" "mixed fdf_get_opt(resource $fdf_document, string $fieldname [, int $element = -1])" "fdf_get_value" "mixed fdf_get_value(resource $fdf_document, string $fieldname [, int $which = -1])" "filter_input" "mixed filter_input(int $type, string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options = '']])" "filter_input_array" "mixed filter_input_array(int $type [, mixed $definition = ''])" "filter_var" "mixed filter_var(mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options = '']])" "filter_var_array" "mixed filter_var_array(array $data [, mixed $definition = ''])" "forward_static_call" "mixed forward_static_call(callback $function [, mixed $parameter = '' [, mixed $... = '']])" "forward_static_call_array" "mixed forward_static_call_array(callback $function, array $parameters)" "fscanf" "mixed fscanf(resource $handle, string $format [, mixed $... = ''])" "ftp_get_option" "mixed ftp_get_option(resource $ftp_stream, int $option)" "func_get_arg" "mixed func_get_arg(int $arg_num)" "gettimeofday" "mixed gettimeofday([bool $return_float = ''])" "get_browser" "mixed get_browser([string $user_agent = '' [, bool $return_array = false]])" "gupnp_service_action_get" "mixed gupnp_service_action_get(resource $action, string $name, int $type)" "gupnp_service_info_get_introspection" "mixed gupnp_service_info_get_introspection(resource $proxy [, mixed $callback = '' [, mixed $arg = '']])" "gupnp_service_proxy_action_get" "mixed gupnp_service_proxy_action_get(resource $proxy, string $action, string $name, int $type)" "highlight_file" "mixed highlight_file(string $filename [, bool $return = false])" "highlight_string" "mixed highlight_string(string $str [, bool $return = false])" "hw_GetObject" "mixed hw_GetObject(int $connection, mixed $objectID [, string $query = ''])" "hw_getremotechildren" "mixed hw_getremotechildren(int $connection, string $object_record)" "ibase_backup" "mixed ibase_backup(resource $service_handle, string $source_db, string $dest_file [, int $options = '' [, bool $verbose = false]])" "ibase_blob_close" "mixed ibase_blob_close(resource $blob_handle)" "ibase_gen_id" "mixed ibase_gen_id(string $generator [, int $increment = 1 [, resource $link_identifier = '']])" "ibase_restore" "mixed ibase_restore(resource $service_handle, string $source_file, string $dest_db [, int $options = '' [, bool $verbose = false]])" "iconv_get_encoding" "mixed iconv_get_encoding([string $type = \"all\"])" "imap_timeout" "mixed imap_timeout(int $timeout_type [, int $timeout = -1])" "ingres_prepare" "mixed ingres_prepare(resource $link, string $query)" "ingres_query" "mixed ingres_query(resource $link, string $query [, array $params = '' [, string $types = '']])" "ingres_unbuffered_query" "mixed ingres_unbuffered_query(resource $link, string $query [, array $params = '' [, string $types = '']])" "iptcembed" "mixed iptcembed(string $iptcdata, string $jpeg_file_name [, int $spool = ''])" "JDDayOfWeek" "mixed JDDayOfWeek(int $julianday [, int $mode = CAL_DOW_DAYNO])" "json_decode" "mixed json_decode(string $json [, bool $assoc = false [, int $depth = 512 [, int $options = '']]])" "key" "mixed key(array $array)" "ldap_compare" "mixed ldap_compare(resource $link_identifier, string $dn, string $attribute, string $value)" "maxdb_fetch_array" "mixed maxdb_fetch_array(resource $result [, int $resulttype = ''])" "maxdb_fetch_field" "mixed maxdb_fetch_field(resource $result)" "maxdb_fetch_fields" "mixed maxdb_fetch_fields(resource $result)" "maxdb_fetch_field_direct" "mixed maxdb_fetch_field_direct(resource $result, int $fieldnr)" "maxdb_fetch_row" "mixed maxdb_fetch_row(resource $result)" "maxdb_insert_id" "mixed maxdb_insert_id(resource $link)" "maxdb_query" "mixed maxdb_query(resource $link, string $query [, int $resultmode = ''])" "maxdb_stmt_prepare" "mixed maxdb_stmt_prepare(resource $stmt, string $query)" "mb_detect_order" "mixed mb_detect_order([mixed $encoding_list = ''])" "mb_get_info" "mixed mb_get_info([string $type = \"all\"])" "mb_http_input" "mixed mb_http_input([string $type = \"\"])" "mb_http_output" "mixed mb_http_output([string $encoding = ''])" "mb_internal_encoding" "mixed mb_internal_encoding([string $encoding = mb_internal_encoding()])" "mb_language" "mixed mb_language([string $language = ''])" "microtime" "mixed microtime([bool $get_as_float = ''])" "mssql_execute" "mixed mssql_execute(resource $stmt [, bool $skip_results = false])" "mssql_query" "mixed mssql_query(string $query [, resource $link_identifier = '' [, int $batch_size = '']])" "mysqli_fetch_all" "mixed mysqli_fetch_all([int $resulttype = MYSQLI_NUM, mysqli_result $result])" "mysqli_fetch_array" "mixed mysqli_fetch_array([int $resulttype = MYSQLI_BOTH, mysqli_result $result])" "mysqli_fetch_row" "mixed mysqli_fetch_row(mysqli_result $result)" "mysqli_insert_id" "mixed mysqli_insert_id(mysqli $link)" "mysqli_query" "mixed mysqli_query(string $query [, int $resultmode = '', mysqli $link])" "mysqli_stmt_insert_id" "mixed mysqli_stmt_insert_id(mysqli_stmt $stmt)" "newt_checkbox_tree_get_current" "mixed newt_checkbox_tree_get_current(resource $checkboxtree)" "newt_listitem_get_data" "mixed newt_listitem_get_data(resource $item)" "next" "mixed next(array $array)" "numfmt_parse" "mixed numfmt_parse(string $value [, int $type = '' [, int $position = '', NumberFormatter $fmt]])" "oci_field_type" "mixed oci_field_type(resource $statement, int $field)" "oci_result" "mixed oci_result(resource $statement, mixed $field)" "odbc_autocommit" "mixed odbc_autocommit(resource $connection_id [, bool $OnOff = false])" "odbc_result" "mixed odbc_result(resource $result_id, mixed $field)" "openal_listener_get" "mixed openal_listener_get(int $property)" "openal_source_get" "mixed openal_source_get(resource $source, int $property)" "openssl_csr_new" "mixed openssl_csr_new(array $dn, resource $privkey [, array $configargs = '' [, array $extraattribs = '']])" "openssl_pkcs7_verify" "mixed openssl_pkcs7_verify(string $filename, int $flags [, string $outfilename = '' [, array $cainfo = '' [, string $extracerts = '' [, string $content = '']]]])" "parse_url" "mixed parse_url(string $url [, int $component = -1])" "pathinfo" "mixed pathinfo(string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME])" "pg_delete" "mixed pg_delete(resource $connection, string $table_name, array $assoc_array [, int $options = PGSQL_DML_EXEC])" "pg_field_table" "mixed pg_field_table(resource $result, int $field_number [, bool $oid_only = false])" "pg_insert" "mixed pg_insert(resource $connection, string $table_name, array $assoc_array [, int $options = PGSQL_DML_EXEC])" "pg_result_status" "mixed pg_result_status(resource $result [, int $type = ''])" "pg_select" "mixed pg_select(resource $connection, string $table_name, array $assoc_array [, int $options = PGSQL_DML_EXEC])" "pg_update" "mixed pg_update(resource $connection, string $table_name, array $data, array $condition [, int $options = PGSQL_DML_EXEC])" "preg_filter" "mixed preg_filter(mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int $count = '']])" "preg_replace" "mixed preg_replace(mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int $count = '']])" "preg_replace_callback" "mixed preg_replace_callback(mixed $pattern, callback $callback, mixed $subject [, int $limit = -1 [, int $count = '']])" "prev" "mixed prev(array $array)" "printer_get_option" "mixed printer_get_option(resource $printer_handle, string $option)" "print_r" "mixed print_r(mixed $expression [, bool $return = false])" "radius_get_attr" "mixed radius_get_attr(resource $radius_handle)" "readline_info" "mixed readline_info([string $varname = '' [, string $newvalue = '']])" "reset" "mixed reset(array $array)" "resourcebundle_get" "mixed resourcebundle_get(string|int $index, ResourceBundle $r)" "rpm_get_tag" "mixed rpm_get_tag(resource $rpmr, int $tagnum)" "runkit_sandbox_output_handler" "mixed runkit_sandbox_output_handler(object $sandbox [, mixed $callback = ''])" "set_error_handler" "mixed set_error_handler(callback $error_handler [, int $error_types = E_ALL | E_STRICT])" "shm_get_var" "mixed shm_get_var(resource $shm_identifier, int $variable_key)" "socket_get_option" "mixed socket_get_option(resource $socket, int $level, int $optname)" "sqlite_column" "mixed sqlite_column(resource $result, mixed $index_or_name [, bool $decode_binary = true])" "sscanf" "mixed sscanf(string $str, string $format [, mixed $... = ''])" "ssh2_auth_none" "mixed ssh2_auth_none(resource $session, string $username)" "stream_socket_enable_crypto" "mixed stream_socket_enable_crypto(resource $stream, bool $enable [, int $crypto_type = '' [, resource $session_stream = '']])" "str_ireplace" "mixed str_ireplace(mixed $search, mixed $replace, mixed $subject [, int $count = ''])" "str_replace" "mixed str_replace(mixed $search, mixed $replace, mixed $subject [, int $count = ''])" "str_word_count" "mixed str_word_count(string $string [, int $format = '' [, string $charlist = '']])" "substr_replace" "mixed substr_replace(mixed $string, mixed $replacement, mixed $start [, mixed $length = ''])" "sybase_query" "mixed sybase_query(string $query [, resource $link_identifier = ''])" "tidy_getopt" "mixed tidy_getopt(string $option, tidy $object)" "time_nanosleep" "mixed time_nanosleep(int $seconds, int $nanoseconds)" "unserialize" "mixed unserialize(string $str)" "variant_abs" "mixed variant_abs(mixed $val)" "variant_add" "mixed variant_add(mixed $left, mixed $right)" "variant_and" "mixed variant_and(mixed $left, mixed $right)" "variant_cat" "mixed variant_cat(mixed $left, mixed $right)" "variant_div" "mixed variant_div(mixed $left, mixed $right)" "variant_eqv" "mixed variant_eqv(mixed $left, mixed $right)" "variant_fix" "mixed variant_fix(mixed $variant)" "variant_idiv" "mixed variant_idiv(mixed $left, mixed $right)" "variant_imp" "mixed variant_imp(mixed $left, mixed $right)" "variant_int" "mixed variant_int(mixed $variant)" "variant_mod" "mixed variant_mod(mixed $left, mixed $right)" "variant_mul" "mixed variant_mul(mixed $left, mixed $right)" "variant_neg" "mixed variant_neg(mixed $variant)" "variant_not" "mixed variant_not(mixed $variant)" "variant_or" "mixed variant_or(mixed $left, mixed $right)" "variant_pow" "mixed variant_pow(mixed $left, mixed $right)" "variant_round" "mixed variant_round(mixed $variant, int $decimals)" "variant_sub" "mixed variant_sub(mixed $left, mixed $right)" "variant_xor" "mixed variant_xor(mixed $left, mixed $right)" "var_export" "mixed var_export(mixed $expression [, bool $return = false])" "version_compare" "mixed version_compare(string $version1, string $version2 [, string $operator = ''])" "w32api_invoke_function" "mixed w32api_invoke_function(string $funcname, mixed $argument [, mixed $... = ''])" "wddx_deserialize" "mixed wddx_deserialize(string $packet)" "win32_create_service" "mixed win32_create_service(array $details [, string $machine = ''])" "win32_delete_service" "mixed win32_delete_service(string $servicename [, string $machine = ''])" "win32_query_service_status" "mixed win32_query_service_status(string $servicename [, string $machine = ''])" "win32_start_service_ctrl_dispatcher" "mixed win32_start_service_ctrl_dispatcher(string $name)" "wincache_ucache_dec" "mixed wincache_ucache_dec(string $key [, int $dec_by = 1 [, bool $success = '']])" "wincache_ucache_get" "mixed wincache_ucache_get(mixed $key [, bool $success = ''])" "wincache_ucache_inc" "mixed wincache_ucache_inc(string $key [, int $inc_by = 1 [, bool $success = '']])" "xdiff_file_merge3" "mixed xdiff_file_merge3(string $old_file, string $new_file1, string $new_file2, string $dest)" "xdiff_file_patch" "mixed xdiff_file_patch(string $file, string $patch, string $dest [, int $flags = DIFF_PATCH_NORMAL])" "xdiff_string_merge3" "mixed xdiff_string_merge3(string $old_data, string $new_data1, string $new_data2 [, string $error = ''])" "xmlrpc_decode" "mixed xmlrpc_decode(string $xml [, string $encoding = \"iso-8859-1\"])" "xmlrpc_decode_request" "mixed xmlrpc_decode_request(string $xml, string $method [, string $encoding = ''])" "xml_parser_get_option" "mixed xml_parser_get_option(resource $parser, int $option)" "xslt_process" "mixed xslt_process(resource $xh, string $xmlcontainer, string $xslcontainer [, string $resultcontainer = '' [, array $arguments = '' [, array $parameters = '']]])" "xslt_setopt" "mixed xslt_setopt(resource $processor, int $newmask)" "yaml_parse" "mixed yaml_parse(string $input [, int $pos = '' [, int $ndocs = '' [, array $callbacks = '']]])" "yaml_parse_file" "mixed yaml_parse_file(string $filename [, int $pos = '' [, int $ndocs = '' [, array $callbacks = '']]])" "yaml_parse_url" "mixed yaml_parse_url(string $url [, int $pos = '' [, int $ndocs = '' [, array $callbacks = '']]])" "yaz_connect" "mixed yaz_connect(string $zurl [, mixed $options = ''])" "yaz_wait" "mixed yaz_wait([array $options = ''])" "zip_open" "mixed zip_open(string $filename)" "zip_read" "mixed zip_read(resource $zip)" "msql" " msql()" "msql_createdb" " msql_createdb()" "msql_dbname" " msql_dbname()" "msql_fieldflags" " msql_fieldflags()" "msql_fieldlen" " msql_fieldlen()" "msql_fieldname" " msql_fieldname()" "msql_fieldtable" " msql_fieldtable()" "msql_fieldtype" " msql_fieldtype()" "msql_numfields" " msql_numfields()" "msql_numrows" " msql_numrows()" "msql_regcase" " msql_regcase()" "msql_tablename" " msql_tablename()" "mysqli_init" "mysqli mysqli_init()" "mysqli_bind_param" " mysqli_bind_param()" "mysqli_bind_result" " mysqli_bind_result()" "mysqli_client_encoding" " mysqli_client_encoding()" "mysqli_connect" " mysqli_connect()" "mysqli_escape_string" " mysqli_escape_string()" "mysqli_execute" " mysqli_execute()" "mysqli_fetch" " mysqli_fetch()" "mysqli_get_metadata" " mysqli_get_metadata()" "mysqli_param_count" " mysqli_param_count()" "mysqli_reap_async_query" "mysqli_result mysqli_reap_async_query(mysql $link)" "mysqli_stmt_result_metadata" "mysqli_result mysqli_stmt_result_metadata(mysqli_stmt $stmt)" "mysqli_store_result" "mysqli_result mysqli_store_result(mysqli $link)" "mysqli_use_result" "mysqli_result mysqli_use_result(mysqli $link)" "mysqli_send_long_data" " mysqli_send_long_data()" "mysqli_set_opt" " mysqli_set_opt()" "mysqli_prepare" "mysqli_stmt mysqli_prepare(string $query, mysqli $link)" "mysqli_stmt_init" "mysqli_stmt mysqli_stmt_init(mysqli $link)" "mysqli_get_warnings" "mysqli_warning mysqli_get_warnings(mysqli $link)" "xhprof_enable" "null xhprof_enable([int $flags = '' [, array $options = '']])" "xhprof_sample_disable" "null xhprof_sample_disable()" "xhprof_sample_enable" "null xhprof_sample_enable()" "abs" "number abs(mixed $number)" "array_product" "number array_product(array $array)" "array_sum" "number array_sum(array $array)" "numfmt_create" "NumberFormatter numfmt_create(string $locale, int $style [, string $pattern = ''])" "hexdec" "number hexdec(string $hex_string)" "octdec" "number octdec(string $octal_string)" "stats_harmonic_mean" "number stats_harmonic_mean(array $a)" "apache_lookup_uri" "object apache_lookup_uri(string $filename)" "cairo_matrix_create_scale" "object cairo_matrix_create_scale(float $sx, float $sy)" "cairo_matrix_init" "object cairo_matrix_init([float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0]]]]]])" "cairo_matrix_init_identity" "object cairo_matrix_init_identity()" "cairo_matrix_init_rotate" "object cairo_matrix_init_rotate(float $radians)" "cairo_matrix_init_scale" "object cairo_matrix_init_scale(float $sx, float $sy)" "cairo_matrix_init_translate" "object cairo_matrix_init_translate(float $tx, float $ty)" "cubrid_fetch_field" "object cubrid_fetch_field(resource $result [, int $field_offset = ''])" "cubrid_fetch_object" "object cubrid_fetch_object(resource $result [, string $class_name = '' [, array $params = '']])" "db2_client_info" "object db2_client_info(resource $connection)" "db2_fetch_object" "object db2_fetch_object(resource $stmt [, int $row_number = -1])" "db2_server_info" "object db2_server_info(resource $connection)" "dbx_connect" "object dbx_connect(mixed $module, string $host, string $database, string $username, string $password [, int $persistent = ''])" "fbsql_fetch_field" "object fbsql_fetch_field(resource $result [, int $field_offset = ''])" "fbsql_fetch_object" "object fbsql_fetch_object(resource $result)" "http_parse_cookie" "object http_parse_cookie(string $cookie [, int $flags = '' [, array $allowed_extras = '']])" "http_parse_message" "object http_parse_message(string $message)" "http_parse_params" "object http_parse_params(string $param [, int $flags = HTTP_PARAMS_DEFAULT])" "http_persistent_handles_count" "object http_persistent_handles_count()" "ibase_fetch_object" "object ibase_fetch_object(resource $result_id [, int $fetch_flag = ''])" "imap_bodystruct" "object imap_bodystruct(resource $imap_stream, int $msg_number, string $section)" "imap_check" "object imap_check(resource $imap_stream)" "imap_fetchstructure" "object imap_fetchstructure(resource $imap_stream, int $msg_number [, int $options = ''])" "imap_headerinfo" "object imap_headerinfo(resource $imap_stream, int $msg_number [, int $fromlength = '' [, int $subjectlength = '' [, string $defaulthost = '']]])" "imap_mailboxmsginfo" "object imap_mailboxmsginfo(resource $imap_stream)" "imap_rfc822_parse_headers" "object imap_rfc822_parse_headers(string $headers [, string $defaulthost = \"UNKNOWN\"])" "imap_status" "object imap_status(resource $imap_stream, string $mailbox, int $options)" "ingres_fetch_object" "object ingres_fetch_object(resource $result [, int $result_type = ''])" "java_last_exception_get" "object java_last_exception_get()" "maxdb_fetch_object" "object maxdb_fetch_object(object $result)" "maxdb_stmt_init" "object maxdb_stmt_init(resource $link)" "maxdb_stmt_store_result" "object maxdb_stmt_store_result(resource $stmt)" "maxdb_store_result" "object maxdb_store_result(resource $link)" "msql_fetch_field" "object msql_fetch_field(resource $result [, int $field_offset = ''])" "msql_fetch_object" "object msql_fetch_object(resource $result)" "mssql_fetch_field" "object mssql_fetch_field(resource $result [, int $field_offset = -1])" "mssql_fetch_object" "object mssql_fetch_object(resource $result)" "mysqli_fetch_field" "object mysqli_fetch_field(mysqli_result $result)" "mysqli_fetch_field_direct" "object mysqli_fetch_field_direct(int $fieldnr, mysqli_result $result)" "mysqli_fetch_object" "object mysqli_fetch_object([string $class_name = '' [, array $params = '', mysqli_result $result]])" "mysqli_get_charset" "object mysqli_get_charset(mysqli $link)" "mysqli_stmt_get_warnings" "object mysqli_stmt_get_warnings(mysqli_stmt $stmt)" "mysql_fetch_field" "object mysql_fetch_field(resource $result [, int $field_offset = ''])" "mysql_fetch_object" "object mysql_fetch_object(resource $result [, string $class_name = '' [, array $params = '']])" "notes_header_info" "object notes_header_info(string $server, string $mailbox, int $msg_number)" "oci_fetch_object" "object oci_fetch_object(resource $statement)" "odbc_fetch_object" "object odbc_fetch_object(resource $result [, int $rownumber = ''])" "pg_fetch_object" "object pg_fetch_object(resource $result [, int $row = '' [, int $result_type = PGSQL_ASSOC [, string $class_name = '' [, array $params = '']]]])" "simplexml_load_file" "object simplexml_load_file(string $filename [, string $class_name = \"SimpleXMLElement\" [, int $options = '' [, string $ns = '' [, bool $is_prefix = false]]]])" "simplexml_load_string" "object simplexml_load_string(string $data [, string $class_name = \"SimpleXMLElement\" [, int $options = '' [, string $ns = '' [, bool $is_prefix = false]]]])" "sqlite_fetch_object" "object sqlite_fetch_object(resource $result [, string $class_name = '' [, array $ctor_params = '' [, bool $decode_binary = true]]])" "stream_bucket_make_writeable" "object stream_bucket_make_writeable(resource $brigade)" "stream_bucket_new" "object stream_bucket_new(resource $stream, string $buffer)" "sybase_fetch_field" "object sybase_fetch_field(resource $result [, int $field_offset = -1])" "sybase_fetch_object" "object sybase_fetch_object(resource $result [, mixed $object = ''])" "oci_new_collection" "OCI-Collection oci_new_collection(resource $connection, string $tdo [, string $schema = ''])" "oci_new_descriptor" "OCI-Lob oci_new_descriptor(resource $connection [, int $type = OCI_DTYPE_LOB])" "ocibindbyname" " ocibindbyname()" "ocicancel" " ocicancel()" "ocicloselob" " ocicloselob()" "ocicollappend" " ocicollappend()" "ocicollassign" " ocicollassign()" "ocicollassignelem" " ocicollassignelem()" "ocicollgetelem" " ocicollgetelem()" "ocicollmax" " ocicollmax()" "ocicollsize" " ocicollsize()" "ocicolltrim" " ocicolltrim()" "ocicolumnisnull" " ocicolumnisnull()" "ocicolumnname" " ocicolumnname()" "ocicolumnprecision" " ocicolumnprecision()" "ocicolumnscale" " ocicolumnscale()" "ocicolumnsize" " ocicolumnsize()" "ocicolumntype" " ocicolumntype()" "ocicolumntyperaw" " ocicolumntyperaw()" "ocicommit" " ocicommit()" "ocidefinebyname" " ocidefinebyname()" "ocierror" " ocierror()" "ociexecute" " ociexecute()" "ocifetch" " ocifetch()" "ocifetchstatement" " ocifetchstatement()" "ocifreecollection" " ocifreecollection()" "ocifreecursor" " ocifreecursor()" "ocifreedesc" " ocifreedesc()" "ocifreestatement" " ocifreestatement()" "ociinternaldebug" " ociinternaldebug()" "ociloadlob" " ociloadlob()" "ocilogoff" " ocilogoff()" "ocilogon" " ocilogon()" "ocinewcollection" " ocinewcollection()" "ocinewcursor" " ocinewcursor()" "ocinewdescriptor" " ocinewdescriptor()" "ocinlogon" " ocinlogon()" "ocinumcols" " ocinumcols()" "ociparse" " ociparse()" "ociplogon" " ociplogon()" "ociresult" " ociresult()" "ocirollback" " ocirollback()" "ocirowcount" " ocirowcount()" "ocisavelob" " ocisavelob()" "ocisavelobfile" " ocisavelobfile()" "ociserverversion" " ociserverversion()" "ocisetprefetch" " ocisetprefetch()" "ocistatementtype" " ocistatementtype()" "ociwritelobtofile" " ociwritelobtofile()" "ociwritetemporarylob" " ociwritetemporarylob()" "odbc_do" " odbc_do()" "odbc_field_precision" " odbc_field_precision()" "openssl_get_privatekey" " openssl_get_privatekey()" "openssl_get_publickey" " openssl_get_publickey()" "PDF_add_annotation" " PDF_add_annotation()" "PDF_add_bookmark" " PDF_add_bookmark()" "PDF_add_outline" " PDF_add_outline()" "PDF_get_font" " PDF_get_font()" "PDF_get_fontname" " PDF_get_fontname()" "PDF_get_fontsize" " PDF_get_fontsize()" "PDF_get_image_height" " PDF_get_image_height()" "PDF_get_image_width" " PDF_get_image_width()" "PDF_open_gif" " PDF_open_gif()" "PDF_open_jpeg" " PDF_open_jpeg()" "PDF_open_tiff" " PDF_open_tiff()" "PDF_setpolydash" " PDF_setpolydash()" "PDF_set_char_spacing" " PDF_set_char_spacing()" "PDF_set_duration" " PDF_set_duration()" "PDF_set_horiz_scaling" " PDF_set_horiz_scaling()" "PDF_set_info_author" " PDF_set_info_author()" "PDF_set_info_creator" " PDF_set_info_creator()" "PDF_set_info_keywords" " PDF_set_info_keywords()" "PDF_set_info_subject" " PDF_set_info_subject()" "PDF_set_info_title" " PDF_set_info_title()" "PDF_set_leading" " PDF_set_leading()" "PDF_set_text_matrix" " PDF_set_text_matrix()" "PDF_set_text_rendering" " PDF_set_text_rendering()" "PDF_set_text_rise" " PDF_set_text_rise()" "PDF_set_word_spacing" " PDF_set_word_spacing()" "PharException" " PharException()" "pos" " pos()" "posix_errno" " posix_errno()" "qdom_tree" "QDomDocument qdom_tree(string $doc)" "rar_list" "RarArchive rar_list(RarArchive $rarfile)" "rar_open" "RarArchive rar_open(string $filename [, string $password = null [, callback $volume_callback = null]])" "rar_entry_get" "RarEntry rar_entry_get(string $entryname, RarArchive $rarfile)" "read_exif_data" " read_exif_data()" "recode" " recode()" "bbcode_create" "resource bbcode_create([array $bbcode_initial_tags = ''])" "resourcebundle_create" "ResourceBundle resourcebundle_create(string $locale, string $bundlename [, bool $fallback = ''])" "bzopen" "resource bzopen(string $filename, string $mode)" "crack_opendict" "resource crack_opendict(string $dictionary)" "cubrid_connect" "resource cubrid_connect(string $host, int $port, string $dbname [, string $userid = '' [, string $passwd = '']])" "cubrid_connect_with_url" "resource cubrid_connect_with_url(string $conn_url [, string $userid = '' [, string $passwd = '']])" "cubrid_prepare" "resource cubrid_prepare(resource $conn_identifier, string $prepare_stmt [, int $option = ''])" "cubrid_query" "resource cubrid_query(string $query [, resource $conn_identifier = ''])" "cubrid_unbuffered_query" "resource cubrid_unbuffered_query(string $query [, resource $conn_identifier = ''])" "curl_copy_handle" "resource curl_copy_handle(resource $ch)" "curl_init" "resource curl_init([string $url = ''])" "curl_multi_init" "resource curl_multi_init()" "cyrus_connect" "resource cyrus_connect([string $host = '' [, string $port = '' [, int $flags = '']]])" "db2_columns" "resource db2_columns(resource $connection [, string $qualifier = '' [, string $schema = '' [, string $table-name = '' [, string $column-name = '']]]])" "db2_column_privileges" "resource db2_column_privileges(resource $connection [, string $qualifier = '' [, string $schema = '' [, string $table-name = '' [, string $column-name = '']]]])" "db2_connect" "resource db2_connect(string $database, string $username, string $password [, array $options = ''])" "db2_exec" "resource db2_exec(resource $connection, string $statement [, array $options = ''])" "db2_foreign_keys" "resource db2_foreign_keys(resource $connection, string $qualifier, string $schema, string $table-name)" "db2_next_result" "resource db2_next_result(resource $stmt)" "db2_pconnect" "resource db2_pconnect(string $database, string $username, string $password [, array $options = ''])" "db2_prepare" "resource db2_prepare(resource $connection, string $statement [, array $options = ''])" "db2_primary_keys" "resource db2_primary_keys(resource $connection, string $qualifier, string $schema, string $table-name)" "db2_procedures" "resource db2_procedures(resource $connection, string $qualifier, string $schema, string $procedure)" "db2_procedure_columns" "resource db2_procedure_columns(resource $connection, string $qualifier, string $schema, string $procedure, string $parameter)" "db2_special_columns" "resource db2_special_columns(resource $connection, string $qualifier, string $schema, string $table_name, int $scope)" "db2_statistics" "resource db2_statistics(resource $connection, string $qualifier, string $schema, string $table-name, bool $unique)" "db2_tables" "resource db2_tables(resource $connection [, string $qualifier = '' [, string $schema = '' [, string $table-name = '' [, string $table-type = '']]]])" "db2_table_privileges" "resource db2_table_privileges(resource $connection [, string $qualifier = '' [, string $schema = '' [, string $table_name = '']]])" "dba_open" "resource dba_open(string $path, string $mode [, string $handler = '' [, mixed $... = '']])" "dba_popen" "resource dba_popen(string $path, string $mode [, string $handler = '' [, mixed $... = '']])" "dbplus_aql" "resource dbplus_aql(string $query [, string $server = '' [, string $dbpath = '']])" "dbplus_open" "resource dbplus_open(string $name)" "dbplus_rcreate" "resource dbplus_rcreate(string $name, mixed $domlist [, bool $overwrite = ''])" "dbplus_ropen" "resource dbplus_ropen(string $name)" "dbplus_rquery" "resource dbplus_rquery(string $query [, string $dbpath = ''])" "dbplus_sql" "resource dbplus_sql(string $query [, string $server = '' [, string $dbpath = '']])" "dio_open" "resource dio_open(string $filename, int $flags [, int $mode = ''])" "enchant_broker_init" "resource enchant_broker_init()" "enchant_broker_request_dict" "resource enchant_broker_request_dict(resource $broker, string $tag)" "enchant_broker_request_pwl_dict" "resource enchant_broker_request_pwl_dict(resource $broker, string $filename)" "event_base_new" "resource event_base_new()" "event_buffer_new" "resource event_buffer_new(resource $stream, mixed $readcb, mixed $writecb, mixed $errorcb [, mixed $arg = ''])" "event_new" "resource event_new()" "expect_popen" "resource expect_popen(string $command)" "fam_monitor_collection" "resource fam_monitor_collection(resource $fam, string $dirname, int $depth, string $mask)" "fam_monitor_directory" "resource fam_monitor_directory(resource $fam, string $dirname)" "fam_monitor_file" "resource fam_monitor_file(resource $fam, string $filename)" "fam_open" "resource fam_open([string $appname = ''])" "fbsql_connect" "resource fbsql_connect([string $hostname = ini_get(\"fbsql.default_host\") [, string $username = ini_get(\"fbsql.default_user\") [, string $password = ini_get(\"fbsql.default_password\")]]])" "fbsql_db_query" "resource fbsql_db_query(string $database, string $query [, resource $link_identifier = ''])" "fbsql_list_dbs" "resource fbsql_list_dbs([resource $link_identifier = ''])" "fbsql_list_fields" "resource fbsql_list_fields(string $database_name, string $table_name [, resource $link_identifier = ''])" "fbsql_list_tables" "resource fbsql_list_tables(string $database [, resource $link_identifier = ''])" "fbsql_pconnect" "resource fbsql_pconnect([string $hostname = ini_get(\"fbsql.default_host\") [, string $username = ini_get(\"fbsql.default_user\") [, string $password = ini_get(\"fbsql.default_password\")]]])" "fbsql_query" "resource fbsql_query(string $query [, resource $link_identifier = '' [, int $batch_size = '']])" "fdf_create" "resource fdf_create()" "fdf_open" "resource fdf_open(string $filename)" "fdf_open_string" "resource fdf_open_string(string $fdf_data)" "finfo_open" "resource finfo_open([int $options = FILEINFO_NONE [, string $magic_file = '']])" "fopen" "resource fopen(string $filename, string $mode [, bool $use_include_path = false [, resource $context = '']])" "fsockopen" "resource fsockopen(string $hostname [, int $port = -1 [, int $errno = '' [, string $errstr = '' [, float $timeout = ini_get(\"default_socket_timeout\")]]]])" "ftp_close" "resource ftp_close(resource $ftp_stream)" "ftp_connect" "resource ftp_connect(string $host [, int $port = 21 [, int $timeout = 90]])" "ftp_ssl_connect" "resource ftp_ssl_connect(string $host [, int $port = 21 [, int $timeout = 90]])" "gmp_abs" "resource gmp_abs(resource $a)" "gmp_add" "resource gmp_add(resource $a, resource $b)" "gmp_and" "resource gmp_and(resource $a, resource $b)" "gmp_com" "resource gmp_com(resource $a)" "gmp_divexact" "resource gmp_divexact(resource $n, resource $d)" "gmp_div_q" "resource gmp_div_q(resource $a, resource $b [, int $round = GMP_ROUND_ZERO])" "gmp_div_r" "resource gmp_div_r(resource $n, resource $d [, int $round = GMP_ROUND_ZERO])" "gmp_fact" "resource gmp_fact(mixed $a)" "gmp_gcd" "resource gmp_gcd(resource $a, resource $b)" "gmp_init" "resource gmp_init(mixed $number [, int $base = ''])" "gmp_invert" "resource gmp_invert(resource $a, resource $b)" "gmp_mod" "resource gmp_mod(resource $n, resource $d)" "gmp_mul" "resource gmp_mul(resource $a, resource $b)" "gmp_neg" "resource gmp_neg(resource $a)" "gmp_nextprime" "resource gmp_nextprime(int $a)" "gmp_or" "resource gmp_or(resource $a, resource $b)" "gmp_pow" "resource gmp_pow(resource $base, int $exp)" "gmp_powm" "resource gmp_powm(resource $base, resource $exp, resource $mod)" "gmp_random" "resource gmp_random([int $limiter = 20])" "gmp_sqrt" "resource gmp_sqrt(resource $a)" "gmp_sub" "resource gmp_sub(resource $a, resource $b)" "gmp_xor" "resource gmp_xor(resource $a, resource $b)" "gnupg_init" "resource gnupg_init()" "gupnp_context_new" "resource gupnp_context_new([string $host_ip = '' [, int $port = '']])" "gupnp_control_point_new" "resource gupnp_control_point_new(resource $context, string $target)" "gupnp_device_info_get_service" "resource gupnp_device_info_get_service(resource $root_device, string $type)" "gupnp_root_device_new" "resource gupnp_root_device_new(resource $context, string $location, string $description_dir)" "gzopen" "resource gzopen(string $filename, string $mode [, int $use_include_path = ''])" "hash_copy" "resource hash_copy(resource $context)" "hash_init" "resource hash_init(string $algo [, int $options = '' [, string $key = '']])" "http_get_request_body_stream" "resource http_get_request_body_stream()" "ibase_blob_create" "resource ibase_blob_create([resource $link_identifier = ''])" "ibase_blob_open" "resource ibase_blob_open(resource $link_identifier, string $blob_id)" "ibase_connect" "resource ibase_connect([string $database = '' [, string $username = '' [, string $password = '' [, string $charset = '' [, int $buffers = '' [, int $dialect = '' [, string $role = '' [, int $sync = '']]]]]]]])" "ibase_execute" "resource ibase_execute(resource $query [, mixed $bind_arg = '' [, mixed $... = '']])" "ibase_pconnect" "resource ibase_pconnect([string $database = '' [, string $username = '' [, string $password = '' [, string $charset = '' [, int $buffers = '' [, int $dialect = '' [, string $role = '' [, int $sync = '']]]]]]]])" "ibase_prepare" "resource ibase_prepare(string $query, resource $link_identifier, string $trans)" "ibase_query" "resource ibase_query([resource $link_identifier = '', string $query [, int $bind_args = '']])" "ibase_service_attach" "resource ibase_service_attach(string $host, string $dba_username, string $dba_password)" "ibase_set_event_handler" "resource ibase_set_event_handler(callback $event_handler, string $event_name1 [, string $event_name2 = '' [, string $... = '', resource $connection]])" "ibase_trans" "resource ibase_trans([int $trans_args = '' [, resource $link_identifier = '']])" "ifx_connect" "resource ifx_connect([string $database = '' [, string $userid = '' [, string $password = '']]])" "ifx_pconnect" "resource ifx_pconnect([string $database = '' [, string $userid = '' [, string $password = '']]])" "ifx_prepare" "resource ifx_prepare(string $query, resource $link_identifier [, int $cursor_def = '', mixed $blobidarray])" "ifx_query" "resource ifx_query(string $query, resource $link_identifier [, int $cursor_type = '' [, mixed $blobidarray = '']])" "imagecreate" "resource imagecreate(int $width, int $height)" "imagecreatefromgd" "resource imagecreatefromgd(string $filename)" "imagecreatefromgd2" "resource imagecreatefromgd2(string $filename)" "imagecreatefromgd2part" "resource imagecreatefromgd2part(string $filename, int $srcX, int $srcY, int $width, int $height)" "imagecreatefromgif" "resource imagecreatefromgif(string $filename)" "imagecreatefromjpeg" "resource imagecreatefromjpeg(string $filename)" "imagecreatefrompng" "resource imagecreatefrompng(string $filename)" "imagecreatefromstring" "resource imagecreatefromstring(string $data)" "imagecreatefromwbmp" "resource imagecreatefromwbmp(string $filename)" "imagecreatefromxbm" "resource imagecreatefromxbm(string $filename)" "imagecreatefromxpm" "resource imagecreatefromxpm(string $filename)" "imagecreatetruecolor" "resource imagecreatetruecolor(int $width, int $height)" "imagegrabscreen" "resource imagegrabscreen()" "imagegrabwindow" "resource imagegrabwindow(int $window_handle [, int $client_area = ''])" "imagepsloadfont" "resource imagepsloadfont(string $filename)" "imagerotate" "resource imagerotate(resource $image, float $angle, int $bgd_color [, int $ignore_transparent = ''])" "imap_open" "resource imap_open(string $mailbox, string $username, string $password [, int $options = NIL [, int $n_retries = '' [, array $params = '']]])" "ingres_connect" "resource ingres_connect([string $database = '' [, string $username = '' [, string $password = '' [, array $options = '']]]])" "ingres_pconnect" "resource ingres_pconnect([string $database = '' [, string $username = '' [, string $password = '' [, array $options = '']]]])" "inotify_init" "resource inotify_init()" "is_scalar" "resource is_scalar(mixed $var)" "kadm5_init_with_password" "resource kadm5_init_with_password(string $admin_server, string $realm, string $principal, string $password)" "ldap_connect" "resource ldap_connect([string $hostname = '' [, int $port = 389]])" "ldap_first_entry" "resource ldap_first_entry(resource $link_identifier, resource $result_identifier)" "ldap_first_reference" "resource ldap_first_reference(resource $link, resource $result)" "ldap_list" "resource ldap_list(resource $link_identifier, string $base_dn, string $filter [, array $attributes = '' [, int $attrsonly = '' [, int $sizelimit = '' [, int $timelimit = '' [, int $deref = '']]]]])" "ldap_next_entry" "resource ldap_next_entry(resource $link_identifier, resource $result_entry_identifier)" "ldap_next_reference" "resource ldap_next_reference(resource $link, resource $entry)" "ldap_read" "resource ldap_read(resource $link_identifier, string $base_dn, string $filter [, array $attributes = '' [, int $attrsonly = '' [, int $sizelimit = '' [, int $timelimit = '' [, int $deref = '']]]]])" "ldap_search" "resource ldap_search(resource $link_identifier, string $base_dn, string $filter [, array $attributes = '' [, int $attrsonly = '' [, int $sizelimit = '' [, int $timelimit = '' [, int $deref = '']]]]])" "mailparse_msg_create" "resource mailparse_msg_create()" "mailparse_msg_get_part" "resource mailparse_msg_get_part(resource $mimemail, string $mimesection)" "mailparse_msg_parse_file" "resource mailparse_msg_parse_file(string $filename)" "maxdb_connect" "resource maxdb_connect([string $host = '' [, string $username = '' [, string $passwd = '' [, string $dbname = '' [, int $port = '' [, string $socket = '']]]]]])" "maxdb_embedded_connect" "resource maxdb_embedded_connect([string $dbname = ''])" "maxdb_init" "resource maxdb_init()" "maxdb_stmt_result_metadata" "resource maxdb_stmt_result_metadata(resource $stmt)" "maxdb_use_result" "resource maxdb_use_result(resource $link)" "mcrypt_module_open" "resource mcrypt_module_open(string $algorithm, string $algorithm_directory, string $mode, string $mode_directory)" "msg_get_queue" "resource msg_get_queue(int $key [, int $perms = ''])" "msql_connect" "resource msql_connect([string $hostname = ''])" "msql_db_query" "resource msql_db_query(string $database, string $query [, resource $link_identifier = ''])" "msql_list_dbs" "resource msql_list_dbs([resource $link_identifier = ''])" "msql_list_fields" "resource msql_list_fields(string $database, string $tablename [, resource $link_identifier = ''])" "msql_list_tables" "resource msql_list_tables(string $database [, resource $link_identifier = ''])" "msql_pconnect" "resource msql_pconnect([string $hostname = ''])" "msql_query" "resource msql_query(string $query [, resource $link_identifier = ''])" "mssql_connect" "resource mssql_connect([string $servername = '' [, string $username = '' [, string $password = '' [, bool $new_link = false]]]])" "mssql_init" "resource mssql_init(string $sp_name [, resource $link_identifier = ''])" "mssql_pconnect" "resource mssql_pconnect([string $servername = '' [, string $username = '' [, string $password = '' [, bool $new_link = false]]]])" "mysql_connect" "resource mysql_connect([string $server = ini_get(\"mysql.default_host\") [, string $username = ini_get(\"mysql.default_user\") [, string $password = ini_get(\"mysql.default_password\") [, bool $new_link = false [, int $client_flags = '']]]]])" "mysql_db_query" "resource mysql_db_query(string $database, string $query [, resource $link_identifier = ''])" "mysql_list_dbs" "resource mysql_list_dbs([resource $link_identifier = ''])" "mysql_list_fields" "resource mysql_list_fields(string $database_name, string $table_name [, resource $link_identifier = ''])" "mysql_list_processes" "resource mysql_list_processes([resource $link_identifier = ''])" "mysql_list_tables" "resource mysql_list_tables(string $database [, resource $link_identifier = ''])" "mysql_pconnect" "resource mysql_pconnect([string $server = ini_get(\"mysql.default_host\") [, string $username = ini_get(\"mysql.default_user\") [, string $password = ini_get(\"mysql.default_password\") [, int $client_flags = '']]]])" "mysql_query" "resource mysql_query(string $query [, resource $link_identifier = ''])" "mysql_unbuffered_query" "resource mysql_unbuffered_query(string $query [, resource $link_identifier = ''])" "m_initconn" "resource m_initconn()" "ncurses_newpad" "resource ncurses_newpad(int $rows, int $cols)" "ncurses_newwin" "resource ncurses_newwin(int $rows, int $cols, int $y, int $x)" "ncurses_new_panel" "resource ncurses_new_panel(resource $window)" "ncurses_panel_above" "resource ncurses_panel_above(resource $panel)" "ncurses_panel_below" "resource ncurses_panel_below(resource $panel)" "ncurses_panel_window" "resource ncurses_panel_window(resource $panel)" "newt_button" "resource newt_button(int $left, int $top, string $text)" "newt_button_bar" "resource newt_button_bar(array $buttons)" "newt_checkbox" "resource newt_checkbox(int $left, int $top, string $text, string $def_value [, string $seq = ''])" "newt_checkbox_tree" "resource newt_checkbox_tree(int $left, int $top, int $height [, int $flags = ''])" "newt_checkbox_tree_multi" "resource newt_checkbox_tree_multi(int $left, int $top, int $height, string $seq [, int $flags = ''])" "newt_compact_button" "resource newt_compact_button(int $left, int $top, string $text)" "newt_create_grid" "resource newt_create_grid(int $cols, int $rows)" "newt_entry" "resource newt_entry(int $left, int $top, int $width [, string $init_value = '' [, int $flags = '']])" "newt_form" "resource newt_form([resource $vert_bar = '' [, string $help = '' [, int $flags = '']]])" "newt_form_get_current" "resource newt_form_get_current(resource $form)" "newt_grid_basic_window" "resource newt_grid_basic_window(resource $text, resource $middle, resource $buttons)" "newt_grid_h_close_stacked" "resource newt_grid_h_close_stacked(int $element1_type, resource $element1 [, resource $... = ''])" "newt_grid_h_stacked" "resource newt_grid_h_stacked(int $element1_type, resource $element1 [, resource $... = ''])" "newt_grid_simple_window" "resource newt_grid_simple_window(resource $text, resource $middle, resource $buttons)" "newt_grid_v_close_stacked" "resource newt_grid_v_close_stacked(int $element1_type, resource $element1 [, resource $... = ''])" "newt_grid_v_stacked" "resource newt_grid_v_stacked(int $element1_type, resource $element1 [, resource $... = ''])" "newt_label" "resource newt_label(int $left, int $top, string $text)" "newt_listbox" "resource newt_listbox(int $left, int $top, int $height [, int $flags = ''])" "newt_listitem" "resource newt_listitem(int $left, int $top, string $text, bool $is_default, resouce $prev_item, mixed $data [, int $flags = ''])" "newt_radiobutton" "resource newt_radiobutton(int $left, int $top, string $text, bool $is_default [, resource $prev_button = ''])" "newt_radio_get_current" "resource newt_radio_get_current(resource $set_member)" "newt_run_form" "resource newt_run_form(resource $form)" "newt_scale" "resource newt_scale(int $left, int $top, int $width, int $full_value)" "newt_textbox" "resource newt_textbox(int $left, int $top, int $width, int $height [, int $flags = ''])" "newt_textbox_reflowed" "resource newt_textbox_reflowed(int $left, int $top, char $*text, int $width, int $flex_down, int $flex_up [, int $flags = ''])" "newt_vertical_scrollbar" "resource newt_vertical_scrollbar(int $left, int $top, int $height [, int $normal_colorset = '' [, int $thumb_colorset = '']])" "oci_connect" "resource oci_connect(string $username, string $password [, string $connection_string = '' [, string $character_set = '' [, int $session_mode = '']]])" "oci_new_connect" "resource oci_new_connect(string $username, string $password [, string $connection_string = '' [, string $character_set = '' [, int $session_mode = '']]])" "oci_new_cursor" "resource oci_new_cursor(resource $connection)" "oci_parse" "resource oci_parse(resource $connection, string $sql_text)" "oci_password_change" "resource oci_password_change(resource $connection, string $username, string $old_password, string $new_password, string $dbname)" "oci_pconnect" "resource oci_pconnect(string $username, string $password [, string $connection_string = '' [, string $character_set = '' [, int $session_mode = '']]])" "odbc_columnprivileges" "resource odbc_columnprivileges(resource $connection_id, string $qualifier, string $owner, string $table_name, string $column_name)" "odbc_columns" "resource odbc_columns(resource $connection_id [, string $qualifier = '' [, string $schema = '' [, string $table_name = '' [, string $column_name = '']]]])" "odbc_connect" "resource odbc_connect(string $dsn, string $user, string $password [, int $cursor_type = ''])" "odbc_exec" "resource odbc_exec(resource $connection_id, string $query_string [, int $flags = ''])" "odbc_foreignkeys" "resource odbc_foreignkeys(resource $connection_id, string $pk_qualifier, string $pk_owner, string $pk_table, string $fk_qualifier, string $fk_owner, string $fk_table)" "odbc_gettypeinfo" "resource odbc_gettypeinfo(resource $connection_id [, int $data_type = ''])" "odbc_pconnect" "resource odbc_pconnect(string $dsn, string $user, string $password [, int $cursor_type = ''])" "odbc_prepare" "resource odbc_prepare(resource $connection_id, string $query_string)" "odbc_primarykeys" "resource odbc_primarykeys(resource $connection_id, string $qualifier, string $owner, string $table)" "odbc_procedurecolumns" "resource odbc_procedurecolumns(resource $connection_id, string $qualifier, string $owner, string $proc, string $column)" "odbc_procedures" "resource odbc_procedures(resource $connection_id, string $qualifier, string $owner, string $name)" "odbc_specialcolumns" "resource odbc_specialcolumns(resource $connection_id, int $type, string $qualifier, string $owner, string $table, int $scope, int $nullable)" "odbc_statistics" "resource odbc_statistics(resource $connection_id, string $qualifier, string $owner, string $table_name, int $unique, int $accuracy)" "odbc_tableprivileges" "resource odbc_tableprivileges(resource $connection_id, string $qualifier, string $owner, string $name)" "odbc_tables" "resource odbc_tables(resource $connection_id [, string $qualifier = '' [, string $owner = '' [, string $name = '' [, string $types = '']]]])" "openal_buffer_create" "resource openal_buffer_create()" "openal_context_create" "resource openal_context_create(resource $device)" "openal_device_open" "resource openal_device_open([string $device_desc = ''])" "openal_source_create" "resource openal_source_create()" "openal_stream" "resource openal_stream(resource $source, int $format, int $rate)" "opendir" "resource opendir(string $path [, resource $context = ''])" "openssl_csr_get_public_key" "resource openssl_csr_get_public_key(mixed $csr [, bool $use_shortnames = true])" "openssl_csr_sign" "resource openssl_csr_sign(mixed $csr, mixed $cacert, mixed $priv_key, int $days [, array $configargs = '' [, int $serial = '']])" "openssl_pkey_get_private" "resource openssl_pkey_get_private(mixed $key [, string $passphrase = \"\"])" "openssl_pkey_get_public" "resource openssl_pkey_get_public(mixed $certificate)" "openssl_pkey_new" "resource openssl_pkey_new([array $configargs = ''])" "openssl_x509_read" "resource openssl_x509_read(mixed $x509certdata)" "PDF_new" "resource PDF_new()" "pfsockopen" "resource pfsockopen(string $hostname [, int $port = -1 [, int $errno = '' [, string $errstr = '' [, float $timeout = ini_get(\"default_socket_timeout\")]]]])" "pg_connect" "resource pg_connect(string $connection_string [, int $connect_type = ''])" "pg_execute" "resource pg_execute([resource $connection = '', string $stmtname, array $params])" "pg_free_result" "resource pg_free_result(resource $result)" "pg_get_result" "resource pg_get_result([resource $connection = ''])" "pg_lo_open" "resource pg_lo_open(resource $connection, int $oid, string $mode)" "pg_pconnect" "resource pg_pconnect(string $connection_string [, int $connect_type = ''])" "pg_prepare" "resource pg_prepare([resource $connection = '', string $stmtname, string $query])" "pg_query" "resource pg_query([resource $connection = '', string $query])" "pg_query_params" "resource pg_query_params([resource $connection = '', string $query, array $params])" "popen" "resource popen(string $command, string $mode)" "printer_create_brush" "resource printer_create_brush(int $style, string $color)" "printer_create_font" "resource printer_create_font(string $face, int $height, int $width, int $font_weight, bool $italic, bool $underline, bool $strikeout, int $orientation)" "printer_create_pen" "resource printer_create_pen(int $style, int $width, string $color)" "printer_open" "resource printer_open([string $printername = ''])" "proc_open" "resource proc_open(string $cmd, array $descriptorspec, array $pipes [, string $cwd = '' [, array $env = '' [, array $other_options = '']]])" "ps_new" "resource ps_new()" "px_new" "resource px_new()" "radius_acct_open" "resource radius_acct_open()" "radius_auth_open" "resource radius_auth_open()" "rpm_open" "resource rpm_open(string $filename)" "sem_get" "resource sem_get(int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1]]])" "shm_attach" "resource shm_attach(int $key [, int $memsize = '' [, int $perm = '']])" "socket_accept" "resource socket_accept(resource $socket)" "socket_create" "resource socket_create(int $domain, int $type, int $protocol)" "socket_create_listen" "resource socket_create_listen(int $port [, int $backlog = 128])" "sqlite_open" "resource sqlite_open(string $filename [, int $mode = 0666 [, string $error_message = '']])" "sqlite_popen" "resource sqlite_popen(string $filename [, int $mode = 0666 [, string $error_message = '']])" "ssh2_connect" "resource ssh2_connect(string $host [, int $port = 22 [, array $methods = '' [, array $callbacks = '']]])" "ssh2_exec" "resource ssh2_exec(resource $session, string $command [, string $pty = '' [, array $env = '' [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS]]]]])" "ssh2_fetch_stream" "resource ssh2_fetch_stream(resource $channel, int $streamid)" "ssh2_publickey_init" "resource ssh2_publickey_init(resource $session)" "ssh2_sftp" "resource ssh2_sftp(resource $session)" "ssh2_shell" "resource ssh2_shell(resource $session [, string $term_type = \"vanilla\" [, array $env = '' [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS]]]]])" "ssh2_tunnel" "resource ssh2_tunnel(resource $session, string $host, int $port)" "stomp_connect" "resource stomp_connect([string $broker = ini_get(\"stomp.default_broker_uri\") [, string $username = '' [, string $password = '' [, array $headers = '']]]])" "stream_context_create" "resource stream_context_create([array $options = '' [, array $params = '']])" "stream_context_get_default" "resource stream_context_get_default([array $options = ''])" "stream_context_set_default" "resource stream_context_set_default(array $options)" "stream_filter_append" "resource stream_filter_append(resource $stream, string $filtername [, int $read_write = '' [, mixed $params = '']])" "stream_filter_prepend" "resource stream_filter_prepend(resource $stream, string $filtername [, int $read_write = '' [, mixed $params = '']])" "stream_socket_accept" "resource stream_socket_accept(resource $server_socket [, float $timeout = ini_get(\"default_socket_timeout\") [, string $peername = '']])" "stream_socket_client" "resource stream_socket_client(string $remote_socket [, int $errno = '' [, string $errstr = '' [, float $timeout = ini_get(\"default_socket_timeout\") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context = '']]]]])" "stream_socket_server" "resource stream_socket_server(string $local_socket [, int $errno = '' [, string $errstr = '' [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context = '']]]])" "svn_fs_apply_text" "resource svn_fs_apply_text(resource $root, string $path)" "svn_fs_begin_txn2" "resource svn_fs_begin_txn2(resource $repos, int $rev)" "svn_fs_file_contents" "resource svn_fs_file_contents(resource $fsroot, string $path)" "svn_fs_revision_root" "resource svn_fs_revision_root(resource $fs, int $revnum)" "svn_fs_txn_root" "resource svn_fs_txn_root(resource $txn)" "svn_repos_create" "resource svn_repos_create(string $path [, array $config = '' [, array $fsconfig = '']])" "svn_repos_fs" "resource svn_repos_fs(resource $repos)" "svn_repos_fs_begin_txn_for_commit" "resource svn_repos_fs_begin_txn_for_commit(resource $repos, int $rev, string $author, string $log_msg)" "svn_repos_open" "resource svn_repos_open(string $path)" "sybase_connect" "resource sybase_connect([string $servername = '' [, string $username = '' [, string $password = '' [, string $charset = '' [, string $appname = '' [, bool $new = false]]]]]])" "sybase_pconnect" "resource sybase_pconnect([string $servername = '' [, string $username = '' [, string $password = '' [, string $charset = '' [, string $appname = '']]]]])" "sybase_unbuffered_query" "resource sybase_unbuffered_query(string $query, resource $link_identifier [, bool $store_result = ''])" "tmpfile" "resource tmpfile()" "udm_alloc_agent" "resource udm_alloc_agent(string $dbaddr [, string $dbmode = ''])" "udm_alloc_agent_array" "resource udm_alloc_agent_array(array $databases)" "udm_find" "resource udm_find(resource $agent, string $query)" "w32api_init_dtype" "resource w32api_init_dtype(string $typename, mixed $value [, mixed $... = ''])" "wddx_packet_start" "resource wddx_packet_start([string $comment = ''])" "xmlrpc_server_create" "resource xmlrpc_server_create()" "xml_parser_create" "resource xml_parser_create([string $encoding = ''])" "xml_parser_create_ns" "resource xml_parser_create_ns([string $encoding = '' [, string $separator = ':']])" "xslt_create" "resource xslt_create()" "Runkit_Sandbox" " Runkit_Sandbox()" "session_commit" " session_commit()" "set_file_buffer" " set_file_buffer()" "set_socket_blocking" " set_socket_blocking()" "show_source" " show_source()" "simplexml_import_dom" "SimpleXMLElement simplexml_import_dom(DOMNode $node [, string $class_name = \"SimpleXMLElement\"])" "sizeof" " sizeof()" "socket_get_status" " socket_get_status()" "socket_set_blocking" " socket_set_blocking()" "socket_set_timeout" " socket_set_timeout()" "sqlite_factory" "SQLiteDatabase sqlite_factory(string $filename [, int $mode = 0666 [, string $error_message = '']])" "sqlite_query" "SQLiteResult sqlite_query(resource $dbhandle, string $query [, int $result_type = '' [, string $error_msg = '']])" "sqlite_unbuffered_query" "SQLiteUnbuffered sqlite_unbuffered_query(resource $dbhandle, string $query [, int $result_type = '' [, string $error_msg = '']])" "sqlite_fetch_string" " sqlite_fetch_string()" "strchr" " strchr()" "stream_register_wrapper" " stream_register_wrapper()" "addcslashes" "string addcslashes(string $str, string $charlist)" "addslashes" "string addslashes(string $str)" "apache_getenv" "string apache_getenv(string $variable [, bool $walk_to_top = ''])" "apache_get_version" "string apache_get_version()" "apache_note" "string apache_note(string $note_name [, string $note_value = ''])" "apc_bin_dump" "string apc_bin_dump([array $files = '' [, array $user_vars = '']])" "apd_set_pprof_trace" "string apd_set_pprof_trace([string $dump_directory = '' [, string $fragment = \"pprof\"]])" "array_flip" "string array_flip(array $trans)" "array_multisort" "string array_multisort(array $arr [, mixed $arg = SORT_REGULAR [, mixed $... = '']])" "base64_decode" "string base64_decode(string $data [, bool $strict = false])" "base64_encode" "string base64_encode(string $data)" "basename" "string basename(string $path [, string $suffix = ''])" "base_convert" "string base_convert(string $number, int $frombase, int $tobase)" "bbcode_parse" "string bbcode_parse(resource $bbcode_container, string $to_parse)" "bcadd" "string bcadd(string $left_operand, string $right_operand [, int $scale = ''])" "bcdiv" "string bcdiv(string $left_operand, string $right_operand [, int $scale = ''])" "bcmod" "string bcmod(string $left_operand, string $modulus)" "bcmul" "string bcmul(string $left_operand, string $right_operand [, int $scale = ''])" "bcpow" "string bcpow(string $left_operand, string $right_operand [, int $scale = ''])" "bcpowmod" "string bcpowmod(string $left_operand, string $right_operand, string $modulus [, int $scale = ''])" "bcsqrt" "string bcsqrt(string $operand [, int $scale = ''])" "bcsub" "string bcsub(string $left_operand, string $right_operand [, int $scale = ''])" "bin2hex" "string bin2hex(string $str)" "bindtextdomain" "string bindtextdomain(string $domain, string $directory)" "bind_textdomain_codeset" "string bind_textdomain_codeset(string $domain, string $codeset)" "bson_encode" "string bson_encode(mixed $anything)" "bzerrstr" "string bzerrstr(resource $bz)" "bzread" "string bzread(resource $bz [, int $length = 1024])" "cairo_image_surface_get_data" "string cairo_image_surface_get_data(CairoImageSurface $surface)" "cairo_ps_level_to_string" "string cairo_ps_level_to_string(int $level)" "cairo_status_to_string" "string cairo_status_to_string(int $status)" "cairo_svg_version_to_string" "string cairo_svg_version_to_string(int $version)" "cairo_version_string" "string cairo_version_string()" "calculhmac" "string calculhmac(string $clent, string $data)" "calcul_hmac" "string calcul_hmac(string $clent, string $siretcode, string $price, string $reference, string $validity, string $taxation, string $devise, string $language)" "chr" "string chr(int $ascii)" "chunk_split" "string chunk_split(string $body [, int $chunklen = 76 [, string $end = \"\\r\\n\"]])" "collator_get_error_message" "string collator_get_error_message(Collator $coll)" "collator_get_locale" "string collator_get_locale(int $type, Collator $coll)" "collator_get_sort_key" "string collator_get_sort_key(string $str, Collator $coll)" "com_create_guid" "string com_create_guid()" "convert_cyr_string" "string convert_cyr_string(string $str, string $from, string $to)" "convert_uudecode" "string convert_uudecode(string $data)" "convert_uuencode" "string convert_uuencode(string $data)" "crack_getlastmessage" "string crack_getlastmessage()" "create_function" "string create_function(string $args, string $code)" "crypt" "string crypt(string $str [, string $salt = ''])" "ctype_alnum" "string ctype_alnum(string $text)" "ctype_alpha" "string ctype_alpha(string $text)" "ctype_cntrl" "string ctype_cntrl(string $text)" "ctype_digit" "string ctype_digit(string $text)" "ctype_graph" "string ctype_graph(string $text)" "ctype_lower" "string ctype_lower(string $text)" "ctype_print" "string ctype_print(string $text)" "ctype_punct" "string ctype_punct(string $text)" "ctype_space" "string ctype_space(string $text)" "ctype_upper" "string ctype_upper(string $text)" "ctype_xdigit" "string ctype_xdigit(string $text)" "cubrid_client_encoding" "string cubrid_client_encoding([resource $conn_identifier = ''])" "cubrid_current_oid" "string cubrid_current_oid(resource $req_identifier)" "cubrid_db_name" "string cubrid_db_name(array $result, int $index)" "cubrid_error" "string cubrid_error([resource $connection = ''])" "cubrid_error_msg" "string cubrid_error_msg()" "cubrid_field_flags" "string cubrid_field_flags(resource $result, int $field_offset)" "cubrid_field_name" "string cubrid_field_name(resource $result, int $field_offset)" "cubrid_field_table" "string cubrid_field_table(resource $result, int $field_offset)" "cubrid_field_type" "string cubrid_field_type(resource $result, int $field_offset)" "cubrid_get_charset" "string cubrid_get_charset(resource $conn_identifier)" "cubrid_get_class_name" "string cubrid_get_class_name(resource $conn_identifier, string $oid)" "cubrid_get_client_info" "string cubrid_get_client_info()" "cubrid_get_server_info" "string cubrid_get_server_info(resource $conn_identifier)" "cubrid_insert_id" "string cubrid_insert_id([resource $conn_identifier = ''])" "cubrid_lob_size" "string cubrid_lob_size(resource $lob_identifier)" "cubrid_new_glo" "string cubrid_new_glo(resource $conn_identifier, string $class_name, string $file_name)" "cubrid_real_escape_string" "string cubrid_real_escape_string(string $unescaped_string [, resource $conn_identifier = ''])" "cubrid_result" "string cubrid_result(resource $result, int $row [, mixed $field = ''])" "cubrid_version" "string cubrid_version()" "curl_error" "string curl_error(resource $ch)" "curl_multi_getcontent" "string curl_multi_getcontent(resource $ch)" "date" "string date(string $format [, int $timestamp = ''])" "datefmt_format" "string datefmt_format(mixed $value, IntlDateFormatter $fmt)" "datefmt_get_error_message" "string datefmt_get_error_message(IntlDateFormatter $fmt)" "datefmt_get_locale" "string datefmt_get_locale([int $which = '', IntlDateFormatter $fmt])" "datefmt_get_pattern" "string datefmt_get_pattern(IntlDateFormatter $fmt)" "datefmt_get_timezone_id" "string datefmt_get_timezone_id(IntlDateFormatter $fmt)" "date_default_timezone_get" "string date_default_timezone_get()" "db2_conn_error" "string db2_conn_error([resource $connection = ''])" "db2_conn_errormsg" "string db2_conn_errormsg([resource $connection = ''])" "db2_escape_string" "string db2_escape_string(string $string_literal)" "db2_field_name" "string db2_field_name(resource $stmt, mixed $column)" "db2_field_type" "string db2_field_type(resource $stmt, mixed $column)" "db2_get_option" "string db2_get_option(resource $resource, string $option)" "db2_last_insert_id" "string db2_last_insert_id(resource $resource)" "db2_lob_read" "string db2_lob_read(resource $stmt, int $colnum, int $length)" "db2_stmt_error" "string db2_stmt_error([resource $stmt = ''])" "db2_stmt_errormsg" "string db2_stmt_errormsg([resource $stmt = ''])" "dba_fetch" "string dba_fetch(string $key, resource $handle, int $skip)" "dba_firstkey" "string dba_firstkey(resource $handle)" "dba_nextkey" "string dba_nextkey(resource $handle)" "dbplus_chdir" "string dbplus_chdir([string $newdir = ''])" "dbplus_errcode" "string dbplus_errcode([int $errno = ''])" "dbplus_tcl" "string dbplus_tcl(int $sid, string $script)" "dbx_error" "string dbx_error(object $link_identifier)" "dbx_escape_string" "string dbx_escape_string(object $link_identifier, string $text)" "dcgettext" "string dcgettext(string $domain, string $message, int $category)" "dcngettext" "string dcngettext(string $domain, string $msgid1, string $msgid2, int $n, int $category)" "decbin" "string decbin(int $number)" "dechex" "string dechex(int $number)" "decoct" "string decoct(int $number)" "dgettext" "string dgettext(string $domain, string $message)" "dio_read" "string dio_read(resource $fd [, int $len = 1024])" "dirname" "string dirname(string $path)" "dngettext" "string dngettext(string $domain, string $msgid1, string $msgid2, int $n)" "domxml_version" "string domxml_version()" "enchant_broker_get_error" "string enchant_broker_get_error(resource $broker)" "enchant_dict_get_error" "string enchant_dict_get_error(resource $dict)" "eregi_replace" "string eregi_replace(string $pattern, string $replacement, string $string)" "ereg_replace" "string ereg_replace(string $pattern, string $replacement, string $string)" "escapeshellarg" "string escapeshellarg(string $arg)" "escapeshellcmd" "string escapeshellcmd(string $command)" "event_buffer_read" "string event_buffer_read(resource $bevent, int $data_size)" "exec" "string exec(string $command [, array $output = '' [, int $return_var = '']])" "exif_tagname" "string exif_tagname(int $index)" "exif_thumbnail" "string exif_thumbnail(string $filename [, int $width = '' [, int $height = '' [, int $imagetype = '']]])" "fbsql_create_blob" "string fbsql_create_blob(string $blob_data [, resource $link_identifier = ''])" "fbsql_create_clob" "string fbsql_create_clob(string $clob_data [, resource $link_identifier = ''])" "fbsql_database" "string fbsql_database(resource $link_identifier [, string $database = ''])" "fbsql_database_password" "string fbsql_database_password(resource $link_identifier [, string $database_password = ''])" "fbsql_error" "string fbsql_error([resource $link_identifier = ''])" "fbsql_field_flags" "string fbsql_field_flags(resource $result [, int $field_offset = ''])" "fbsql_field_name" "string fbsql_field_name(resource $result [, int $field_index = ''])" "fbsql_field_table" "string fbsql_field_table(resource $result [, int $field_offset = ''])" "fbsql_field_type" "string fbsql_field_type(resource $result [, int $field_offset = ''])" "fbsql_hostname" "string fbsql_hostname(resource $link_identifier [, string $host_name = ''])" "fbsql_password" "string fbsql_password(resource $link_identifier [, string $password = ''])" "fbsql_read_blob" "string fbsql_read_blob(string $blob_handle [, resource $link_identifier = ''])" "fbsql_read_clob" "string fbsql_read_clob(string $clob_handle [, resource $link_identifier = ''])" "fbsql_table_name" "string fbsql_table_name(resource $result, int $index)" "fbsql_username" "string fbsql_username(resource $link_identifier [, string $username = ''])" "fdf_error" "string fdf_error([int $error_code = -1])" "fdf_get_encoding" "string fdf_get_encoding(resource $fdf_document)" "fdf_get_file" "string fdf_get_file(resource $fdf_document)" "fdf_get_status" "string fdf_get_status(resource $fdf_document)" "fdf_get_version" "string fdf_get_version([resource $fdf_document = ''])" "fdf_next_field_name" "string fdf_next_field_name(resource $fdf_document [, string $fieldname = ''])" "fdf_save_string" "string fdf_save_string(resource $fdf_document)" "fgetc" "string fgetc(resource $handle)" "fgets" "string fgets(resource $handle [, int $length = ''])" "fgetss" "string fgetss(resource $handle [, int $length = '' [, string $allowable_tags = '']])" "filepro_fieldname" "string filepro_fieldname(int $field_number)" "filepro_fieldtype" "string filepro_fieldtype(int $field_number)" "filepro_retrieve" "string filepro_retrieve(int $row_number, int $field_number)" "filetype" "string filetype(string $filename)" "file_get_contents" "string file_get_contents(string $filename [, bool $use_include_path = false [, resource $context = '' [, int $offset = -1 [, int $maxlen = '']]]])" "finfo_buffer" "string finfo_buffer(resource $finfo, string $string [, int $options = FILEINFO_NONE [, resource $context = '']])" "finfo_file" "string finfo_file(resource $finfo, string $file_name [, int $options = FILEINFO_NONE [, resource $context = '']])" "fread" "string fread(resource $handle, int $length)" "fribidi_log2vis" "string fribidi_log2vis(string $str, string $direction, int $charset)" "ftp_mkdir" "string ftp_mkdir(resource $ftp_stream, string $directory)" "ftp_pwd" "string ftp_pwd(resource $ftp_stream)" "ftp_systype" "string ftp_systype(resource $ftp_stream)" "gearman_job_handle" "string gearman_job_handle()" "geoip_continent_code_by_name" "string geoip_continent_code_by_name(string $hostname)" "geoip_country_code3_by_name" "string geoip_country_code3_by_name(string $hostname)" "geoip_country_code_by_name" "string geoip_country_code_by_name(string $hostname)" "geoip_country_name_by_name" "string geoip_country_name_by_name(string $hostname)" "geoip_database_info" "string geoip_database_info([int $database = GEOIP_COUNTRY_EDITION])" "geoip_db_filename" "string geoip_db_filename(int $database)" "geoip_isp_by_name" "string geoip_isp_by_name(string $hostname)" "geoip_org_by_name" "string geoip_org_by_name(string $hostname)" "geoip_region_name_by_code" "string geoip_region_name_by_code(string $country_code, string $region_code)" "geoip_time_zone_by_country_and_region" "string geoip_time_zone_by_country_and_region(string $country_code [, string $region_code = ''])" "getcwd" "string getcwd()" "getenv" "string getenv(string $varname)" "gethostbyaddr" "string gethostbyaddr(string $ip_address)" "gethostbyname" "string gethostbyname(string $hostname)" "gethostname" "string gethostname()" "getprotobynumber" "string getprotobynumber(int $number)" "getservbyport" "string getservbyport(int $port, string $protocol)" "gettext" "string gettext(string $message)" "gettype" "string gettype(mixed $var)" "get_called_class" "string get_called_class()" "get_cfg_var" "string get_cfg_var(string $option)" "get_class" "string get_class([object $object = ''])" "get_current_user" "string get_current_user()" "get_include_path" "string get_include_path()" "get_parent_class" "string get_parent_class([mixed $object = ''])" "get_resource_type" "string get_resource_type(resource $handle)" "gmdate" "string gmdate(string $format [, int $timestamp = ''])" "gmp_strval" "string gmp_strval(resource $gmpnumber [, int $base = ''])" "gmstrftime" "string gmstrftime(string $format [, int $timestamp = time()])" "gnupg_decrypt" "string gnupg_decrypt(resource $identifier, string $text)" "gnupg_encrypt" "string gnupg_encrypt(resource $identifier, string $plaintext)" "gnupg_encryptsign" "string gnupg_encryptsign(resource $identifier, string $plaintext)" "gnupg_export" "string gnupg_export(resource $identifier, string $fingerprint)" "gnupg_geterror" "string gnupg_geterror(resource $identifier)" "gnupg_sign" "string gnupg_sign(resource $identifier, string $plaintext)" "grapheme_extract" "string grapheme_extract(string $haystack, int $size [, int $extract_type = '' [, int $start = '' [, int $next = '']]])" "grapheme_stristr" "string grapheme_stristr(string $haystack, string $needle [, bool $before_needle = false])" "grapheme_strstr" "string grapheme_strstr(string $haystack, string $needle [, bool $before_needle = false])" "gupnp_context_get_host_ip" "string gupnp_context_get_host_ip(resource $context)" "gupnp_root_device_get_relative_location" "string gupnp_root_device_get_relative_location(resource $root_device)" "gzcompress" "string gzcompress(string $data [, int $level = -1])" "gzdecode" "string gzdecode(string $data [, int $length = ''])" "gzdeflate" "string gzdeflate(string $data [, int $level = -1])" "gzencode" "string gzencode(string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP]])" "gzgetc" "string gzgetc(resource $zp)" "gzgets" "string gzgets(resource $zp, int $length)" "gzgetss" "string gzgetss(resource $zp, int $length [, string $allowable_tags = ''])" "gzinflate" "string gzinflate(string $data [, int $length = ''])" "gzread" "string gzread(resource $zp, int $length)" "gzuncompress" "string gzuncompress(string $data [, int $length = ''])" "hash" "string hash(string $algo, string $data [, bool $raw_output = false])" "hash_file" "string hash_file(string $algo, string $filename [, bool $raw_output = false])" "hash_final" "string hash_final(resource $context [, bool $raw_output = false])" "hash_hmac" "string hash_hmac(string $algo, string $data, string $key [, bool $raw_output = false])" "hash_hmac_file" "string hash_hmac_file(string $algo, string $filename, string $key [, bool $raw_output = false])" "hebrev" "string hebrev(string $hebrew_text [, int $max_chars_per_line = ''])" "hebrevc" "string hebrevc(string $hebrew_text [, int $max_chars_per_line = ''])" "htmlentities" "string htmlentities(string $string [, int $flags = ENT_COMPAT [, string $charset = '' [, bool $double_encode = true]]])" "htmlspecialchars" "string htmlspecialchars(string $string [, int $flags = ENT_COMPAT [, string $charset = '' [, bool $double_encode = true]]])" "htmlspecialchars_decode" "string htmlspecialchars_decode(string $string [, int $quote_style = ENT_COMPAT])" "html_entity_decode" "string html_entity_decode(string $string [, int $quote_style = ENT_COMPAT [, string $charset = 'UTF-8']])" "http_build_cookie" "string http_build_cookie(array $cookie)" "http_build_query" "string http_build_query(mixed $query_data [, string $numeric_prefix = '' [, string $arg_separator = '' [, int $enc_type = '']]])" "http_build_str" "string http_build_str(array $query [, string $prefix = '' [, string $arg_separator = ini_get(\"arg_separator.output\")]])" "http_build_url" "string http_build_url([mixed $url = '' [, mixed $parts = '' [, int $flags = HTTP_URL_REPLACE [, array $new_url = '']]]])" "http_chunked_decode" "string http_chunked_decode(string $encoded)" "http_date" "string http_date([int $timestamp = ''])" "http_deflate" "string http_deflate(string $data [, int $flags = ''])" "http_get" "string http_get(string $url [, array $options = '' [, array $info = '']])" "http_get_request_body" "string http_get_request_body()" "http_head" "string http_head(string $url [, array $options = '' [, array $info = '']])" "http_inflate" "string http_inflate(string $data)" "http_negotiate_charset" "string http_negotiate_charset(array $supported [, array $result = ''])" "http_negotiate_content_type" "string http_negotiate_content_type(array $supported [, array $result = ''])" "http_negotiate_language" "string http_negotiate_language(array $supported [, array $result = ''])" "http_persistent_handles_clean" "string http_persistent_handles_clean([string $ident = ''])" "http_persistent_handles_ident" "string http_persistent_handles_ident([string $ident = ''])" "http_post_data" "string http_post_data(string $url, string $data [, array $options = '' [, array $info = '']])" "http_post_fields" "string http_post_fields(string $url, array $data [, array $files = '' [, array $options = '' [, array $info = '']]])" "http_put_data" "string http_put_data(string $url, string $data [, array $options = '' [, array $info = '']])" "http_put_file" "string http_put_file(string $url, string $file [, array $options = '' [, array $info = '']])" "http_put_stream" "string http_put_stream(string $url, resource $stream [, array $options = '' [, array $info = '']])" "http_request" "string http_request(int $method, string $url [, string $body = '' [, array $options = '' [, array $info = '']]])" "http_request_body_encode" "string http_request_body_encode(array $fields, array $files)" "http_request_method_name" "string http_request_method_name(int $method)" "hw_Array2Objrec" "string hw_Array2Objrec(array $object_array)" "hw_DocByAnchorObj" "string hw_DocByAnchorObj(int $connection, int $anchorID)" "hw_Document_Attributes" "string hw_Document_Attributes(int $hw_document)" "hw_Document_BodyTag" "string hw_Document_BodyTag(int $hw_document [, string $prefix = ''])" "hw_Document_Content" "string hw_Document_Content(int $hw_document)" "hw_dummy" "string hw_dummy(int $link, int $id, int $msgid)" "hw_ErrorMsg" "string hw_ErrorMsg(int $connection)" "hw_GetAndLock" "string hw_GetAndLock(int $connection, int $objectID)" "hw_getrellink" "string hw_getrellink(int $link, int $rootid, int $sourceid, int $destid)" "hw_getusername" "string hw_getusername(int $connection)" "hw_Identify" "string hw_Identify(int $link, string $username, string $password)" "hw_Info" "string hw_Info(int $connection)" "hw_stat" "string hw_stat(int $link)" "ibase_blob_get" "string ibase_blob_get(resource $blob_handle, int $len)" "ibase_blob_import" "string ibase_blob_import(resource $link_identifier, resource $file_handle)" "ibase_db_info" "string ibase_db_info(resource $service_handle, string $db, int $action [, int $argument = ''])" "ibase_errmsg" "string ibase_errmsg()" "ibase_server_info" "string ibase_server_info(resource $service_handle, int $action)" "ibase_wait_event" "string ibase_wait_event(string $event_name1 [, string $event_name2 = '' [, string $... = '', resource $connection]])" "iconv" "string iconv(string $in_charset, string $out_charset, string $str)" "iconv_mime_decode" "string iconv_mime_decode(string $encoded_header [, int $mode = '' [, string $charset = ini_get(\"iconv.internal_encoding\")]])" "iconv_mime_encode" "string iconv_mime_encode(string $field_name, string $field_value [, array $preferences = ''])" "iconv_substr" "string iconv_substr(string $str, int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get(\"iconv.internal_encoding\")]])" "id3_get_frame_long_name" "string id3_get_frame_long_name(string $frameId)" "id3_get_frame_short_name" "string id3_get_frame_short_name(string $frameId)" "id3_get_genre_name" "string id3_get_genre_name(int $genre_id)" "idn_to_ascii" "string idn_to_ascii(string $domain [, int $options = ''])" "idn_to_utf8" "string idn_to_utf8(string $domain [, int $options = ''])" "ifxus_read_slob" "string ifxus_read_slob(int $bid, int $nbytes)" "ifx_error" "string ifx_error([resource $link_identifier = ''])" "ifx_errormsg" "string ifx_errormsg([int $errorcode = ''])" "ifx_get_blob" "string ifx_get_blob(int $bid)" "ifx_get_char" "string ifx_get_char(int $bid)" "iis_get_script_map" "string iis_get_script_map(int $server_instance, string $virtual_path, string $script_extension)" "image_type_to_extension" "string image_type_to_extension(int $imagetype [, bool $include_dot = ''])" "image_type_to_mime_type" "string image_type_to_mime_type(int $imagetype)" "imap_8bit" "string imap_8bit(string $string)" "imap_base64" "string imap_base64(string $text)" "imap_binary" "string imap_binary(string $string)" "imap_body" "string imap_body(resource $imap_stream, int $msg_number [, int $options = ''])" "imap_fetchbody" "string imap_fetchbody(resource $imap_stream, int $msg_number, string $section [, int $options = ''])" "imap_fetchheader" "string imap_fetchheader(resource $imap_stream, int $msg_number [, int $options = ''])" "imap_fetchmime" "string imap_fetchmime(resource $imap_stream, int $msg_number, string $section [, int $options = ''])" "imap_last_error" "string imap_last_error()" "imap_mail_compose" "string imap_mail_compose(array $envelope, array $body)" "imap_qprint" "string imap_qprint(string $string)" "imap_rfc822_write_address" "string imap_rfc822_write_address(string $mailbox, string $host, string $personal)" "imap_utf7_decode" "string imap_utf7_decode(string $text)" "imap_utf7_encode" "string imap_utf7_encode(string $data)" "imap_utf8" "string imap_utf8(string $mime_encoded_text)" "implode" "string implode(string $glue, array $pieces)" "inet_ntop" "string inet_ntop(string $in_addr)" "inet_pton" "string inet_pton(string $address)" "ingres_charset" "string ingres_charset(resource $link)" "ingres_cursor" "string ingres_cursor(resource $result)" "ingres_error" "string ingres_error([resource $link = ''])" "ingres_errsqlstate" "string ingres_errsqlstate([resource $link = ''])" "ingres_escape_string" "string ingres_escape_string(resource $link, string $source_string)" "ingres_field_name" "string ingres_field_name(resource $result, int $index)" "ingres_field_type" "string ingres_field_type(resource $result, int $index)" "ini_get" "string ini_get(string $varname)" "ini_set" "string ini_set(string $varname, string $newvalue)" "intl_error_name" "string intl_error_name(int $error_code)" "intl_get_error_message" "string intl_get_error_message()" "JDMonthName" "string JDMonthName(int $julianday, int $mode)" "JDToFrench" "string JDToFrench(int $juliandaycount)" "JDToGregorian" "string JDToGregorian(int $julianday)" "jdtojewish" "string jdtojewish(int $juliandaycount [, bool $hebrew = false [, int $fl = '']])" "JDToJulian" "string JDToJulian(int $julianday)" "json_encode" "string json_encode(mixed $value [, int $options = ''])" "judy_version" "string judy_version()" "lcfirst" "string lcfirst(string $str)" "ldap_8859_to_t61" "string ldap_8859_to_t61(string $value)" "ldap_dn2ufn" "string ldap_dn2ufn(string $dn)" "ldap_err2str" "string ldap_err2str(int $errno)" "ldap_error" "string ldap_error(resource $link_identifier)" "ldap_first_attribute" "string ldap_first_attribute(resource $link_identifier, resource $result_entry_identifier)" "ldap_get_dn" "string ldap_get_dn(resource $link_identifier, resource $result_entry_identifier)" "ldap_next_attribute" "string ldap_next_attribute(resource $link_identifier, resource $result_entry_identifier)" "ldap_t61_to_8859" "string ldap_t61_to_8859(string $value)" "locale_accept_from_http" "string locale_accept_from_http(string $header)" "locale_compose" "string locale_compose(array $subtags)" "locale_get_default" "string locale_get_default()" "locale_get_display_language" "string locale_get_display_language(string $locale [, string $in_locale = ''])" "locale_get_display_name" "string locale_get_display_name(string $locale [, string $in_locale = ''])" "locale_get_display_region" "string locale_get_display_region(string $locale [, string $in_locale = ''])" "locale_get_display_script" "string locale_get_display_script(string $locale [, string $in_locale = ''])" "locale_get_display_variant" "string locale_get_display_variant(string $locale [, string $in_locale = ''])" "locale_get_primary_language" "string locale_get_primary_language(string $locale)" "locale_get_region" "string locale_get_region(string $locale)" "locale_get_script" "string locale_get_script(string $locale)" "locale_lookup" "string locale_lookup(array $langtag, string $locale [, bool $canonicalize = false [, string $default = '']])" "long2ip" "string long2ip(string $proper_address)" "ltrim" "string ltrim(string $str [, string $charlist = ''])" "lzf_compress" "string lzf_compress(string $data)" "lzf_decompress" "string lzf_decompress(string $data)" "mailparse_determine_best_xfer_encoding" "string mailparse_determine_best_xfer_encoding(resource $fp)" "mailparse_msg_extract_part_file" "string mailparse_msg_extract_part_file(resource $mimemail, mixed $filename [, callback $callbackfunc = ''])" "mailparse_msg_extract_whole_part_file" "string mailparse_msg_extract_whole_part_file(resource $mimemail, string $filename [, callback $callbackfunc = ''])" "maxdb_character_set_name" "string maxdb_character_set_name(resource $link)" "maxdb_connect_error" "string maxdb_connect_error()" "maxdb_error" "string maxdb_error(resource $link)" "maxdb_get_client_info" "string maxdb_get_client_info()" "maxdb_get_host_info" "string maxdb_get_host_info(resource $link)" "maxdb_get_proto_info" "string maxdb_get_proto_info(resource $link)" "maxdb_get_server_info" "string maxdb_get_server_info(resource $link)" "maxdb_info" "string maxdb_info(resource $link)" "maxdb_real_escape_string" "string maxdb_real_escape_string(resource $link, string $escapestr)" "maxdb_sqlstate" "string maxdb_sqlstate(resource $link)" "maxdb_stat" "string maxdb_stat(resource $link)" "maxdb_stmt_error" "string maxdb_stmt_error(resource $stmt)" "maxdb_stmt_sqlstate" "string maxdb_stmt_sqlstate(resource $stmt)" "mb_convert_case" "string mb_convert_case(string $str, int $mode [, string $encoding = mb_internal_encoding()])" "mb_convert_encoding" "string mb_convert_encoding(string $str, string $to_encoding [, mixed $from_encoding = ''])" "mb_convert_kana" "string mb_convert_kana(string $str [, string $option = \"KV\" [, string $encoding = '']])" "mb_convert_variables" "string mb_convert_variables(string $to_encoding, mixed $from_encoding, mixed $vars [, mixed $... = ''])" "mb_decode_mimeheader" "string mb_decode_mimeheader(string $str)" "mb_decode_numericentity" "string mb_decode_numericentity(string $str, array $convmap, string $encoding)" "mb_detect_encoding" "string mb_detect_encoding(string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false]])" "mb_encode_mimeheader" "string mb_encode_mimeheader(string $str [, string $charset = '' [, string $transfer_encoding = '' [, string $linefeed = '' [, int $indent = '']]]])" "mb_encode_numericentity" "string mb_encode_numericentity(string $str, array $convmap, string $encoding)" "mb_eregi_replace" "string mb_eregi_replace(string $pattern, string $replace, string $string [, string $option = \"msri\"])" "mb_ereg_replace" "string mb_ereg_replace(string $pattern, string $replacement, string $string [, string $option = \"msr\"])" "mb_output_handler" "string mb_output_handler(string $contents, int $status)" "mb_preferred_mime_name" "string mb_preferred_mime_name(string $encoding)" "mb_regex_encoding" "string mb_regex_encoding([string $encoding = ''])" "mb_regex_set_options" "string mb_regex_set_options([string $options = \"msr\"])" "mb_strcut" "string mb_strcut(string $str, int $start [, int $length = '' [, string $encoding = '']])" "mb_strimwidth" "string mb_strimwidth(string $str, int $start, int $width [, string $trimmarker = '' [, string $encoding = '']])" "mb_stristr" "string mb_stristr(string $haystack, string $needle [, bool $part = false [, string $encoding = '']])" "mb_strlen" "string mb_strlen(string $str [, string $encoding = ''])" "mb_strpos" "string mb_strpos(string $haystack, string $needle [, int $offset = '' [, string $encoding = '']])" "mb_strrchr" "string mb_strrchr(string $haystack, string $needle [, bool $part = false [, string $encoding = '']])" "mb_strrichr" "string mb_strrichr(string $haystack, string $needle [, bool $part = false [, string $encoding = '']])" "mb_strstr" "string mb_strstr(string $haystack, string $needle [, bool $part = false [, string $encoding = '']])" "mb_strtolower" "string mb_strtolower(string $str [, string $encoding = mb_internal_encoding()])" "mb_strtoupper" "string mb_strtoupper(string $str [, string $encoding = mb_internal_encoding()])" "mb_strwidth" "string mb_strwidth(string $str [, string $encoding = ''])" "mb_substr" "string mb_substr(string $str, int $start [, int $length = '' [, string $encoding = '']])" "mb_substr_count" "string mb_substr_count(string $haystack, string $needle [, string $encoding = ''])" "mcrypt_cbc" "string mcrypt_cbc(string $cipher, string $key, string $data, int $mode [, string $iv = ''])" "mcrypt_cfb" "string mcrypt_cfb(string $cipher, string $key, string $data, int $mode [, string $iv = ''])" "mcrypt_create_iv" "string mcrypt_create_iv(int $size [, int $source = MCRYPT_DEV_RANDOM])" "mcrypt_decrypt" "string mcrypt_decrypt(string $cipher, string $key, string $data, string $mode [, string $iv = ''])" "mcrypt_ecb" "string mcrypt_ecb(string $cipher, string $key, string $data, int $mode [, string $iv = ''])" "mcrypt_encrypt" "string mcrypt_encrypt(string $cipher, string $key, string $data, string $mode [, string $iv = ''])" "mcrypt_enc_get_algorithms_name" "string mcrypt_enc_get_algorithms_name(resource $td)" "mcrypt_enc_get_modes_name" "string mcrypt_enc_get_modes_name(resource $td)" "mcrypt_generic" "string mcrypt_generic(resource $td, string $data)" "mcrypt_get_cipher_name" "string mcrypt_get_cipher_name(string $cipher)" "mcrypt_ofb" "string mcrypt_ofb(string $cipher, string $key, string $data, int $mode [, string $iv = ''])" "md5" "string md5(string $str [, bool $raw_output = false])" "md5_file" "string md5_file(string $filename [, bool $raw_output = false])" "mdecrypt_generic" "string mdecrypt_generic(resource $td, string $data)" "metaphone" "string metaphone(string $str [, int $phonemes = ''])" "mhash" "string mhash(int $hash, string $data [, string $key = ''])" "mhash_get_hash_name" "string mhash_get_hash_name(int $hash)" "mhash_keygen_s2k" "string mhash_keygen_s2k(int $hash, string $password, string $salt, int $bytes)" "mime_content_type" "string mime_content_type(string $filename)" "money_format" "string money_format(string $format, float $number)" "mqseries_strerror" "string mqseries_strerror(int $reason)" "msession_get" "string msession_get(string $session, string $name, string $value)" "msession_get_data" "string msession_get_data(string $session)" "msession_inc" "string msession_inc(string $session, string $name)" "msession_plugin" "string msession_plugin(string $session, string $val [, string $param = ''])" "msession_randstr" "string msession_randstr(int $param)" "msession_uniq" "string msession_uniq(int $param [, string $classname = '' [, string $data = '']])" "msgfmt_format" "string msgfmt_format(array $args, MessageFormatter $fmt)" "msgfmt_format_message" "string msgfmt_format_message(string $locale, string $pattern, array $args)" "msgfmt_get_error_message" "string msgfmt_get_error_message(MessageFormatter $fmt)" "msgfmt_get_locale" "string msgfmt_get_locale(NumberFormatter $formatter)" "msgfmt_get_pattern" "string msgfmt_get_pattern(MessageFormatter $fmt)" "msql_error" "string msql_error()" "msql_field_flags" "string msql_field_flags(resource $result, int $field_offset)" "msql_field_name" "string msql_field_name(resource $result, int $field_offset)" "msql_field_type" "string msql_field_type(resource $result, int $field_offset)" "msql_result" "string msql_result(resource $result, int $row [, mixed $field = ''])" "mssql_field_name" "string mssql_field_name(resource $result [, int $offset = -1])" "mssql_field_type" "string mssql_field_type(resource $result [, int $offset = -1])" "mssql_get_last_message" "string mssql_get_last_message()" "mssql_guid_string" "string mssql_guid_string(string $binary [, bool $short_format = false])" "mssql_result" "string mssql_result(resource $result, int $row, mixed $field)" "mysqli_character_set_name" "string mysqli_character_set_name(mysqli $link)" "mysqli_connect_error" "string mysqli_connect_error()" "mysqli_error" "string mysqli_error(mysqli $link)" "mysqli_get_client_info" "string mysqli_get_client_info(mysqli $link)" "mysqli_get_host_info" "string mysqli_get_host_info(mysqli $link)" "mysqli_get_server_info" "string mysqli_get_server_info(mysqli $link)" "mysqli_info" "string mysqli_info(mysqli $link)" "mysqli_real_escape_string" "string mysqli_real_escape_string(string $escapestr, mysqli $link)" "mysqli_sqlstate" "string mysqli_sqlstate(mysqli $link)" "mysqli_stat" "string mysqli_stat(mysqli $link)" "mysqli_stmt_error" "string mysqli_stmt_error(mysqli_stmt $stmt)" "mysqli_stmt_sqlstate" "string mysqli_stmt_sqlstate(mysqli_stmt $stmt)" "mysql_client_encoding" "string mysql_client_encoding([resource $link_identifier = ''])" "mysql_db_name" "string mysql_db_name(resource $result, int $row [, mixed $field = ''])" "mysql_error" "string mysql_error([resource $link_identifier = ''])" "mysql_escape_string" "string mysql_escape_string(string $unescaped_string)" "mysql_field_flags" "string mysql_field_flags(resource $result, int $field_offset)" "mysql_field_name" "string mysql_field_name(resource $result, int $field_offset)" "mysql_field_table" "string mysql_field_table(resource $result, int $field_offset)" "mysql_field_type" "string mysql_field_type(resource $result, int $field_offset)" "mysql_get_client_info" "string mysql_get_client_info()" "mysql_get_host_info" "string mysql_get_host_info([resource $link_identifier = ''])" "mysql_get_server_info" "string mysql_get_server_info([resource $link_identifier = ''])" "mysql_info" "string mysql_info([resource $link_identifier = ''])" "mysql_real_escape_string" "string mysql_real_escape_string(string $unescaped_string [, resource $link_identifier = ''])" "mysql_result" "string mysql_result(resource $result, int $row [, mixed $field = ''])" "mysql_stat" "string mysql_stat([resource $link_identifier = ''])" "mysql_tablename" "string mysql_tablename(resource $result, int $i)" "m_connectionerror" "string m_connectionerror(resource $conn)" "m_getcell" "string m_getcell(resource $conn, int $identifier, string $column, int $row)" "m_getcellbynum" "string m_getcellbynum(resource $conn, int $identifier, int $column, int $row)" "m_getcommadelimited" "string m_getcommadelimited(resource $conn, int $identifier)" "m_getheader" "string m_getheader(resource $conn, int $identifier, int $column_num)" "m_responseparam" "string m_responseparam(resource $conn, int $identifier, string $key)" "m_sslcert_gen_hash" "string m_sslcert_gen_hash(string $filename)" "ncurses_erasechar" "string ncurses_erasechar()" "ncurses_inch" "string ncurses_inch()" "ncurses_killchar" "string ncurses_killchar()" "ncurses_longname" "string ncurses_longname()" "ncurses_termname" "string ncurses_termname()" "newt_checkbox_get_value" "string newt_checkbox_get_value(resource $checkbox)" "newt_checkbox_tree_get_entry_value" "string newt_checkbox_tree_get_entry_value(resource $checkboxtree, mixed $data)" "newt_entry_get_value" "string newt_entry_get_value(resource $entry)" "newt_listbox_get_current" "string newt_listbox_get_current(resource $listbox)" "newt_reflow_text" "string newt_reflow_text(string $text, int $width, int $flex_down, int $flex_up, int $actual_width, int $actual_height)" "ngettext" "string ngettext(string $msgid1, string $msgid2, int $n)" "nl2br" "string nl2br(string $string [, bool $is_xhtml = true])" "nl_langinfo" "string nl_langinfo(int $item)" "nthmac" "string nthmac(string $clent, string $data)" "number_format" "string number_format(float $number, int $decimals, string $dec_point, string $thousands_sep)" "numfmt_format" "string numfmt_format(number $value [, int $type = '', NumberFormatter $fmt])" "numfmt_format_currency" "string numfmt_format_currency(float $value, string $currency, NumberFormatter $fmt)" "numfmt_get_error_message" "string numfmt_get_error_message(NumberFormatter $fmt)" "numfmt_get_locale" "string numfmt_get_locale([int $type = '', NumberFormatter $fmt])" "numfmt_get_pattern" "string numfmt_get_pattern(NumberFormatter $fmt)" "numfmt_get_symbol" "string numfmt_get_symbol(int $attr, NumberFormatter $fmt)" "numfmt_get_text_attribute" "string numfmt_get_text_attribute(int $attr, NumberFormatter $fmt)" "oauth_get_sbs" "string oauth_get_sbs(string $http_method, string $uri [, array $request_parameters = ''])" "oauth_urlencode" "string oauth_urlencode(string $uri)" "ob_deflatehandler" "string ob_deflatehandler(string $data, int $mode)" "ob_etaghandler" "string ob_etaghandler(string $data, int $mode)" "ob_get_clean" "string ob_get_clean()" "ob_get_contents" "string ob_get_contents()" "ob_get_flush" "string ob_get_flush()" "ob_gzhandler" "string ob_gzhandler(string $buffer, int $mode)" "ob_iconv_handler" "string ob_iconv_handler(string $contents, int $status)" "ob_inflatehandler" "string ob_inflatehandler(string $data, int $mode)" "ob_tidyhandler" "string ob_tidyhandler(string $input [, int $mode = ''])" "oci_field_name" "string oci_field_name(resource $statement, int $field)" "oci_server_version" "string oci_server_version(resource $connection)" "oci_statement_type" "string oci_statement_type(resource $statement)" "odbc_cursor" "string odbc_cursor(resource $result_id)" "odbc_error" "string odbc_error([resource $connection_id = ''])" "odbc_errormsg" "string odbc_errormsg([resource $connection_id = ''])" "odbc_field_name" "string odbc_field_name(resource $result_id, int $field_number)" "odbc_field_type" "string odbc_field_type(resource $result_id, int $field_number)" "openssl_decrypt" "string openssl_decrypt(string $data, string $method, string $password [, bool $raw_input = false [, string $iv = \"\"]])" "openssl_dh_compute_key" "string openssl_dh_compute_key(string $pub_key, resource $dh_key)" "openssl_digest" "string openssl_digest(string $data, string $method [, bool $raw_output = false])" "openssl_encrypt" "string openssl_encrypt(string $data, string $method, string $password [, bool $raw_output = false [, string $iv = \"\"]])" "openssl_error_string" "string openssl_error_string()" "openssl_random_pseudo_bytes" "string openssl_random_pseudo_bytes(int $length [, bool $crypto_strong = ''])" "ovrimos_cursor" "string ovrimos_cursor(int $result_id)" "ovrimos_field_name" "string ovrimos_field_name(int $result_id, int $field_number)" "ovrimos_result" "string ovrimos_result(int $result_id, mixed $field)" "pack" "string pack(string $format [, mixed $args = '' [, mixed $... = '']])" "PDF_fit_table" "string PDF_fit_table(resource $pdfdoc, int $table, float $llx, float $lly, float $urx, float $ury, string $optlist)" "PDF_fit_textflow" "string PDF_fit_textflow(resource $pdfdoc, int $textflow, float $llx, float $lly, float $urx, float $ury, string $optlist)" "PDF_get_apiname" "string PDF_get_apiname(resource $pdfdoc)" "PDF_get_buffer" "string PDF_get_buffer(resource $p)" "PDF_get_errmsg" "string PDF_get_errmsg(resource $pdfdoc)" "PDF_get_parameter" "string PDF_get_parameter(resource $p, string $key, float $modifier)" "PDF_get_pdi_parameter" "string PDF_get_pdi_parameter(resource $p, string $key, int $doc, int $page, int $reserved)" "PDF_pcos_get_stream" "string PDF_pcos_get_stream(resource $p, int $doc, string $optlist, string $path)" "PDF_pcos_get_string" "string PDF_pcos_get_string(resource $p, int $doc, string $path)" "PDF_utf8_to_utf16" "string PDF_utf8_to_utf16(resource $pdfdoc, string $utf8string, string $ordering)" "PDF_utf16_to_utf8" "string PDF_utf16_to_utf8(resource $pdfdoc, string $utf16string)" "PDF_utf32_to_utf16" "string PDF_utf32_to_utf16(resource $pdfdoc, string $utf32string, string $ordering)" "pg_client_encoding" "string pg_client_encoding([resource $connection = ''])" "pg_dbname" "string pg_dbname([resource $connection = ''])" "pg_escape_bytea" "string pg_escape_bytea([resource $connection = '', string $data])" "pg_escape_string" "string pg_escape_string([resource $connection = '', string $data])" "pg_fetch_result" "string pg_fetch_result(resource $result, int $row, mixed $field)" "pg_field_name" "string pg_field_name(resource $result, int $field_number)" "pg_field_type" "string pg_field_type(resource $result, int $field_number)" "pg_host" "string pg_host([resource $connection = ''])" "pg_last_error" "string pg_last_error([resource $connection = ''])" "pg_last_notice" "string pg_last_notice(resource $connection)" "pg_last_oid" "string pg_last_oid(resource $result)" "pg_lo_read" "string pg_lo_read(resource $large_object [, int $len = 8192])" "pg_options" "string pg_options([resource $connection = ''])" "pg_parameter_status" "string pg_parameter_status([resource $connection = '', string $param_name])" "pg_result_error" "string pg_result_error(resource $result)" "pg_result_error_field" "string pg_result_error_field(resource $result, int $fieldcode)" "pg_tty" "string pg_tty([resource $connection = ''])" "pg_unescape_bytea" "string pg_unescape_bytea(string $data)" "phpversion" "string phpversion([string $extension = ''])" "php_ini_loaded_file" "string php_ini_loaded_file()" "php_ini_scanned_files" "string php_ini_scanned_files()" "php_logo_guid" "string php_logo_guid()" "php_sapi_name" "string php_sapi_name()" "php_strip_whitespace" "string php_strip_whitespace(string $filename)" "php_uname" "string php_uname([string $mode = \"a\"])" "posix_ctermid" "string posix_ctermid()" "posix_getcwd" "string posix_getcwd()" "posix_getlogin" "string posix_getlogin()" "posix_strerror" "string posix_strerror(int $errno)" "posix_ttyname" "string posix_ttyname(int $fd)" "preg_quote" "string preg_quote(string $str [, string $delimiter = ''])" "ps_get_buffer" "string ps_get_buffer(resource $psdoc)" "ps_get_parameter" "string ps_get_parameter(resource $psdoc, string $name [, float $modifier = ''])" "ps_symbol_name" "string ps_symbol_name(resource $psdoc, int $ord [, int $fontid = ''])" "px_date2string" "string px_date2string(resource $pxdoc, int $value, string $format)" "px_get_parameter" "string px_get_parameter(resource $pxdoc, string $name)" "px_timestamp2string" "string px_timestamp2string(resource $pxdoc, float $value, string $format)" "qdom_error" "string qdom_error()" "quoted_printable_decode" "string quoted_printable_decode(string $str)" "quoted_printable_encode" "string quoted_printable_encode(string $str)" "quotemeta" "string quotemeta(string $str)" "radius_cvt_addr" "string radius_cvt_addr(string $data)" "radius_cvt_string" "string radius_cvt_string(string $data)" "radius_demangle" "string radius_demangle(resource $radius_handle, string $mangled)" "radius_demangle_mppe_key" "string radius_demangle_mppe_key(resource $radius_handle, string $mangled)" "radius_request_authenticator" "string radius_request_authenticator(resource $radius_handle)" "radius_server_secret" "string radius_server_secret(resource $radius_handle)" "radius_strerror" "string radius_strerror(resource $radius_handle)" "rar_comment_get" "string rar_comment_get(RarArchive $rarfile)" "rar_wrapper_cache_stats" "string rar_wrapper_cache_stats()" "rawurldecode" "string rawurldecode(string $str)" "rawurlencode" "string rawurlencode(string $str)" "readdir" "string readdir([resource $dir_handle = ''])" "readline" "string readline([string $prompt = ''])" "readlink" "string readlink(string $path)" "realpath" "string realpath(string $path)" "recode_string" "string recode_string(string $request, string $string)" "resourcebundle_get_error_message" "string resourcebundle_get_error_message(ResourceBundle $r)" "rpm_version" "string rpm_version()" "rrd_error" "string rrd_error()" "rtrim" "string rtrim(string $str [, string $charlist = ''])" "serialize" "string serialize(mixed $value)" "session_cache_limiter" "string session_cache_limiter([string $cache_limiter = ''])" "session_encode" "string session_encode()" "session_id" "string session_id([string $id = ''])" "session_module_name" "string session_module_name([string $module = ''])" "session_name" "string session_name([string $name = ''])" "session_pgsql_get_field" "string session_pgsql_get_field()" "session_save_path" "string session_save_path([string $path = ''])" "setlocale" "string setlocale(int $category, array $locale [, string $... = ''])" "set_include_path" "string set_include_path(string $new_include_path)" "sha1" "string sha1(string $str [, bool $raw_output = false])" "sha1_file" "string sha1_file(string $filename [, bool $raw_output = false])" "shell_exec" "string shell_exec(string $cmd)" "shmop_read" "string shmop_read(int $shmid, int $start, int $count)" "signeurlpaiement" "string signeurlpaiement(string $clent, string $data)" "snmp2_get" "string snmp2_get(string $host, string $community, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmp2_getnext" "string snmp2_getnext(string $host, string $community, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmp3_get" "string snmp3_get(string $host, string $sec_name, string $sec_level, string $auth_protocol, string $auth_passphrase, string $priv_protocol, string $priv_passphrase, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmp3_getnext" "string snmp3_getnext(string $host, string $sec_name, string $sec_level, string $auth_protocol, string $auth_passphrase, string $priv_protocol, string $priv_passphrase, string $object_id [, string $timeout = 1000000 [, string $retries = 5]])" "snmpget" "string snmpget(string $hostname, string $community, string $object_id [, int $timeout = 1000000 [, int $retries = 5]])" "snmpgetnext" "string snmpgetnext(string $host, string $community, string $object_id [, int $timeout = 1000000 [, int $retries = 5]])" "socket_read" "string socket_read(resource $socket, int $length [, int $type = PHP_BINARY_READ])" "socket_strerror" "string socket_strerror(int $errno)" "solr_get_version" "string solr_get_version()" "soundex" "string soundex(string $str)" "spl_autoload_extensions" "string spl_autoload_extensions([string $file_extensions = ''])" "spl_object_hash" "string spl_object_hash(object $obj)" "sprintf" "string sprintf(string $format [, mixed $args = '' [, mixed $... = '']])" "sqlite_error_string" "string sqlite_error_string(int $error_code)" "sqlite_escape_string" "string sqlite_escape_string(string $item)" "sqlite_fetch_single" "string sqlite_fetch_single(resource $result [, bool $decode_binary = true])" "sqlite_field_name" "string sqlite_field_name(resource $result, int $field_index)" "sqlite_libencoding" "string sqlite_libencoding()" "sqlite_libversion" "string sqlite_libversion()" "sqlite_udf_decode_binary" "string sqlite_udf_decode_binary(string $data)" "sqlite_udf_encode_binary" "string sqlite_udf_encode_binary(string $data)" "sql_regcase" "string sql_regcase(string $string)" "ssdeep_fuzzy_hash" "string ssdeep_fuzzy_hash(string $to_hash)" "ssdeep_fuzzy_hash_filename" "string ssdeep_fuzzy_hash_filename(string $file_name)" "ssh2_fingerprint" "string ssh2_fingerprint(resource $session [, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX])" "ssh2_sftp_readlink" "string ssh2_sftp_readlink(resource $sftp, string $link)" "ssh2_sftp_realpath" "string ssh2_sftp_realpath(resource $sftp, string $filename)" "stomp_connect_error" "string stomp_connect_error()" "stomp_error" "string stomp_error(resource $link)" "stomp_get_session_id" "string stomp_get_session_id(resource $link)" "stomp_version" "string stomp_version()" "stream_get_contents" "string stream_get_contents(resource $handle [, int $maxlength = -1 [, int $offset = -1]])" "stream_get_line" "string stream_get_line(resource $handle, int $length [, string $ending = ''])" "stream_resolve_include_path" "string stream_resolve_include_path(string $filename)" "stream_socket_get_name" "string stream_socket_get_name(resource $handle, bool $want_peer)" "stream_socket_recvfrom" "string stream_socket_recvfrom(resource $socket, int $length [, int $flags = '' [, string $address = '']])" "strftime" "string strftime(string $format [, int $timestamp = time()])" "stripcslashes" "string stripcslashes(string $str)" "stripos" "string stripos(string $haystack, string $needle [, int $offset = ''])" "stripslashes" "string stripslashes(string $str)" "strip_tags" "string strip_tags(string $str [, string $allowable_tags = ''])" "stristr" "string stristr(string $haystack, mixed $needle [, bool $before_needle = false])" "strpbrk" "string strpbrk(string $haystack, string $char_list)" "strrchr" "string strrchr(string $haystack, mixed $needle)" "strrev" "string strrev(string $string)" "strstr" "string strstr(string $haystack, mixed $needle [, bool $before_needle = false])" "strtok" "string strtok(string $str, string $token)" "strtolower" "string strtolower(string $str)" "strtoupper" "string strtoupper(string $string)" "strtr" "string strtr(string $str, string $from, string $to, array $replace_pairs)" "strval" "string strval(mixed $var)" "str_pad" "string str_pad(string $input, int $pad_length [, string $pad_string = \" \" [, int $pad_type = STR_PAD_RIGHT]])" "str_repeat" "string str_repeat(string $input, int $multiplier)" "str_rot13" "string str_rot13(string $str)" "str_shuffle" "string str_shuffle(string $str)" "substr" "string substr(string $string, int $start [, int $length = ''])" "svn_auth_get_parameter" "string svn_auth_get_parameter(string $key)" "svn_cat" "string svn_cat(string $repos_url [, int $revision_no = ''])" "svn_client_version" "string svn_client_version()" "svn_fs_node_prop" "string svn_fs_node_prop(resource $fsroot, string $path, string $propname)" "svn_fs_revision_prop" "string svn_fs_revision_prop(resource $fs, int $revnum, string $propname)" "sybase_get_last_message" "string sybase_get_last_message()" "sybase_result" "string sybase_result(resource $result, int $row, mixed $field)" "system" "string system(string $command [, int $return_var = ''])" "sys_get_temp_dir" "string sys_get_temp_dir()" "tempnam" "string tempnam(string $dir, string $prefix)" "textdomain" "string textdomain(string $text_domain)" "tidy_get_error_buffer" "string tidy_get_error_buffer(tidy $object)" "tidy_get_opt_doc" "string tidy_get_opt_doc(string $optname, tidy $object)" "tidy_get_output" "string tidy_get_output(tidy $object)" "tidy_get_release" "string tidy_get_release()" "tidy_repair_file" "string tidy_repair_file(string $filename [, mixed $config = '' [, string $encoding = '' [, bool $use_include_path = false]]])" "tidy_repair_string" "string tidy_repair_string(string $data [, mixed $config = '' [, string $encoding = '']])" "timezone_name_from_abbr" "string timezone_name_from_abbr(string $abbr [, int $gmtOffset = -1 [, int $isdst = -1]])" "timezone_version_get" "string timezone_version_get()" "token_name" "string token_name(int $token)" "transliterator_get_error_message" "string transliterator_get_error_message()" "trim" "string trim(string $str [, string $charlist = ''])" "ucfirst" "string ucfirst(string $str)" "ucwords" "string ucwords(string $str)" "udm_error" "string udm_error(resource $agent)" "udm_get_res_field" "string udm_get_res_field(resource $res, int $row, int $field)" "udm_get_res_param" "string udm_get_res_param(resource $res, int $param)" "uniqid" "string uniqid([string $prefix = \"\" [, bool $more_entropy = false]])" "urldecode" "string urldecode(string $str)" "urlencode" "string urlencode(string $str)" "utf8_decode" "string utf8_decode(string $data)" "utf8_encode" "string utf8_encode(string $data)" "var_dump" "string var_dump([mixed $expression = '' [, $... = '']])" "vpopmail_error" "string vpopmail_error()" "vsprintf" "string vsprintf(string $format, array $args)" "wddx_packet_end" "string wddx_packet_end(resource $packet_id)" "wddx_serialize_value" "string wddx_serialize_value(mixed $var [, string $comment = ''])" "wddx_serialize_vars" "string wddx_serialize_vars(mixed $var_name [, mixed $... = ''])" "wordwrap" "string wordwrap(string $str [, int $width = 75 [, string $break = \"\\n\" [, bool $cut = false]]])" "xattr_get" "string xattr_get(string $filename, string $name [, int $flags = ''])" "xdiff_string_bdiff" "string xdiff_string_bdiff(string $old_data, string $new_data)" "xdiff_string_bpatch" "string xdiff_string_bpatch(string $str, string $patch)" "xdiff_string_diff" "string xdiff_string_diff(string $old_data, string $new_data [, int $context = 3 [, bool $minimal = false]])" "xdiff_string_diff_binary" "string xdiff_string_diff_binary(string $old_data, string $new_data)" "xdiff_string_patch" "string xdiff_string_patch(string $str, string $patch [, int $flags = '' [, string $error = '']])" "xdiff_string_patch_binary" "string xdiff_string_patch_binary(string $str, string $patch)" "xdiff_string_rabdiff" "string xdiff_string_rabdiff(string $old_data, string $new_data)" "xmlrpc_encode" "string xmlrpc_encode(mixed $value)" "xmlrpc_encode_request" "string xmlrpc_encode_request(string $method, mixed $params [, array $output_options = ''])" "xmlrpc_get_type" "string xmlrpc_get_type(mixed $value)" "xmlrpc_server_call_method" "string xmlrpc_server_call_method(resource $server, string $xml, mixed $user_data [, array $output_options = ''])" "xml_error_string" "string xml_error_string(int $code)" "xslt_backend_info" "string xslt_backend_info()" "xslt_backend_name" "string xslt_backend_name()" "xslt_backend_version" "string xslt_backend_version()" "xslt_error" "string xslt_error(resource $xh)" "yaml_emit" "string yaml_emit(mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK]])" "yaz_addinfo" "string yaz_addinfo(resource $id)" "yaz_error" "string yaz_error(resource $id)" "yaz_get_option" "string yaz_get_option(resource $id, string $name)" "yaz_record" "string yaz_record(resource $id, int $pos, string $type)" "yp_err_string" "string yp_err_string(int $errorcode)" "yp_get_default_domain" "string yp_get_default_domain()" "yp_master" "string yp_master(string $domain, string $map)" "yp_match" "string yp_match(string $domain, string $map, string $key)" "zend_logo_guid" "string zend_logo_guid()" "zend_version" "string zend_version()" "zip_entry_compressionmethod" "string zip_entry_compressionmethod(resource $zip_entry)" "zip_entry_name" "string zip_entry_name(resource $zip_entry)" "zip_entry_read" "string zip_entry_read(resource $zip_entry [, int $length = ''])" "zlib_get_coding_type" "string zlib_get_coding_type()" "SWFSound" "SWFSound SWFSound(string $filename [, int $flags = ''])" "tidy_get_body" "tidyNode tidy_get_body(tidy $object)" "tidy_get_head" "tidyNode tidy_get_head(tidy $object)" "tidy_get_html" "tidyNode tidy_get_html(tidy $object)" "tidy_get_root" "tidyNode tidy_get_root(tidy $object)" "tidy_parse_file" "tidy tidy_parse_file(string $filename [, mixed $config = '' [, string $encoding = '' [, bool $use_include_path = false]]])" "tidy_parse_string" "tidy tidy_parse_string(string $input [, mixed $config = '' [, string $encoding = '']])" "timezone_abbreviations_list" " timezone_abbreviations_list()" "timezone_identifiers_list" " timezone_identifiers_list()" "timezone_location_get" " timezone_location_get()" "timezone_name_get" " timezone_name_get()" "timezone_offset_get" " timezone_offset_get()" "timezone_open" " timezone_open()" "timezone_transitions_get" " timezone_transitions_get()" "transliterator_create" "Transliterator transliterator_create(string $id [, int $direction = ''])" "transliterator_create_from_rules" "Transliterator transliterator_create_from_rules(string $rules [, int $direction = '', string $id])" "transliterator_create_inverse" "Transliterator transliterator_create_inverse()" "user_error" " user_error()" "VARIANT" " VARIANT()" "com_get_active_object" "variant com_get_active_object(string $progid [, int $code_page = ''])" "variant_cast" "variant variant_cast(variant $variant, int $type)" "variant_date_from_timestamp" "variant variant_date_from_timestamp(int $timestamp)" "aggregate" "void aggregate(object $object, string $class_name)" "aggregate_methods" "void aggregate_methods(object $object, string $class_name)" "aggregate_methods_by_list" "void aggregate_methods_by_list(object $object, string $class_name, array $methods_list [, bool $exclude = false])" "aggregate_methods_by_regexp" "void aggregate_methods_by_regexp(object $object, string $class_name, string $regexp [, bool $exclude = false])" "aggregate_properties" "void aggregate_properties(object $object, string $class_name)" "aggregate_properties_by_list" "void aggregate_properties_by_list(object $object, string $class_name, array $properties_list [, bool $exclude = false])" "aggregate_properties_by_regexp" "void aggregate_properties_by_regexp(object $object, string $class_name, string $regexp [, bool $exclude = false])" "apd_clunk" "void apd_clunk(string $warning [, string $delimiter = ''])" "apd_croak" "void apd_croak(string $warning [, string $delimiter = ''])" "apd_dump_function_table" "void apd_dump_function_table()" "apd_set_session" "void apd_set_session(int $debug_level)" "apd_set_session_trace" "void apd_set_session_trace(int $debug_level [, string $dump_directory = ''])" "cairo_append_path" "void cairo_append_path(CairoPath $path, CairoContext $context)" "cairo_arc" "void cairo_arc(float $x, float $y, float $radius, float $angle1, float $angle2, CairoContext $context)" "cairo_arc_negative" "void cairo_arc_negative(float $x, float $y, float $radius, float $angle1, float $angle2, CairoContext $context)" "cairo_clip" "void cairo_clip(CairoContext $context)" "cairo_clip_preserve" "void cairo_clip_preserve(CairoContext $context)" "cairo_close_path" "void cairo_close_path(CairoContext $context)" "cairo_copy_page" "void cairo_copy_page(CairoContext $context)" "cairo_curve_to" "void cairo_curve_to(float $x1, float $y1, float $x2, float $y2, float $x3, float $y3, CairoContext $context)" "cairo_fill" "void cairo_fill(CairoContext $context)" "cairo_fill_preserve" "void cairo_fill_preserve(CairoContext $context)" "cairo_font_options_merge" "void cairo_font_options_merge(CairoFontOptions $options, CairoFontOptions $other)" "cairo_font_options_set_antialias" "void cairo_font_options_set_antialias(CairoFontOptions $options, int $antialias)" "cairo_font_options_set_hint_metrics" "void cairo_font_options_set_hint_metrics(CairoFontOptions $options, int $hint_metrics)" "cairo_font_options_set_hint_style" "void cairo_font_options_set_hint_style(CairoFontOptions $options, int $hint_style)" "cairo_font_options_set_subpixel_order" "void cairo_font_options_set_subpixel_order(CairoFontOptions $options, int $subpixel_order)" "cairo_get_font_face" "void cairo_get_font_face(CairoContext $context)" "cairo_get_font_matrix" "void cairo_get_font_matrix(CairoContext $context)" "cairo_get_font_options" "void cairo_get_font_options(CairoContext $context)" "cairo_get_group_target" "void cairo_get_group_target(CairoContext $context)" "cairo_get_matrix" "void cairo_get_matrix(CairoContext $context)" "cairo_get_scaled_font" "void cairo_get_scaled_font(CairoContext $context)" "cairo_get_source" "void cairo_get_source(CairoContext $context)" "cairo_get_target" "void cairo_get_target(CairoContext $context)" "cairo_glyph_path" "void cairo_glyph_path(array $glyphs, CairoContext $context)" "cairo_identity_matrix" "void cairo_identity_matrix(CairoContext $context)" "cairo_line_to" "void cairo_line_to(string $x, string $y, CairoContext $context)" "cairo_mask" "void cairo_mask(CairoPattern $pattern, CairoContext $context)" "cairo_mask_surface" "void cairo_mask_surface(CairoSurface $surface [, string $x = '' [, string $y = '', CairoContext $context]])" "cairo_matrix_invert" "void cairo_matrix_invert(CairoMatrix $matrix)" "cairo_matrix_rotate" "void cairo_matrix_rotate(CairoMatrix $matrix, float $radians)" "cairo_matrix_scale" "void cairo_matrix_scale(float $sx, float $sy, CairoContext $context)" "cairo_matrix_translate" "void cairo_matrix_translate(CairoMatrix $matrix, float $tx, float $ty)" "cairo_move_to" "void cairo_move_to(string $x, string $y, CairoContext $context)" "cairo_new_path" "void cairo_new_path(CairoContext $context)" "cairo_new_sub_path" "void cairo_new_sub_path(CairoContext $context)" "cairo_paint" "void cairo_paint(CairoContext $context)" "cairo_paint_with_alpha" "void cairo_paint_with_alpha(string $alpha, CairoContext $context)" "cairo_pattern_add_color_stop_rgb" "void cairo_pattern_add_color_stop_rgb(CairoGradientPattern $pattern, float $offset, float $red, float $green, float $blue)" "cairo_pattern_add_color_stop_rgba" "void cairo_pattern_add_color_stop_rgba(CairoGradientPattern $pattern, float $offset, float $red, float $green, float $blue, float $alpha)" "cairo_pattern_set_extend" "void cairo_pattern_set_extend(string $pattern, string $extend)" "cairo_pattern_set_filter" "void cairo_pattern_set_filter(CairoSurfacePattern $pattern, int $filter)" "cairo_pattern_set_matrix" "void cairo_pattern_set_matrix(CairoPattern $pattern, CairoMatrix $matrix)" "cairo_pdf_surface_set_size" "void cairo_pdf_surface_set_size(CairoPdfSurface $surface, float $width, float $height)" "cairo_pop_group" "void cairo_pop_group(CairoContext $context)" "cairo_pop_group_to_source" "void cairo_pop_group_to_source(CairoContext $context)" "cairo_ps_surface_dsc_begin_page_setup" "void cairo_ps_surface_dsc_begin_page_setup(CairoPsSurface $surface)" "cairo_ps_surface_dsc_begin_setup" "void cairo_ps_surface_dsc_begin_setup(CairoPsSurface $surface)" "cairo_ps_surface_dsc_comment" "void cairo_ps_surface_dsc_comment(CairoPsSurface $surface, string $comment)" "cairo_ps_surface_restrict_to_level" "void cairo_ps_surface_restrict_to_level(CairoPsSurface $surface, int $level)" "cairo_ps_surface_set_eps" "void cairo_ps_surface_set_eps(CairoPsSurface $surface, bool $level)" "cairo_ps_surface_set_size" "void cairo_ps_surface_set_size(CairoPsSurface $surface, float $width, float $height)" "cairo_push_group" "void cairo_push_group(CairoContext $context)" "cairo_push_group_with_content" "void cairo_push_group_with_content(string $content, CairoContext $context)" "cairo_rectangle" "void cairo_rectangle(string $x, string $y, string $width, string $height, CairoContext $context)" "cairo_rel_curve_to" "void cairo_rel_curve_to(string $x1, string $y1, string $x2, string $y2, string $x3, string $y3, CairoContext $context)" "cairo_rel_line_to" "void cairo_rel_line_to(string $x, string $y, CairoContext $context)" "cairo_rel_move_to" "void cairo_rel_move_to(string $x, string $y, CairoContext $context)" "cairo_reset_clip" "void cairo_reset_clip(CairoContext $context)" "cairo_restore" "void cairo_restore(CairoContext $context)" "cairo_rotate" "void cairo_rotate(string $sx, string $sy, CairoContext $context, string $angle)" "cairo_save" "void cairo_save(CairoContext $context)" "cairo_scale" "void cairo_scale(string $x, string $y, CairoContext $context)" "cairo_select_font_face" "void cairo_select_font_face(string $family [, string $slant = '' [, string $weight = '', CairoContext $context]])" "cairo_set_antialias" "void cairo_set_antialias([string $antialias = '', CairoContext $context])" "cairo_set_dash" "void cairo_set_dash(array $dashes [, string $offset = '', CairoContext $context])" "cairo_set_fill_rule" "void cairo_set_fill_rule(string $setting, CairoContext $context)" "cairo_set_font_face" "void cairo_set_font_face(CairoFontFace $fontface, CairoContext $context)" "cairo_set_font_matrix" "void cairo_set_font_matrix(CairoMatrix $matrix, CairoContext $context)" "cairo_set_font_options" "void cairo_set_font_options(CairoFontOptions $fontoptions, CairoContext $context)" "cairo_set_font_size" "void cairo_set_font_size(string $size, CairoContext $context)" "cairo_set_line_cap" "void cairo_set_line_cap(string $setting, CairoContext $context)" "cairo_set_line_join" "void cairo_set_line_join(string $setting, CairoContext $context)" "cairo_set_line_width" "void cairo_set_line_width(string $width, CairoContext $context)" "cairo_set_matrix" "void cairo_set_matrix(CairoMatrix $matrix, CairoContext $context)" "cairo_set_miter_limit" "void cairo_set_miter_limit(string $limit, CairoContext $context)" "cairo_set_operator" "void cairo_set_operator(string $setting, CairoContext $context)" "cairo_set_scaled_font" "void cairo_set_scaled_font(CairoScaledFont $scaledfont, CairoContext $context)" "cairo_set_source" "void cairo_set_source(string $red, string $green, string $blue, string $alpha, CairoContext $context, CairoPattern $pattern)" "cairo_set_source_surface" "void cairo_set_source_surface(CairoSurface $surface [, string $x = '' [, string $y = '', CairoContext $context]])" "cairo_set_tolerance" "void cairo_set_tolerance(string $tolerance, CairoContext $context)" "cairo_show_page" "void cairo_show_page(CairoContext $context)" "cairo_show_text" "void cairo_show_text(string $text, CairoContext $context)" "cairo_stroke" "void cairo_stroke(CairoContext $context)" "cairo_stroke_preserve" "void cairo_stroke_preserve(CairoContext $context)" "cairo_surface_copy_page" "void cairo_surface_copy_page(CairoSurface $surface)" "cairo_surface_finish" "void cairo_surface_finish(CairoSurface $surface)" "cairo_surface_flush" "void cairo_surface_flush(CairoSurface $surface)" "cairo_surface_mark_dirty" "void cairo_surface_mark_dirty(CairoSurface $surface)" "cairo_surface_mark_dirty_rectangle" "void cairo_surface_mark_dirty_rectangle(CairoSurface $surface, float $x, float $y, float $width, float $height)" "cairo_surface_set_device_offset" "void cairo_surface_set_device_offset(CairoSurface $surface, float $x, float $y)" "cairo_surface_set_fallback_resolution" "void cairo_surface_set_fallback_resolution(CairoSurface $surface, float $x, float $y)" "cairo_surface_show_page" "void cairo_surface_show_page(CairoSurface $surface)" "cairo_surface_write_to_png" "void cairo_surface_write_to_png(CairoSurface $surface, resource $stream)" "cairo_svg_surface_restrict_to_version" "void cairo_svg_surface_restrict_to_version(CairoSvgSurface $surface, int $version)" "cairo_text_path" "void cairo_text_path(string $string, CairoContext $context, string $text)" "cairo_transform" "void cairo_transform(CairoMatrix $matrix, CairoContext $context)" "cairo_translate" "void cairo_translate(string $tx, string $ty, CairoContext $context, string $x, string $y)" "clearstatcache" "void clearstatcache([bool $clear_realpath_cache = false [, string $filename = '']])" "closedir" "void closedir([resource $dir_handle = ''])" "com_addref" "void com_addref()" "com_release" "void com_release()" "curl_close" "void curl_close(resource $ch)" "curl_multi_close" "void curl_multi_close(resource $mh)" "cyrus_authenticate" "void cyrus_authenticate(resource $connection [, string $mechlist = '' [, string $service = '' [, string $user = '' [, int $minssf = '' [, int $maxssf = '' [, string $authname = '' [, string $password = '']]]]]]])" "dba_close" "void dba_close(resource $handle)" "deaggregate" "void deaggregate(object $object [, string $class_name = ''])" "debug_print_backtrace" "void debug_print_backtrace([int $options = '' [, int $limit = '']])" "debug_zval_dump" "void debug_zval_dump(mixed $variable)" "define_syslog_variables" "void define_syslog_variables()" "delete" "void delete()" "dio_close" "void dio_close(resource $fd)" "dir" "void dir()" "echo" "void echo(string $arg1 [, string $... = ''])" "enchant_dict_add_to_personal" "void enchant_dict_add_to_personal(resource $dict, string $word)" "enchant_dict_add_to_session" "void enchant_dict_add_to_session(resource $dict, string $word)" "enchant_dict_store_replacement" "void enchant_dict_store_replacement(resource $dict, string $mis, string $cor)" "event_base_free" "void event_base_free(resource $event_base)" "event_buffer_fd_set" "void event_buffer_fd_set(resource $bevent, resource $fd)" "event_buffer_free" "void event_buffer_free(resource $bevent)" "event_buffer_timeout_set" "void event_buffer_timeout_set(resource $bevent, int $read_timeout, int $write_timeout)" "event_buffer_watermark_set" "void event_buffer_watermark_set(resource $bevent, int $events, int $lowmark, int $highmark)" "event_free" "void event_free(resource $event)" "exit" "void exit(int $status)" "fam_close" "void fam_close(resource $fam)" "fbsql_set_characterset" "void fbsql_set_characterset(resource $link_identifier, int $characterset [, int $in_out_both = ''])" "fbsql_set_transaction" "void fbsql_set_transaction(resource $link_identifier, int $locking, int $isolation)" "fdf_close" "void fdf_close(resource $fdf_document)" "fdf_header" "void fdf_header()" "flush" "void flush()" "gc_disable" "void gc_disable()" "gc_enable" "void gc_enable()" "gmp_clrbit" "void gmp_clrbit(resource $a, int $index)" "gmp_setbit" "void gmp_setbit(resource $a, int $index [, bool $set_clear = true])" "gnupg_seterrormode" "void gnupg_seterrormode(resource $identifier, int $errormode)" "gupnp_context_set_subscription_timeout" "void gupnp_context_set_subscription_timeout(resource $context, int $timeout)" "header" "void header(string $string [, bool $replace = true [, int $http_response_code = '']])" "header_remove" "void header_remove([string $name = ''])" "http_throttle" "void http_throttle(float $sec [, int $bytes = 40960])" "hw_connection_info" "void hw_connection_info(int $link)" "ibase_blob_add" "void ibase_blob_add(resource $blob_handle, string $data)" "imagecolorset" "void imagecolorset(resource $image, int $index, int $red, int $green, int $blue [, int $alpha = ''])" "imagepalettecopy" "void imagepalettecopy(resource $destination, resource $source)" "ini_restore" "void ini_restore(string $varname)" "java_last_exception_clear" "void java_last_exception_clear()" "libxml_clear_errors" "void libxml_clear_errors()" "libxml_set_streams_context" "void libxml_set_streams_context(resource $streams_context)" "mailparse_msg_extract_part" "void mailparse_msg_extract_part(resource $mimemail, string $msgbody [, callback $callbackfunc = ''])" "maxdb_debug" "void maxdb_debug(string $debug)" "maxdb_disable_reads_from_master" "void maxdb_disable_reads_from_master(resource $link)" "maxdb_free_result" "void maxdb_free_result(resource $result)" "maxdb_server_end" "void maxdb_server_end()" "maxdb_stmt_free_result" "void maxdb_stmt_free_result(resource $stmt)" "ming_setcubicthreshold" "void ming_setcubicthreshold(int $threshold)" "ming_setscale" "void ming_setscale(float $scale)" "ming_setswfcompression" "void ming_setswfcompression(int $level)" "ming_useconstants" "void ming_useconstants(int $use)" "ming_useswfversion" "void ming_useswfversion(int $version)" "mqseries_back" "void mqseries_back(resource $hconn, resource $compCode, resource $reason)" "mqseries_begin" "void mqseries_begin(resource $hconn, array $beginOptions, resource $compCode, resource $reason)" "mqseries_close" "void mqseries_close(resource $hconn, resource $hobj, int $options, resource $compCode, resource $reason)" "mqseries_cmit" "void mqseries_cmit(resource $hconn, resource $compCode, resource $reason)" "mqseries_conn" "void mqseries_conn(string $qManagerName, resource $hconn, resource $compCode, resource $reason)" "mqseries_connx" "void mqseries_connx(string $qManagerName, array $connOptions, resource $hconn, resource $compCode, resource $reason)" "mqseries_disc" "void mqseries_disc(resource $hconn, resource $compCode, resource $reason)" "mqseries_get" "void mqseries_get(resource $hConn, resource $hObj, array $md, array $gmo, int $bufferLength, string $msg, int $data_length, resource $compCode, resource $reason)" "mqseries_inq" "void mqseries_inq(resource $hconn, resource $hobj, int $selectorCount, array $selectors, int $intAttrCount, resource $intAttr, int $charAttrLength, resource $charAttr, resource $compCode, resource $reason)" "mqseries_open" "void mqseries_open(resource $hconn, array $objDesc, int $option, resource $hobj, resource $compCode, resource $reason)" "mqseries_put" "void mqseries_put(resource $hConn, resource $hObj, array $md, array $pmo, string $message, resource $compCode, resource $reason)" "mqseries_put1" "void mqseries_put1(resource $hconn, resource $objDesc, resource $msgDesc, resource $pmo, string $buffer, resource $compCode, resource $reason)" "mqseries_set" "void mqseries_set(resource $hconn, resource $hobj, int $selectorcount, array $selectors, int $intattrcount, array $intattrs, int $charattrlength, array $charattrs, resource $compCode, resource $reason)" "msession_disconnect" "void msession_disconnect()" "msession_set_array" "void msession_set_array(string $session, array $tuples)" "mssql_min_error_severity" "void mssql_min_error_severity(int $severity)" "mssql_min_message_severity" "void mssql_min_message_severity(int $severity)" "mt_srand" "void mt_srand([int $seed = ''])" "mysqli_embedded_server_end" "void mysqli_embedded_server_end()" "mysqli_free_result" "void mysqli_free_result(mysqli_result $result)" "mysqli_set_local_infile_default" "void mysqli_set_local_infile_default(mysqli $link)" "mysqli_stmt_data_seek" "void mysqli_stmt_data_seek(int $offset, mysqli_stmt $stmt)" "mysqli_stmt_free_result" "void mysqli_stmt_free_result(mysqli_stmt $stmt)" "m_destroyengine" "void m_destroyengine()" "ncurses_bkgdset" "void ncurses_bkgdset(int $attrchar)" "ncurses_filter" "void ncurses_filter()" "ncurses_getmaxyx" "void ncurses_getmaxyx(resource $window, int $y, int $x)" "ncurses_getyx" "void ncurses_getyx(resource $window, int $y, int $x)" "ncurses_init" "void ncurses_init()" "ncurses_noqiflush" "void ncurses_noqiflush()" "ncurses_qiflush" "void ncurses_qiflush()" "ncurses_timeout" "void ncurses_timeout(int $millisec)" "ncurses_update_panels" "void ncurses_update_panels()" "ncurses_use_env" "void ncurses_use_env(bool $flag)" "newt_bell" "void newt_bell()" "newt_checkbox_set_flags" "void newt_checkbox_set_flags(resource $checkbox, int $flags, int $sense)" "newt_checkbox_set_value" "void newt_checkbox_set_value(resource $checkbox, string $value)" "newt_checkbox_tree_add_item" "void newt_checkbox_tree_add_item(resource $checkboxtree, string $text, mixed $data, int $flags, int $index [, int $... = ''])" "newt_checkbox_tree_set_current" "void newt_checkbox_tree_set_current(resource $checkboxtree, mixed $data)" "newt_checkbox_tree_set_entry" "void newt_checkbox_tree_set_entry(resource $checkboxtree, mixed $data, string $text)" "newt_checkbox_tree_set_entry_value" "void newt_checkbox_tree_set_entry_value(resource $checkboxtree, mixed $data, string $value)" "newt_checkbox_tree_set_width" "void newt_checkbox_tree_set_width(resource $checkbox_tree, int $width)" "newt_clear_key_buffer" "void newt_clear_key_buffer()" "newt_cls" "void newt_cls()" "newt_component_add_callback" "void newt_component_add_callback(resource $component, mixed $func_name, mixed $data)" "newt_component_takes_focus" "void newt_component_takes_focus(resource $component, bool $takes_focus)" "newt_cursor_off" "void newt_cursor_off()" "newt_cursor_on" "void newt_cursor_on()" "newt_delay" "void newt_delay(int $microseconds)" "newt_draw_form" "void newt_draw_form(resource $form)" "newt_draw_root_text" "void newt_draw_root_text(int $left, int $top, string $text)" "newt_entry_set" "void newt_entry_set(resource $entry, string $value [, bool $cursor_at_end = ''])" "newt_entry_set_filter" "void newt_entry_set_filter(resource $entry, callback $filter, mixed $data)" "newt_entry_set_flags" "void newt_entry_set_flags(resource $entry, int $flags, int $sense)" "newt_form_add_component" "void newt_form_add_component(resource $form, resource $component)" "newt_form_add_components" "void newt_form_add_components(resource $form, array $components)" "newt_form_add_hot_key" "void newt_form_add_hot_key(resource $form, int $key)" "newt_form_destroy" "void newt_form_destroy(resource $form)" "newt_form_run" "void newt_form_run(resource $form, array $exit_struct)" "newt_form_set_background" "void newt_form_set_background(resource $from, int $background)" "newt_form_set_height" "void newt_form_set_height(resource $form, int $height)" "newt_form_set_size" "void newt_form_set_size(resource $form)" "newt_form_set_timer" "void newt_form_set_timer(resource $form, int $milliseconds)" "newt_form_set_width" "void newt_form_set_width(resource $form, int $width)" "newt_form_watch_fd" "void newt_form_watch_fd(resource $form, resource $stream [, int $flags = ''])" "newt_get_screen_size" "void newt_get_screen_size(int $cols, int $rows)" "newt_grid_add_components_to_form" "void newt_grid_add_components_to_form(resource $grid, resource $form, bool $recurse)" "newt_grid_free" "void newt_grid_free(resource $grid, bool $recurse)" "newt_grid_get_size" "void newt_grid_get_size(resouce $grid, int $width, int $height)" "newt_grid_place" "void newt_grid_place(resource $grid, int $left, int $top)" "newt_grid_set_field" "void newt_grid_set_field(resource $grid, int $col, int $row, int $type, resource $val, int $pad_left, int $pad_top, int $pad_right, int $pad_bottom, int $anchor [, int $flags = ''])" "newt_grid_wrapped_window" "void newt_grid_wrapped_window(resource $grid, string $title)" "newt_grid_wrapped_window_at" "void newt_grid_wrapped_window_at(resource $grid, string $title, int $left, int $top)" "newt_label_set_text" "void newt_label_set_text(resource $label, string $text)" "newt_listbox_append_entry" "void newt_listbox_append_entry(resource $listbox, string $text, mixed $data)" "newt_listbox_clear" "void newt_listbox_clear(resource $listobx)" "newt_listbox_clear_selection" "void newt_listbox_clear_selection(resource $listbox)" "newt_listbox_delete_entry" "void newt_listbox_delete_entry(resource $listbox, mixed $key)" "newt_listbox_insert_entry" "void newt_listbox_insert_entry(resource $listbox, string $text, mixed $data, mixed $key)" "newt_listbox_select_item" "void newt_listbox_select_item(resource $listbox, mixed $key, int $sense)" "newt_listbox_set_current" "void newt_listbox_set_current(resource $listbox, int $num)" "newt_listbox_set_current_by_key" "void newt_listbox_set_current_by_key(resource $listbox, mixed $key)" "newt_listbox_set_data" "void newt_listbox_set_data(resource $listbox, int $num, mixed $data)" "newt_listbox_set_entry" "void newt_listbox_set_entry(resource $listbox, int $num, string $text)" "newt_listbox_set_width" "void newt_listbox_set_width(resource $listbox, int $width)" "newt_listitem_set" "void newt_listitem_set(resource $item, string $text)" "newt_pop_help_line" "void newt_pop_help_line()" "newt_pop_window" "void newt_pop_window()" "newt_push_help_line" "void newt_push_help_line([string $text = ''])" "newt_redraw_help_line" "void newt_redraw_help_line()" "newt_refresh" "void newt_refresh()" "newt_resize_screen" "void newt_resize_screen([bool $redraw = ''])" "newt_resume" "void newt_resume()" "newt_scale_set" "void newt_scale_set(resource $scale, int $amount)" "newt_scrollbar_set" "void newt_scrollbar_set(resource $scrollbar, int $where, int $total)" "newt_set_help_callback" "void newt_set_help_callback(mixed $function)" "newt_set_suspend_callback" "void newt_set_suspend_callback(callback $function, mixed $data)" "newt_suspend" "void newt_suspend()" "newt_textbox_set_height" "void newt_textbox_set_height(resource $textbox, int $height)" "newt_textbox_set_text" "void newt_textbox_set_text(resource $textbox, string $text)" "newt_wait_for_key" "void newt_wait_for_key()" "newt_win_message" "void newt_win_message(string $title, string $button_text, string $format [, mixed $args = '' [, mixed $... = '']])" "newt_win_messagev" "void newt_win_messagev(string $title, string $button_text, string $format, array $args)" "ob_clean" "void ob_clean()" "ob_flush" "void ob_flush()" "ob_implicit_flush" "void ob_implicit_flush([int $flag = true])" "oci_internal_debug" "void oci_internal_debug(bool $onoff)" "odbc_close" "void odbc_close(resource $connection_id)" "odbc_close_all" "void odbc_close_all()" "openssl_free_key" "void openssl_free_key(resource $key_identifier)" "openssl_pkey_free" "void openssl_pkey_free(resource $key)" "openssl_x509_free" "void openssl_x509_free(resource $x509cert)" "overload" "void overload(string $class_name)" "ovrimos_close" "void ovrimos_close(int $connection)" "parse_str" "void parse_str(string $str [, array $arr = ''])" "passthru" "void passthru(string $command [, int $return_var = ''])" "pcntl_exec" "void pcntl_exec(string $path [, array $args = '' [, array $envs = '']])" "printer_abort" "void printer_abort(resource $printer_handle)" "printer_close" "void printer_close(resource $printer_handle)" "printer_create_dc" "void printer_create_dc(resource $printer_handle)" "printer_delete_brush" "void printer_delete_brush(resource $brush_handle)" "printer_delete_font" "void printer_delete_font(resource $font_handle)" "printer_delete_pen" "void printer_delete_pen(resource $pen_handle)" "printer_draw_chord" "void printer_draw_chord(resource $printer_handle, int $rec_x, int $rec_y, int $rec_x1, int $rec_y1, int $rad_x, int $rad_y, int $rad_x1, int $rad_y1)" "printer_draw_elipse" "void printer_draw_elipse(resource $printer_handle, int $ul_x, int $ul_y, int $lr_x, int $lr_y)" "printer_draw_line" "void printer_draw_line(resource $printer_handle, int $from_x, int $from_y, int $to_x, int $to_y)" "printer_draw_pie" "void printer_draw_pie(resource $printer_handle, int $rec_x, int $rec_y, int $rec_x1, int $rec_y1, int $rad1_x, int $rad1_y, int $rad2_x, int $rad2_y)" "printer_draw_rectangle" "void printer_draw_rectangle(resource $printer_handle, int $ul_x, int $ul_y, int $lr_x, int $lr_y)" "printer_draw_roundrect" "void printer_draw_roundrect(resource $printer_handle, int $ul_x, int $ul_y, int $lr_x, int $lr_y, int $width, int $height)" "printer_draw_text" "void printer_draw_text(resource $printer_handle, string $text, int $x, int $y)" "printer_select_brush" "void printer_select_brush(resource $printer_handle, resource $brush_handle)" "printer_select_font" "void printer_select_font(resource $printer_handle, resource $font_handle)" "printer_select_pen" "void printer_select_pen(resource $printer_handle, resource $pen_handle)" "ps_close_image" "void ps_close_image(resource $psdoc, int $imageid)" "px_set_tablename" "void px_set_tablename(resource $pxdoc, string $name)" "readline_callback_read_char" "void readline_callback_read_char()" "readline_on_new_line" "void readline_on_new_line()" "readline_redisplay" "void readline_redisplay()" "register_shutdown_function" "void register_shutdown_function(callback $function [, mixed $parameter = '' [, mixed $... = '']])" "restore_include_path" "void restore_include_path()" "rewinddir" "void rewinddir([resource $dir_handle = ''])" "Runkit_Sandbox_Parent" "void Runkit_Sandbox_Parent()" "session_set_cookie_params" "void session_set_cookie_params(int $lifetime [, string $path = '' [, string $domain = '' [, bool $secure = false [, bool $httponly = false]]]])" "session_unset" "void session_unset()" "session_write_close" "void session_write_close()" "setproctitle" "void setproctitle(string $title)" "set_time_limit" "void set_time_limit(int $seconds)" "shmop_close" "void shmop_close(int $shmid)" "snmp_set_oid_numeric_print" "void snmp_set_oid_numeric_print(int $oid_format)" "socket_clear_error" "void socket_clear_error([resource $socket = ''])" "socket_close" "void socket_close(resource $socket)" "spl_autoload" "void spl_autoload(string $class_name [, string $file_extensions = spl_autoload_extensions()])" "spl_autoload_call" "void spl_autoload_call(string $class_name)" "sqlite_busy_timeout" "void sqlite_busy_timeout(resource $dbhandle, int $milliseconds)" "sqlite_close" "void sqlite_close(resource $dbhandle)" "sqlite_create_aggregate" "void sqlite_create_aggregate(resource $dbhandle, string $function_name, callback $step_func, callback $finalize_func [, int $num_args = -1])" "sqlite_create_function" "void sqlite_create_function(resource $dbhandle, string $function_name, callback $callback [, int $num_args = -1])" "srand" "void srand([int $seed = ''])" "stats_rand_setall" "void stats_rand_setall(int $iseed1, int $iseed2)" "stomp_set_read_timeout" "void stomp_set_read_timeout(integer $seconds [, integer $microseconds = '', resource $link])" "stream_bucket_append" "void stream_bucket_append(resource $brigade, resource $bucket)" "stream_bucket_prepend" "void stream_bucket_prepend(resource $brigade, resource $bucket)" "svn_auth_set_parameter" "void svn_auth_set_parameter(string $key, string $value)" "swf_actiongeturl" "void swf_actiongeturl(string $url, string $target)" "swf_actiongotoframe" "void swf_actiongotoframe(int $framenumber)" "swf_actiongotolabel" "void swf_actiongotolabel(string $label)" "swf_actionnextframe" "void swf_actionnextframe()" "swf_actionplay" "void swf_actionplay()" "swf_actionprevframe" "void swf_actionprevframe()" "swf_actionsettarget" "void swf_actionsettarget(string $target)" "swf_actionstop" "void swf_actionstop()" "swf_actiontogglequality" "void swf_actiontogglequality()" "swf_actionwaitforframe" "void swf_actionwaitforframe(int $framenumber, int $skipcount)" "swf_addbuttonrecord" "void swf_addbuttonrecord(int $states, int $shapeid, int $depth)" "swf_addcolor" "void swf_addcolor(float $r, float $g, float $b, float $a)" "swf_closefile" "void swf_closefile([int $return_file = ''])" "swf_definebitmap" "void swf_definebitmap(int $objid, string $image_name)" "swf_definefont" "void swf_definefont(int $fontid, string $fontname)" "swf_defineline" "void swf_defineline(int $objid, float $x1, float $y1, float $x2, float $y2, float $width)" "swf_definepoly" "void swf_definepoly(int $objid, array $coords, int $npoints, float $width)" "swf_definerect" "void swf_definerect(int $objid, float $x1, float $y1, float $x2, float $y2, float $width)" "swf_definetext" "void swf_definetext(int $objid, string $str, int $docenter)" "swf_endbutton" "void swf_endbutton()" "swf_enddoaction" "void swf_enddoaction()" "swf_endshape" "void swf_endshape()" "swf_endsymbol" "void swf_endsymbol()" "swf_fontsize" "void swf_fontsize(float $size)" "swf_fontslant" "void swf_fontslant(float $slant)" "swf_fonttracking" "void swf_fonttracking(float $tracking)" "swf_labelframe" "void swf_labelframe(string $name)" "swf_lookat" "void swf_lookat(float $view_x, float $view_y, float $view_z, float $reference_x, float $reference_y, float $reference_z, float $twist)" "swf_modifyobject" "void swf_modifyobject(int $depth, int $how)" "swf_mulcolor" "void swf_mulcolor(float $r, float $g, float $b, float $a)" "swf_oncondition" "void swf_oncondition(int $transition)" "swf_openfile" "void swf_openfile(string $filename, float $width, float $height, float $framerate, float $r, float $g, float $b)" "swf_ortho" "void swf_ortho(float $xmin, float $xmax, float $ymin, float $ymax, float $zmin, float $zmax)" "swf_ortho2" "void swf_ortho2(float $xmin, float $xmax, float $ymin, float $ymax)" "swf_perspective" "void swf_perspective(float $fovy, float $aspect, float $near, float $far)" "swf_placeobject" "void swf_placeobject(int $objid, int $depth)" "swf_polarview" "void swf_polarview(float $dist, float $azimuth, float $incidence, float $twist)" "swf_popmatrix" "void swf_popmatrix()" "swf_posround" "void swf_posround(int $round)" "swf_pushmatrix" "void swf_pushmatrix()" "swf_removeobject" "void swf_removeobject(int $depth)" "swf_rotate" "void swf_rotate(float $angle, string $axis)" "swf_scale" "void swf_scale(float $x, float $y, float $z)" "swf_setfont" "void swf_setfont(int $fontid)" "swf_setframe" "void swf_setframe(int $framenumber)" "swf_shapearc" "void swf_shapearc(float $x, float $y, float $r, float $ang1, float $ang2)" "swf_shapecurveto" "void swf_shapecurveto(float $x1, float $y1, float $x2, float $y2)" "swf_shapecurveto3" "void swf_shapecurveto3(float $x1, float $y1, float $x2, float $y2, float $x3, float $y3)" "swf_shapefillbitmapclip" "void swf_shapefillbitmapclip(int $bitmapid)" "swf_shapefillbitmaptile" "void swf_shapefillbitmaptile(int $bitmapid)" "swf_shapefilloff" "void swf_shapefilloff()" "swf_shapefillsolid" "void swf_shapefillsolid(float $r, float $g, float $b, float $a)" "swf_shapelinesolid" "void swf_shapelinesolid(float $r, float $g, float $b, float $a, float $width)" "swf_shapelineto" "void swf_shapelineto(float $x, float $y)" "swf_shapemoveto" "void swf_shapemoveto(float $x, float $y)" "swf_showframe" "void swf_showframe()" "swf_startbutton" "void swf_startbutton(int $objid, int $type)" "swf_startdoaction" "void swf_startdoaction()" "swf_startshape" "void swf_startshape(int $objid)" "swf_startsymbol" "void swf_startsymbol(int $objid)" "swf_translate" "void swf_translate(float $x, float $y, float $z)" "swf_viewport" "void swf_viewport(float $xmin, float $xmax, float $ymin, float $ymax)" "sybase_deadlock_retry_count" "void sybase_deadlock_retry_count(int $retry_count)" "sybase_min_client_severity" "void sybase_min_client_severity(int $severity)" "sybase_min_error_severity" "void sybase_min_error_severity(int $severity)" "sybase_min_message_severity" "void sybase_min_message_severity(int $severity)" "sybase_min_server_severity" "void sybase_min_server_severity(int $severity)" "tidy_load_config" "void tidy_load_config(string $filename, string $encoding)" "transliterator_transliterate" "void transliterator_transliterate(string $subject [, string $start = '' [, string $end = '']])" "unregister_tick_function" "void unregister_tick_function(string $function_name)" "unset" "void unset([mixed $var = '' [, mixed $... = '']])" "usleep" "void usleep(int $micro_seconds)" "variant_set" "void variant_set(variant $variant, mixed $value)" "variant_set_type" "void variant_set_type(variant $variant, int $type)" "w32api_set_call_method" "void w32api_set_call_method(int $method)" "xslt_free" "void xslt_free(resource $xh)" "xslt_set_base" "void xslt_set_base(resource $xh, string $uri)" "xslt_set_encoding" "void xslt_set_encoding(resource $xh, string $encoding)" "xslt_set_error_handler" "void xslt_set_error_handler(resource $xh, mixed $handler)" "xslt_set_log" "void xslt_set_log(resource $xh [, mixed $log = ''])" "xslt_set_sax_handler" "void xslt_set_sax_handler(resource $xh, array $handlers)" "xslt_set_sax_handlers" "void xslt_set_sax_handlers(resource $processor, array $handlers)" "xslt_set_scheme_handler" "void xslt_set_scheme_handler(resource $xh, array $handlers)" "xslt_set_scheme_handlers" "void xslt_set_scheme_handlers(resource $xh, array $handlers)" "yaz_ccl_conf" "void yaz_ccl_conf(resource $id, array $config)" "yaz_es" "void yaz_es(resource $id, string $type, array $args)" "yaz_itemorder" "void yaz_itemorder(resource $id, array $args)" "yaz_range" "void yaz_range(resource $id, int $start, int $number)" "yaz_scan" "void yaz_scan(resource $id, string $type, string $startterm [, array $flags = ''])" "yaz_schema" "void yaz_schema(resource $id, string $schema)" "yaz_set_option" "void yaz_set_option(resource $id, string $name, string $value, array $options)" "yaz_sort" "void yaz_sort(resource $id, string $criteria)" "yaz_syntax" "void yaz_syntax(resource $id, string $syntax)" "yp_all" "void yp_all(string $domain, string $map, string $callback)" "zip_close" "void zip_close(resource $zip)" "__halt_compiler" "void __halt_compiler()" "xpath_new_context" "XPathContext xpath_new_context(domdocument $dom_document)" "xptr_new_context" "XPathContext xptr_new_context()" "xpath_eval" " xpath_eval()" "xpath_eval_expression" " xpath_eval_expression()" "xptr_eval" " xptr_eval()"))) + + (provide 'php-extras-eldoc-functions) + +;;; php-extras-eldoc-functions.el ends here diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.elc b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-eldoc-functions.elc new file mode 100644 index 0000000000000000000000000000000000000000..0b52834cfe6b822b159a1b4a4cc4a0e53785aa47 GIT binary patch literal 367349 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%0DPeW4N^v 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 z z@)#^9;%diMK2_Gi-LVGSQV$ky2H0eXDu><&f$2F$flE| z+5|5=B{rZI?seQ4M3**`pMGsfg?P86SC)iWq>R-Ei^%yh5Z*O7wVsF?kFBY|bZ-Jz?VP}HgLVun=7KU$=;#5^q9&8`KK%Z7|1``S zh?JMG1(sPt0Ee14TX_*fmgDeHmG5Z3<+_U|#}kWq9=CEF+P+Od-uzy-hX;fnR^c5}AVG+?@hT}&FEq(; z24t^`OE;8TJ-8z=zt|S%#|oJA?(lL6$sv_GE8uzAVOhYL*0Pihk9DBSAPl%6&LU$A z`wQF|iy7O6$+$#J($4wECwlxy`iQHCBCQY)yW9+{ zq*c^Y;vR2;H-0+nn|(m>Q?6Q8v~flsOQ;U<6iacY^#aR>vxVi!;rQ9J-L1!50e_0= z2UW{QAr8VPeiYil$IFa)IS>{6>Ko>jngaWj*dJCsVgV+Pt}n371ojtUZjE?sOsfi= zS79CEge<=J(WQ`d8E++36S2Mba8$~;6Re66c51vbLZk62q0VA4F_IaX!AMpxXVGuQ zIGc;Hm`bZrM8cCPMWLDO0XLbfZY75ys!`rtbu1r4?@Xn(XTmR!dY?{ z!A0zdLx2H~-egYnL=st41s>}$EOVa6vmn$CJP(R*QWSP|l zIMcWOLS=d`fFtGOo>!^jI={ks1!{YXxM}{Vj@qbtuiLkGFC-VTf~5| z$O|7$thq0ahsXA6BHcF|R4VfFqFPwCN0*klZURbBU;|1?99!^rp$(iW217^|=mD|P zP2CJ+{wzMA)9Z4jZvy38T8Jcomp5R>V>Z@|%;;#9aO;(A)Nemh#amfa66X=xA7VdD z%nt|i78DdEg zFL>>tb>4VdN-)KMZPvx_M*3eqJfz31s$5Q<(Nv{->j_pUe1J>pzQC~}ZaQbON=D0r zO58YIT;{^kB(_)>?0e+dl;0vYIs$-D-8$cJJ`I_N*yyJ)qm)J*4r{pGHPhSVI6X!@ zl_1u@gACFXGWxWH6uP9}-fb^A)elHHO51~^LRYxZ$7_-(NGGR`V-kW2f#j0Au!Z|@3RjsHd3u>!=o1-uYR1{~VQmlv~LT$6Ss6s08l@yTY^>aI z<8VFSt>|DO1LhJ}gRc`^xh`F`j^$EdezkHRamf(&)PwoQFL6?(95Q!slFYOMXrtbq zJp&72Bule7a%-R%L=eCW%$Y!jYte9nhGp@kp6oH=T}KL{S@K4!hMLl04$5?x-nSSf zeYRKB&`KE73XLxI^T|iI;-s&T-ED7TPfCHZi?4hi;mB|H`th*Jf` z$nsu~i)}&q0T+Ve<1u3%Gv-~!yaT3U^|I0sdAsGNBUyz7=ARKzHUJVL-dlm0f-y6ke^^&TcuV{E|i5V7nWnPfjN_GR6w<&3?_rtLk@Rk z%nt%`C=%LWD5*ha1-opi1C}b^-uFETGqC`Raz8)exHwpA5Q9x@UHnOTk&y{U zYd)dih?<=!rE2sfBGAMv3L?mE6)5y=9Vk!BN$9Cl#OeemX|?y}o5E7GHpxkPc2V9XACPNO^wcorJYq%76RR!Og0ZG= z;e+L%@0PGUz-stbE&^-Qf-zWLO5khdw+GsWxgvD&G7uhU`LhI6MkGA0t+T~jTDol0 zGZecZ-MWkA?|8dM_#ipvx?7`VwdU3-d?}u}0>&1;I$4pA7k@LSH3T~gaST-ZtQ`+G zt5w(!^h>Ki?3id(V&Pq>|O_h+>>^4v~o_PXXZ$y2TR1%s*q&xQ>tWK*M!~KUC;M{-H!= zIfL#%>Wc8;Y08iDceBL;(FQRFx|kW3C~)=N1d;Nuq2Zm<79;@H_MGhC*Eq{}PfI=H_$bJx{@ZDvX+ei6|*+_i^%Af~pboub(K2mwNZVu4{ zkOTmXX=mt=7@v8m82gqO-WsqhRUhcNAU-MR8D>QNw{HRaR6n0}30^>Cj~)E%IX
t8>^!1fjfk7v8<-EUzX Z-p>!eUEQEOzx9R0;eS4R`Ro7d{{v>}siyz{ literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.el b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.el new file mode 100644 index 0000000..72aca5f --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.el @@ -0,0 +1,102 @@ +;;; php-extras-gen-eldoc.el --- Extra features for `php-mode' + +;; Copyright (C) 2012, 2013 Arne Jørgensen + +;; Author: Arne Jørgensen + +;; This software is free software: you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation, either version 3 of the +;; License, or (at your option) any later version. + +;; This software is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this software. If not, see +;; . + +;;; Commentary: + +;; Download and parse PHP manual from php.net and build a new +;; `php-extras-function-arguments' hash table of PHP functions and +;; their arguments. + +;; Please note that build a new `php-extras-function-arguments' is a +;; slow process and might be error prone. + +;;; Code: + +(require 'php-mode) +(require 'php-extras) + + + +(defvar php-extras-gen-eldoc-temp-methodname nil) + +(defvar php-extras-php-funcsummary-url + "http://svn.php.net/repository/phpdoc/doc-base/trunk/funcsummary.txt" + "URL of the funcsummary.txt list of PHP functions.") + + + +;;;###autoload +(defun php-extras-generate-eldoc () + "Regenerate PHP function argument hash table from php.net. This is slow!" + (interactive) + (when (yes-or-no-p "Regenerate PHP function argument hash table from php.net? This is slow! ") + (php-extras-generate-eldoc-1 t))) + +(defun php-extras-generate-eldoc-1 (&optional byte-compile) + (let ((function-arguments-temp (make-hash-table + :size 5000 + :rehash-threshold 1.0 + :rehash-size 100 + :test 'equal))) + (with-temp-buffer + (url-insert-file-contents php-extras-php-funcsummary-url) + (goto-char (point-min)) + (let ((line-count (count-lines (point-min) (point-max)))) + (with-syntax-table php-mode-syntax-table + (while (not (eobp)) + (let ((current-line (buffer-substring (point-at-bol) (point-at-eol)))) + ;; Skip methods for now: is there anything more intelligent + ;; we could do with them? + (unless (string-match-p "::" current-line) + (search-forward "(" (point-at-eol)) + (goto-char (match-beginning 0)) + (let ((function-name (thing-at-point 'symbol)) + (help-string (replace-regexp-in-string "[[:space:]]+" " " + current-line)) + (progress (* 100 (/ (float (line-number-at-pos)) line-count)))) + (message "[%2d%%] Parsing %s..." progress function-name) + (puthash function-name help-string function-arguments-temp)))) + ;; Skip over function description + (forward-line 2))))) + (let* ((file (concat php-extras-eldoc-functions-file ".el")) + (base-name (file-name-nondirectory php-extras-eldoc-functions-file))) + (with-temp-file file + (insert (format + ";;; %s.el -- file auto generated by `php-extras-generate-eldoc' + + \(require 'php-extras) + + \(setq php-extras-function-arguments %S) + + \(provide 'php-extras-eldoc-functions) + +;;; %s.el ends here +" + base-name + function-arguments-temp + base-name))) + (when byte-compile + (message "Byte compiling and loading %s ..." file) + (byte-compile-file file t) + (message "Byte compiling and loading %s ... done." file))))) + +(provide 'php-extras-gen-eldoc) + +;;; php-extras-gen-eldoc.el ends here diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.elc b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-gen-eldoc.elc new file mode 100644 index 0000000000000000000000000000000000000000..bd74b5b2e6003d7f31ba6097cc01b3b83985f7c5 GIT binary patch literal 3093 zcmbtWTW{Mo6wcey4AAQ~Z1YZ}rj6TD*3EX}thb~cR-gldc6*A0jh5(Gs7$#e-6Y+g z-$zPLowV47HUTY(hdlT5opbQ~<t*x!y$)yo2uM0u`IE^B#czc}0_QkFQAJNdK z6D8g*OC`ugcy5n>2=yr?-L2h1Oy6;}w#}~M%#4`hmN2urK!gOzvg&RHPx>+a@#-bj zQ@BRZbSZPaoX@$s49$h1szl&GJO1_9(VD>j^eIVJm$mC`sVeek#w$n~zA79u}K$EqX>R<(u9b6RU$yyTNS=X&4Q>%4ubXc5OsYn&d4sYj{VRwxNMbiYE zv4@*@OVi@)LbhL`?^-4uFR`aTKrm~@`40c+gm|u*|;j4^EZOos$|XgNSE&g^`j`F zkrEAIri7l=RYB-lSG(?9Y>ycMC;|W?U9SpMigVTq^XZ<|_#WWm2A;;7wno#jgpZ=c zemG=BraDj!;(!_+%;DmjvZ`997F4?gAY-LO*EP&`U>GV5Kt`iQ!D42O2cTS{U0t-+ zUDH5qwjqv^TTV8T2GG$8PXY?kfV41dokb)0<}NMj5)!##le+rwA@JdkM!p3AGSswP zHs>avfiYM4j7@8G&Q(GFu1^t=9(~!ear~hB-0}l3S3DO?0bMT^Fqt)+$Uiw5=>WJ9mpvQG`HM#21FP(y4+*A5*Fw`5%VTqZQvcJ&xn3@Bh~*k72rm=m3%aP zYmlgjv1az+OH*Iz=*GXl){5pzc{g(19m}z#-BmYVYdzhDg1En3uep!wly+XXXBVn| zS7H=c!&AGrXo zw+dGe|Kk>hK`CtT+qvahs#CsH3iad)3CYXVDut1eHWM*2&dNz?7)C#NW;55NHY>Q{ z1oO{;8`hv|u}avLU*Ih|PTF+T$th+a~)d Mw$_Y30CtwcUH||9 literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.el b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.el new file mode 100644 index 0000000..1771aa7 --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.el @@ -0,0 +1,3 @@ +(define-package "php-extras" "1.0.0.20130923" + "Extra features for `php-mode'" + '((php-mode "1.5.0"))) diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.elc b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras-pkg.elc new file mode 100644 index 0000000000000000000000000000000000000000..a756bb498f44ff4fdf9bf9ca6c83b23da14be634 GIT binary patch literal 673 zcmbtR%TB{E5bQZWz;%@itwfwADU{L+P>NIuBqZR@*4{K$9XqmJpnN?}%A*xW)~9{V zjCZEY7iLbURTSM-IeR zV=Xxd!=1NMuiQ!KTIT_U2q*dB$tEnH{J{_=U})ok8|^U+Z+w}Yhl)=B=wx68en|$1075mv*Bzf{tT2?)Sg5cKMVI +;; URL: https://github.com/arnested/php-extras +;; Created: June 28, 2012 +;; Version: 1.0.0.20130923 +;; Package-Requires: ((php-mode "1.5.0")) +;; Keywords: programming, php + +;; This software is free software: you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation, either version 3 of the +;; License, or (at your option) any later version. + +;; This software is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this software. If not, see +;; . + +;;; Commentary: + +;; Extra features for `php-mode': + +;; * `php-extras-insert-previous-variable' +;; * `php-extras-eldoc-documentation-function' +;; * Auto complete source for PHP functions based on +;; `php-extras-eldoc-documentation-function' + +;;; Code: + +(require 'eldoc) +(require 'thingatpt) + +(defvar php-extras-php-variable-regexp + (format "\\(\\$[a-zA-Z_%s-%s][a-zA-Z0-9_%s-%s]*\\(\\[.*\\]\\)*\\)" + (char-to-string 127) (char-to-string 255) + (char-to-string 127) (char-to-string 255)) + "Regexp for a PHP variable.") + +(defvar php-extras-eldoc-functions-file (concat (file-name-directory (or load-file-name buffer-file-name)) "php-extras-eldoc-functions") + "File holding `php-extras-function-arguments' hash table.") + +(defvar php-extras-function-arguments 'not-loaded + "Hash table of PHP functions and their function arguments. +Generated by `php-extras-gen-eldoc-elem-string'.") + +;;;###autoload +(defcustom php-extras-insert-previous-variable-key [(control c) (control $)] + "Key sequence for `php-extras-insert-previous-variable'." + :group 'php + :set #'(lambda (symbol value) + ;; Always set the variable `php-extras-insert-previous-variable-key'. + (set-default symbol value) + ;; When `php-mode-map' is already loaded define it in the map. + (when (boundp 'php-mode-map) + ;; First undefine the old key sequence if defined. + (when (eq (lookup-key php-mode-map php-extras-insert-previous-variable-key) 'php-extras-insert-previous-variable) + (define-key php-mode-map php-extras-insert-previous-variable-key 'undefined)) + ;; Then define the new key sequence. + (define-key php-mode-map value 'php-extras-insert-previous-variable))) + :type 'key-sequence) + +;;;###autoload +(defcustom php-extras-auto-complete-insert-parenthesis t + "Whether auto complete insert should add a pair of parenthesis." + :group 'php + :type 'boolean) + + + +;;;###autoload +(defun php-extras-insert-previous-variable (arg) + "Insert previously used variable from buffer. +With prefix argument search that number of times backwards for +variable. If prefix argument is negative search forward." + (interactive "P") + (when (null arg) + (setq arg 1)) + (save-excursion + (dotimes (var (abs arg)) + (if (> arg 0) + (re-search-backward php-extras-php-variable-regexp nil t) + (re-search-forward php-extras-php-variable-regexp nil t)))) + (if (match-string-no-properties 1) + (insert (match-string-no-properties 1)) + (message "No variable to insert."))) + +;;;###autoload +(defun php-extras-eldoc-documentation-function () + "Get function arguments for core PHP function at point." + (when (eq php-extras-function-arguments 'not-loaded) + (php-extras-load-eldoc)) + (when (hash-table-p php-extras-function-arguments) + (or + (gethash (php-get-pattern) php-extras-function-arguments) + (save-excursion + (ignore-errors + (backward-up-list) + (gethash (php-get-pattern) php-extras-function-arguments)))))) + +;;;###autoload +(add-hook 'php-mode-hook 'php-extras-eldoc-setup) + +(defun php-extras-eldoc-setup () + (unless eldoc-documentation-function + (set (make-local-variable 'eldoc-documentation-function) + #'php-extras-eldoc-documentation-function)) + (eldoc-add-command 'completion-at-point)) + +(defun php-extras-load-eldoc () + (unless + (require 'php-extras-eldoc-functions php-extras-eldoc-functions-file t) + (warn "PHP function descriptions not loaded. Try M-x php-extras-generate-eldoc"))) + + + +(defun php-extras-ac-insert-action () + "Auto-complete insert action for PHP. +If `php-extras-auto-complete-insert-parenthesis' is t insert a +pair of parenthesis after the inserted auto complete selection; +place point in between the parenthesis and show the `eldoc' +documentation for the inserted selection." + (when php-extras-auto-complete-insert-parenthesis + (insert "()") + (backward-char) + (when (and (boundp 'eldoc-documentation-function) + (fboundp 'eldoc-message)) + (eldoc-message (funcall eldoc-documentation-function))))) + +(defvar ac-source-php-extras + '((candidates . php-extras-autocomplete-candidates) + (candidate-face . php-extras-autocomplete-candidate-face) + (selection-face . php-extras-autocomplete-selection-face) + (action . php-extras-ac-insert-action) + (cache)) + "Auto complete source for PHP functions.") + +(defface php-extras-autocomplete-candidate-face + '((t (:inherit ac-candidate-face))) + "Face for PHP auto complete candidate." + :group 'php) + +(defface php-extras-autocomplete-selection-face + '((t (:inherit ac-selection-face))) + "Face for PHP auto complete selection." + :group 'php) + +(defun php-extras-autocomplete-candidates () + "Generate PHP auto complete candidates. +The candidates are generated from the +`php-extras-function-arguments' hash table." + (let (candidates) + (when (eq php-extras-function-arguments 'not-loaded) + (php-extras-load-eldoc)) + (when (hash-table-p php-extras-function-arguments) + (maphash (lambda (key value) (setq candidates (cons key candidates))) php-extras-function-arguments)) + candidates)) + +;;;###autoload +(defun php-extras-autocomplete-setup () + (eval-after-load 'auto-complete + '(add-to-list 'ac-sources 'ac-source-php-extras))) + +;;;###autoload +(add-hook 'php-mode-hook #'php-extras-autocomplete-setup) + + +;;; Setup basic Emacs completion-at-point to complete on function names + +;;;###autoload +(defun php-extras-completion-at-point () + (when (eq php-extras-function-arguments 'not-loaded) + (php-extras-load-eldoc)) + (when (hash-table-p php-extras-function-arguments) + (let ((bounds (bounds-of-thing-at-point 'symbol))) + (if bounds + (list (car bounds) (cdr bounds) php-extras-function-arguments + :exclusive 'no) + nil)))) + +;;;###autoload +(defun php-extras-completion-setup () + (add-hook 'completion-at-point-functions + #'php-extras-completion-at-point + nil t)) + +;;;###autoload +(add-hook 'php-mode-hook #'php-extras-completion-setup) + + + +;;;###autoload +(eval-after-load 'php-mode + `(let ((map php-mode-map) + (key php-extras-insert-previous-variable-key)) + (define-key map key 'php-extras-insert-previous-variable))) + + + +(provide 'php-extras) + +;;; php-extras.el ends here diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.elc b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.elc new file mode 100644 index 0000000000000000000000000000000000000000..abde8a6159c5439bdb7a643fee4bd05d2422a4fb GIT binary patch literal 5947 zcmbtY`)}LU74|RdEEO2KU$(Wt&=WbSrL9*MsfS+}mNaYHVC!IX*#gWmmMikgB21AQ zNjY)<`hDk+m%MVMI73sY=HoujJ&*7E4$r^++wIWTslcqQ7B1`*m8t9nPgkEG3{lx@C6Y`GFMx!(DnEZh^ly&D>x}-T) zrlWu6Cd-f9^^W>xse`;99+`Nhk5-G7GVh8^=gR93@E@--IQ56lo4$!<-6)}Nc`n^z z(Fj)fqyDh($-B2vu^=78xK$A?qn~tv0eQbIFJCR9yfkQ?o1DVCL@%R&!ZgT>EK08P zukkj^3({c-chviMr+xqQy*0uVYb0qwL7EgAgV)7eo#08Lp8ezb%a;@^bf$v>Mt&{Z z>m;N+r9dY%GZd$KW0UGIIT@YBk;$l7V4y!N_eGq3);~7j=l*NA+uhk+VN{TYhC0*X zV1S?ZXzF`>!9O22gX0ceX6C=^C^KYYco#>3cXhEUuE_7T51#rb^rN{p?^ZNVGtzYN z{RQ3XEYh>s^uKI(Lo>%MIZ45nc7)2xx!a6k8}J)GsxC(M!g=zfvJrbPb%BFSyVL38 zORau-rvCk(C%Jl(UsZPlby_|6gN(ZDRF&yNo{#JwkFV&sN8N+R z)ThbF@9}}hC-i~~VUflmTtRP~qs`Yzz*(wvcD-Jjq{t6xq4Nb5yWJsfRd!~sq{{C3 z!{5g_C!g%K*agFj>d>5aGF&0~4b9f`xyhUdypp_9A>tPlX?8~)$J%>4cQ~TeVNXtm za#(M0Lf_X1pmZ+rt&JtFgJNN#jO;V2kKS*8XA+a?qJ$&YPuC_<+Lr!(i`>NF>y@!PJhWPQwYP5_R zfA!1C>A^ZL(xnPb5bMm;iR>nLlmH?NwaUzGl&$sp=2OgI53~uNMY405psRE0kkFBOF=E7wI|`|a0Eei%BB-qjU_-*{5$rY7!OdHpgHn(@R)(ZyB60F~IQX*4QO6hbLDRsN+cIbm+LuI_Z8& zbE=`>kztHbqfa=SMxP;N7`ey$3|EuSzi3U9*PK{Kd;9$0Uwl37@YrL{F)70`&-{Vk z_wM$$Z2^ajjOmfGSHQB=^wYvu2Bms7!s>9vfu^ zAc`X>$Q@f=(GURMHCdKsJ;3*{il0CBPkV@67x17K0JO4@1Rk5)N+6ff01~cOn89fH zUgvTAkrIFv51 zE1fpmV^o zLh0DE-v%bXaqN4Dj}A#VsUjcU-oiMf=O_b~V%44?mQCu)p|r$|^Y$v%5Ev36j79@f zyfr3~$qtE$wgc0>l^1Ws*@x{7;E)q->{;)!6MuAI8MpFEjX8)nE02K>9G7$+uB!{i z8tzT10V3g=+ewSIB*#NeE!!E8!d4*cbkPzh&+3wSrBBL?tFRo|U6uTBbUfgaKX^Lw zBm-ES|psp09#=p*GiIy^}R#0wDb*Z?z~`cg5-s2H_NJa`KAotwfUy|Kp*!u-+bSD zVDox3>xYTxOy7rIDADOd*5WhDD_})!eGXw^z;w1>6D^9$Zo4>Tk+vc4E#2+=1hykz zEtzq}|BhRWp(u_|1@SF)kJ0f$pELT2OqP%bBE=u2`0PKmF)BQ$K4sCo#rJ{Vq@wKq- zd7m@X(_ZUo>lsfhTXlbY{0kfP4~JU7T1eb}Byh$%x`U%z3(InnO6N+xa4B7B7^)iG zGxIKp*E#o0Ns4OQDQp}s><(%r(;nlX9NStdI+LvdwK~sT64)}ZY)jBcuxVR9?%8ZA zxfOTi2M+s9K+4M!X>AaDu92>e9~}eAW14&UX=hRwZ8nh3ej2df3BUzhJI<23noMr+ fnL5f2U)p_MjAwsLkBX^i#BL*e=xjD)_1^v;FSd?K literal 0 HcmV?d00001 diff --git a/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.info b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.info new file mode 100644 index 0000000..a85c267 --- /dev/null +++ b/emacs.d/elpa/php-extras-1.0.0.20130923/php-extras.info @@ -0,0 +1,175 @@ +Dette er php-extras.info, produceret med makeinfo version 4.8 ud fra +stdin. + + +File: php-extras.info, Node: Top, Up: (dir) + +Top +*** + +* Menu: + +* PHP Extras:: + + +File: php-extras.info, Node: PHP Extras, Prev: Top, Up: Top + +1 PHP Extras +************ + +A small collection of extra features for Emacs `php-mode'. + + Currently includes: + + * `php-extras-insert-previous-variable' + + * `php-extras-eldoc-documentation-function' + + * Auto complete source for PHP functions based on + `php-extras-eldoc-documentation-function' + +* Menu: + +* php-extras-insert-previous-variable:: +* php-extras-eldoc-documentation-function:: +* Auto complete source for PHP functions based:: +* Installation:: +* Development of PHP Extras:: + + +File: php-extras.info, Node: php-extras-insert-previous-variable, Next: php-extras-eldoc-documentation-function, Up: PHP Extras + +1.1 `php-extras-insert-previous-variable' +========================================= + +When variable names get too long or you have to juggle a lot of nested +arrays it gets cumbersome to repeat the same variables over and over +again while programming. + + In example you have the code below and want to debug what value you +actually parsed to `some_function()'. You have point at `^' and now all +you have to write is repeat the variable... + +some_function($my_array['some_level'][0]['another_level'][7]); +print_r(^); + + Enter `php-extras' and you just hit C-c C-$ and it will insert the +previous variable (including array indexes). + + If you prefix the command (i.e. C-u 3 C-c C-$) it will search back 3 +variables and with negative prefix arguments it will search forward. + + +File: php-extras.info, Node: php-extras-eldoc-documentation-function, Next: Auto complete source for PHP functions based, Prev: php-extras-insert-previous-variable, Up: PHP Extras + +1.2 `php-extras-eldoc-documentation-function' +============================================= + +`eldoc-mode' is a nice minor mode that ships with Emacs. It will +display a function tip in the mini buffer showing the function and its +arguments for the function at point. That is if you provide a function +to look up the function definition. + + `php-extras' provides such a function for looking up all the core +PHP functions. + + The function `php-extras-generate-eldoc' will download the PHP +function summary PHP Subversion repository +(http://svn.php.net/repository/phpdoc/doc-base/trunk/funcsummary.txt) +and extract the function definitions (slow) and store them in a hash +table on disk for you. + + If you install `php-extras' as an ELPA package the hash table is +already generated for you. + + +File: php-extras.info, Node: Auto complete source for PHP functions based, Next: Installation, Prev: php-extras-eldoc-documentation-function, Up: PHP Extras + +1.3 Auto complete source for PHP functions based +================================================ + +The PHP functions extracted for +`php-extras-eldoc-documentation-function' is also setup as a source for +auto-complete (http://cx4a.org/software/auto-complete). + + auto-complete (http://cx4a.org/software/auto-complete) already comes +with a dictionary of PHP functions and will auto complete on them using +the `ac-source-dictionary'. + + The source we provide with `php-extras' will hopefully be more up to +date. + + +File: php-extras.info, Node: Installation, Next: Development of PHP Extras, Prev: Auto complete source for PHP functions based, Up: PHP Extras + +1.4 Installation +================ + +The easiest way to install `php-extras' is probably to install it via +the ELPA archive at Marmalade +(http://marmalade-repo.org/packages/php-extras). + + ELPA (package.el) is part of Emacs 24. For Emacs 23 see Marmalade +(http://marmalade-repo.org) for installation instructions. + + The version number of the ELPA package will have the date appended +when the package was build and hence the date the documentation got +extracted from php.net (http://php.net). + +* Menu: + +* Manual installation:: + + +File: php-extras.info, Node: Manual installation, Up: Installation + +1.4.1 Manual installation +------------------------- + +I really recommend that you install this package via ELPA as described +above. + + If you insist on installing it manually try to follow this recipe: + + * Place the folder with the files somewhere on your disk. + + * Add this to your `.emacs' / `.emacs.d/init.el': + + + +(add-to-list 'load-path "/somewhere/on/your/disk/php-xtras") +(eval-after-load 'php-mode + (require 'php-extras)) + + * Either restart your Emacs or evaluate the `add-to-list' expression. + + * Generate the hash table containing the PHP functions: + + + M-x load-library RET php-extras-gen-eldoc RET + + M-x php-extras-generate-eldoc RET + + +File: php-extras.info, Node: Development of PHP Extras, Prev: Installation, Up: PHP Extras + +1.5 Development of PHP Extras +============================= + +PHP Extras is developed at GitHub +(https://github.com/arnested/php-extras). Feature requests, ideas, bug +reports, and pull request are more than welcome! + + + +Tag Table: +Node: Top77 +Node: PHP Extras160 +Node: php-extras-insert-previous-variable720 +Node: php-extras-eldoc-documentation-function1627 +Node: Auto complete source for PHP functions based2604 +Node: Installation3280 +Node: Manual installation3958 +Node: Development of PHP Extras4688 + +End Tag Table diff --git a/emacs.d/elpa/php-mode-1.5.0/php-mode-autoloads.el b/emacs.d/elpa/php-mode-1.5.0/php-mode-autoloads.el new file mode 100644 index 0000000..ef69aad --- /dev/null +++ b/emacs.d/elpa/php-mode-1.5.0/php-mode-autoloads.el @@ -0,0 +1,36 @@ +;;; php-mode-autoloads.el --- automatically extracted autoloads +;; +;;; Code: + + +;;;### (autoloads (php-mode php-file-patterns) "php-mode" "php-mode.el" +;;;;;; (21154 21303 0 0)) +;;; Generated autoloads from php-mode.el + +(defvar php-file-patterns '("\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'") "\ +List of file patterns for which to automatically invoke `php-mode'.") + +(custom-autoload 'php-file-patterns "php-mode" nil) + +(autoload 'php-mode "php-mode" "\ +Major mode for editing PHP code. + +\\{php-mode-map} + +\(fn)" t nil) + +;;;*** + +;;;### (autoloads nil nil ("php-mode-pkg.el") (21154 21303 508318 +;;;;;; 0)) + +;;;*** + +(provide 'php-mode-autoloads) +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; coding: utf-8 +;; End: +;;; php-mode-autoloads.el ends here diff --git a/emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.el b/emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.el new file mode 100644 index 0000000..3b6e209 --- /dev/null +++ b/emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.el @@ -0,0 +1 @@ +(define-package "php-mode" "1.5.0" "major mode for editing PHP code" (quote nil)) diff --git a/emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.elc b/emacs.d/elpa/php-mode-1.5.0/php-mode-pkg.elc new file mode 100644 index 0000000000000000000000000000000000000000..670c9d76e5015fe95adde51f7fb84d89cf9ebe68 GIT binary patch literal 633 zcmbtRO-}+b5aqmo!0UvQCTy1l6oHG17)dlCQGdYD&a#zmyJ?FCf4#%v2gW0FX{R&u z-s`-{>|uJ+YPFKdWCBxH)!LAPx3cqfdLXuw&x^BQhR z0$e~o91jNL?htz2yx-s!-c?XAGGs4-e8>**GC>u}AXG-C#;h*uv~r5lT%3#UZ(6Tc zf=mOaEzEW!@Wxo0$$JCQ7kN{A*RcdNtf`K=(jOSPA&8_YK9@S|b!-9!P+N(Hs54P>wOIiy)ni$jzHrq?i0+)9a_{d=9cik212zPD77Y zL2w|^!jix^{6q5fnE-^|Xz~zCZtV5S1nqCT+R$zc e +;; Author: Turadg Aleahmad +;; Keywords: php languages oop +;; Created: 1999-05-17 +;; Modified: 2008-11-04 +;; Version: 1.5.0 +;; X-URL: http://php-mode.sourceforge.net/ + +(defconst php-mode-version-number "1.5.0" + "PHP Mode version number.") + +;;; License + +;; This file is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. + +;; This file is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this file; if not, write to the Free Software +;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +;; 02110-1301, USA. + +;;; Usage + +;; Put this file in your Emacs lisp path (eg. site-lisp) and add to +;; your .emacs file: +;; +;; (require 'php-mode) + +;; To use abbrev-mode, add lines like this: +;; (add-hook 'php-mode-hook +;; '(lambda () (define-abbrev php-mode-abbrev-table "ex" "extends"))) + +;; To make php-mode compatible with html-mode, see http://php-mode.sf.net + +;; Many options available under Help:Customize +;; Options specific to php-mode are in +;; Programming/Languages/Php +;; Since it inherits much functionality from c-mode, look there too +;; Programming/Languages/C + +;;; Commentary: + +;; PHP mode is a major mode for editing PHP 3 and 4 source code. It's +;; an extension of C mode; thus it inherits all C mode's navigation +;; functionality. But it colors according to the PHP grammar and indents +;; according to the PEAR coding guidelines. It also includes a couple +;; handy IDE-type features such as documentation search and a source +;; and class browser. + +;;; Contributors: (in chronological order) + +;; Juanjo, Torsten Martinsen, Vinai Kopp, Sean Champ, Doug Marcey, +;; Kevin Blake, Rex McMaster, Mathias Meyer, Boris Folgmann, Roland +;; Rosenfeld, Fred Yankowski, Craig Andrews, John Keller, Ryan +;; Sammartino, ppercot, Valentin Funk, Stig Bakken, Gregory Stark, +;; Chris Morris, Nils Rennebarth, Gerrit Riessen, Eric Mc Sween, +;; Ville Skytta, Giacomo Tesio, Lennart Borgman, Stefan Monnier, +;; Aaron S. Hawley, Ian Eure, Bill Lovett, Dias Badekas, David House + +;;; Changelog: + +;; 1.5 +;; Support function keywords like public, private and the ampersand +;; character for function-based commands. Support abstract, final, +;; static, public, private and protected keywords in Imenu. Fix +;; reversed order of Imenu entries. Use font-lock-preprocessor-face +;; for PHP and ASP tags. Make php-mode-modified a literal value +;; rather than a computed string. Add date and time constants of +;; PHP. (Dias Badekas) Fix false syntax highlighting of keywords +;; because of underscore character. Change HTML indentation warning +;; to match only HTML at the beginning of the line. Fix +;; byte-compiler warnings. Clean-up whitespace and audited style +;; consistency of code. Remove conditional bindings and XEmacs code +;; that likely does nothing. +;; +;; 1.4 +;; Updated GNU GPL to version 3. Ported to Emacs 22 (CC mode +;; 5.31). M-x php-mode-version shows version. Provide end-of-defun +;; beginning-of-defun functionality. Support add-log library. +;; Fix __CLASS__ constant (Ian Eure). Allow imenu to see visibility +;; declarations -- "private", "public", "protected". (Bill Lovett) +;; +;; 1.3 +;; Changed the definition of # using a tip from Stefan +;; Monnier to correct highlighting and indentation. (Lennart Borgman) +;; Changed the highlighting of the HTML part. (Lennart Borgman) +;; +;; See the ChangeLog file included with the source package. + + +;;; Code: + +(require 'speedbar) +(require 'font-lock) +(require 'cc-mode) +(require 'cc-langs) +(require 'custom) +(require 'etags) +(eval-when-compile + (require 'regexp-opt)) + +;; Local variables +(defgroup php nil + "Major mode `php-mode' for editing PHP code." + :prefix "php-" + :group 'languages) + +(defcustom php-default-face 'default + "Default face in `php-mode' buffers." + :type 'face + :group 'php) + +(defcustom php-speedbar-config t + "When set to true automatically configures Speedbar to observe PHP files. +Ignores php-file patterns option; fixed to expression \"\\.\\(inc\\|php[s34]?\\)\"" + :type 'boolean + :set (lambda (sym val) + (set-default sym val) + (if (and val (boundp 'speedbar)) + (speedbar-add-supported-extension + "\\.\\(inc\\|php[s34]?\\|phtml\\)"))) + :group 'php) + +(defcustom php-mode-speedbar-open nil + "Normally `php-mode' starts with the speedbar closed. +Turning this on will open it whenever `php-mode' is loaded." + :type 'boolean + :set (lambda (sym val) + (set-default sym val) + (when val + (speedbar 1))) + :group 'php) + +(defvar php-imenu-generic-expression + '( + ("Private Methods" + "^\\s-*\\(?:\\(?:abstract\\|final\\)\\s-+\\)?private\\s-+\\(?:static\\s-+\\)?function\\s-+\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" 1) + ("Protected Methods" + "^\\s-*\\(?:\\(?:abstract\\|final\\)\\s-+\\)?protected\\s-+\\(?:static\\s-+\\)?function\\s-+\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" 1) + ("Public Methods" + "^\\s-*\\(?:\\(?:abstract\\|final\\)\\s-+\\)?public\\s-+\\(?:static\\s-+\\)?function\\s-+\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" 1) + ("Classes" + "^\\s-*class\\s-+\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*" 1) + ("All Functions" + "^\\s-*\\(?:\\(?:abstract\\|final\\|private\\|protected\\|public\\|static\\)\\s-+\\)*function\\s-+\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" 1) + ) + "Imenu generic expression for PHP Mode. See `imenu-generic-expression'." + ) + +(defcustom php-manual-url "http://www.php.net/manual/en/" + "URL at which to find PHP manual. +You can replace \"en\" with your ISO language code." + :type 'string + :group 'php) + +(defcustom php-search-url "http://www.php.net/" + "URL at which to search for documentation on a word." + :type 'string + :group 'php) + +(defcustom php-completion-file "" + "Path to the file which contains the function names known to PHP." + :type 'string + :group 'php) + +(defcustom php-manual-path "" + "Path to the directory which contains the PHP manual." + :type 'string + :group 'php) + +;;;###autoload +(defcustom php-file-patterns '("\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'") + "List of file patterns for which to automatically invoke `php-mode'." + :type '(repeat (regexp :tag "Pattern")) + :set (lambda (sym val) + (set-default sym val) + (let ((php-file-patterns-temp val)) + (while php-file-patterns-temp + (add-to-list 'auto-mode-alist + (cons (car php-file-patterns-temp) 'php-mode)) + (setq php-file-patterns-temp (cdr php-file-patterns-temp))))) + :group 'php) + +(defcustom php-mode-hook nil + "List of functions to be executed on entry to `php-mode'." + :type 'hook + :group 'php) + +(defcustom php-mode-pear-hook nil + "Hook called when a PHP PEAR file is opened with `php-mode'." + :type 'hook + :group 'php) + +(defcustom php-mode-force-pear nil + "Normally PEAR coding rules are enforced only when the filename contains \"PEAR.\" +Turning this on will force PEAR rules on all PHP files." + :type 'boolean + :group 'php) + +(defconst php-mode-modified "2008-11-04" + "PHP Mode build date.") + +(defun php-mode-version () + "Display string describing the version of PHP mode." + (interactive) + (message "PHP mode %s of %s" + php-mode-version-number php-mode-modified)) + +(defconst php-beginning-of-defun-regexp + "^\\s-*\\(?:\\(?:abstract\\|final\\|private\\|protected\\|public\\|static\\)\\s-+\\)*function\\s-+&?\\(\\(?:\\sw\\|\\s_\\)+\\)\\s-*(" + "Regular expression for a PHP function.") + +(defun php-beginning-of-defun (&optional arg) + "Move to the beginning of the ARGth PHP function from point. +Implements PHP version of `beginning-of-defun-function'." + (interactive "p") + (let ((arg (or arg 1))) + (while (> arg 0) + (re-search-backward php-beginning-of-defun-regexp + nil 'noerror) + (setq arg (1- arg))) + (while (< arg 0) + (end-of-line 1) + (let ((opoint (point))) + (beginning-of-defun 1) + (forward-list 2) + (forward-line 1) + (if (eq opoint (point)) + (re-search-forward php-beginning-of-defun-regexp + nil 'noerror)) + (setq arg (1+ arg)))))) + +(defun php-end-of-defun (&optional arg) + "Move the end of the ARGth PHP function from point. +Implements PHP befsion of `end-of-defun-function' + +See `php-beginning-of-defun'." + (interactive "p") + (php-beginning-of-defun (- (or arg 1)))) + + +(defvar php-warned-bad-indent nil) +(make-variable-buffer-local 'php-warned-bad-indent) + +;; Do it but tell it is not good if html tags in buffer. +(defun php-check-html-for-indentation () + (let ((html-tag-re "^\\s-*") + (here (point))) + (if (not (or (re-search-forward html-tag-re (line-end-position) t) + (re-search-backward html-tag-re (line-beginning-position) t))) + t + (goto-char here) + (setq php-warned-bad-indent t) + (lwarn 'php-indent :warning + "\n\t%s\n\t%s\n\t%s\n" + "Indentation fails badly with mixed HTML and PHP." + "Look for an Emacs Lisp library that supports \"multiple" + "major modes\" like mumamo, mmm-mode or multi-mode.") + nil))) + +(defun php-cautious-indent-region (start end &optional quiet) + (if (or php-warned-bad-indent + (php-check-html-for-indentation)) + (funcall 'c-indent-region start end quiet))) + +(defun php-cautious-indent-line () + (if (or php-warned-bad-indent + (php-check-html-for-indentation)) + (funcall 'c-indent-line))) + +(defconst php-tags '("" "[^_]?") + '(1 font-lock-constant-face)) + + ;; Fontify keywords + (cons + (concat "[^_$]?\\<\\(" php-keywords "\\)\\>[^_]?") + '(1 font-lock-keyword-face)) + + ;; Fontify keywords and targets, and case default tags. + (list "\\<\\(break\\|case\\|continue\\)\\>\\s-+\\(-?\\sw+\\)?" + '(1 font-lock-keyword-face) '(2 font-lock-constant-face t t)) + ;; This must come after the one for keywords and targets. + '(":" ("^\\s-+\\(\\sw+\\)\\s-+\\s-+$" + (beginning-of-line) (end-of-line) + (1 font-lock-constant-face))) + + ;; treat 'print' as keyword only when not used like a function name + '("\\" . font-lock-keyword-face) + + ;; Fontify PHP tag + (cons php-tags-key font-lock-preprocessor-face) + + ;; Fontify ASP-style tag + '("<\\%\\(=\\)?" . font-lock-preprocessor-face) + '("\\%>" . font-lock-preprocessor-face) + + ) + "Subdued level highlighting for PHP mode.") + +(defconst php-font-lock-keywords-2 + (append + php-font-lock-keywords-1 + (list + + ;; class declaration + '("\\<\\(class\\|interface\\)\\s-+\\(\\sw+\\)?" + (1 font-lock-keyword-face) (2 font-lock-type-face nil t)) + ;; handle several words specially, to include following word, + ;; thereby excluding it from unknown-symbol checks later + ;; FIX to handle implementing multiple + ;; currently breaks on "class Foo implements Bar, Baz" + '("\\<\\(new\\|extends\\|implements\\)\\s-+\\$?\\(\\sw+\\)" + (1 font-lock-keyword-face) (2 font-lock-type-face)) + + ;; function declaration + '("\\<\\(function\\)\\s-+&?\\(\\sw+\\)\\s-*(" + (1 font-lock-keyword-face) + (2 font-lock-function-name-face nil t)) + + ;; class hierarchy + '("\\<\\(self\\|parent\\)\\>" (1 font-lock-constant-face nil nil)) + + ;; method and variable features + '("\\<\\(private\\|protected\\|public\\)\\s-+\\$?\\sw+" + (1 font-lock-keyword-face)) + + ;; method features + '("^\\s-*\\(abstract\\|static\\|final\\)\\s-+\\$?\\sw+" + (1 font-lock-keyword-face)) + + ;; variable features + '("^\\s-*\\(static\\|const\\)\\s-+\\$?\\sw+" + (1 font-lock-keyword-face)) + )) + "Medium level highlighting for PHP mode.") + +(defconst php-font-lock-keywords-3 + (append + php-font-lock-keywords-2 + (list + + ;; or for HTML + ;;'(" ]*>" . font-lock-constant-face) + ;;'("]*" . font-lock-constant-face) + ;;'(" + '("<[^>]*\\(>\\)" (1 font-lock-constant-face)) + + ;; HTML tags + '("\\(<[a-z]+\\)[[:space:]]+\\([a-z:]+=\\)[^>]*?" (1 font-lock-constant-face) (2 font-lock-constant-face) ) + '("\"[[:space:]]+\\([a-z:]+=\\)" (1 font-lock-constant-face)) + + ;; HTML entities + ;;'("&\\w+;" . font-lock-variable-name-face) + + ;; warn about '$' immediately after -> + '("\\$\\sw+->\\s-*\\(\\$\\)\\(\\sw+\\)" + (1 font-lock-warning-face) (2 php-default-face)) + + ;; warn about $word.word -- it could be a valid concatenation, + ;; but without any spaces we'll assume $word->word was meant. + '("\\$\\sw+\\(\\.\\)\\sw" + 1 font-lock-warning-face) + + ;; Warn about ==> instead of => + '("==+>" . font-lock-warning-face) + + ;; exclude casts from bare-word treatment (may contain spaces) + `(,(concat "(\\s-*\\(" php-types "\\)\\s-*)") + 1 font-lock-type-face) + + ;; PHP5: function declarations may contain classes as parameters type + `(,(concat "[(,]\\s-*\\(\\sw+\\)\\s-+&?\\$\\sw+\\>") + 1 font-lock-type-face) + + ;; Fontify variables and function calls + '("\\$\\(this\\|that\\)\\W" (1 font-lock-constant-face nil nil)) + `(,(concat "\\$\\(" php-superglobals "\\)\\W") + (1 font-lock-constant-face nil nil)) ;; $_GET & co + '("\\$\\(\\sw+\\)" (1 font-lock-variable-name-face)) ;; $variable + '("->\\(\\sw+\\)" (1 font-lock-variable-name-face t t)) ;; ->variable + '("->\\(\\sw+\\)\\s-*(" . (1 php-default-face t t)) ;; ->function_call + '("\\(\\sw+\\)::\\sw+\\s-*(?" . (1 font-lock-type-face)) ;; class::member + '("::\\(\\sw+\\>[^(]\\)" . (1 php-default-face)) ;; class::constant + '("\\<\\sw+\\s-*[[(]" . php-default-face) ;; word( or word[ + '("\\<[0-9]+" . php-default-face) ;; number (also matches word) + + ;; Warn on any words not already fontified + '("\\<\\sw+\\>" . font-lock-warning-face) + + )) + "Gauchy level highlighting for PHP mode.") + +(provide 'php-mode) + +;;; php-mode.el ends here diff --git a/emacs.d/elpa/php-mode-1.5.0/php-mode.elc b/emacs.d/elpa/php-mode-1.5.0/php-mode.elc new file mode 100644 index 0000000000000000000000000000000000000000..298a95c543feb0af19dbd3f0a6b0ae9360d80b6f GIT binary patch literal 21209 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 Vxx$~f;OjbX5ZO$Aq+)UIe*t?@CSL#m literal 0 HcmV?d00001