!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16. PHP/5.4.16 

uname -a: Linux roko-bkp 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 

uid=48(apache) gid=48(apache) groups=48(apache),1003(webmaster) 

Safe-mode: OFF (not secure)

/usr/share/doc/git-1.8.3.1/technical/   drwxr-xr-x
Free 9.18 GB of 93.48 GB (9.82%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     api-builtin.html (19.43 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
builtin API

Adding a new built-in

There are 4 things to do to add a built-in command implementation to Git:

  1. Define the implementation of the built-in command foo with signature:

    int cmd_foo(int argc, const char **argv, const char *prefix);
  2. Add the external declaration for the function to builtin.h.

  3. Add the command to commands[] table in handle_internal_command(), defined in git.c. The entry should look like:

    { "foo", cmd_foo, <options> },

    where options is the bitwise-or of:

    RUN_SETUP

    Make sure there is a Git directory to work on, and if there is a work tree, chdir to the top of it if the command was invoked in a subdirectory. If there is no work tree, no chdir() is done.

    USE_PAGER

    If the standard output is connected to a tty, spawn a pager and feed our output to it.

    NEED_WORK_TREE

    Make sure there is a work tree, i.e. the command cannot act on bare repositories. This only makes sense when RUN_SETUP is also set.

  4. Add builtin-foo.o to BUILTIN_OBJS in Makefile.

Additionally, if foo is a new command, there are 3 more things to do:

  1. Add tests to t/ directory.

  2. Write documentation in Documentation/git-foo.txt.

  3. Add an entry for git-foo to command-list.txt.

  4. Add an entry for /git-foo to .gitignore.

How a built-in is called

The implementation cmd_foo() takes three parameters, argc, argv, and `prefix. The first two are similar to what main() of a standalone command would be called with.

When RUN_SETUP is specified in the commands[] table, and when you were started from a subdirectory of the work tree, cmd_foo() is called after chdir(2) to the top of the work tree, and prefix gets the path to the subdirectory the command started from. This allows you to convert a user-supplied pathname (typically relative to that directory) to a pathname relative to the top of the work tree.

The return value from cmd_foo() becomes the exit status of the command.



:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0042 ]--