home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / a-argv.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  3KB  |  77 lines

  1. /****************************************************************************/
  2. /*                                                                          */
  3. /*                         GNAT COMPILER COMPONENTS                         */
  4. /*                                                                          */
  5. /*                              A - A R G V                                 */
  6. /*                                                                          */
  7. /*                          C Implementation File                           */
  8. /*                                                                          */
  9. /*                            $Revision: 1.5 $                              */
  10. /*                                                                          */
  11. /*        Copyright (c) 1992,1993,1994.1995 NYU, All Rights Reserved        */
  12. /*                                                                          */
  13. /* The GNAT library is free software; you can redistribute it and/or modify */
  14. /* it under terms of the GNU Library General Public License as published by */
  15. /* the Free Software  Foundation; either version 2, or (at your option) any */
  16. /* later version.  The GNAT library is distributed in the hope that it will */
  17. /* be useful, but WITHOUT ANY WARRANTY;  without even  the implied warranty */
  18. /* of MERCHANTABILITY  or  FITNESS FOR  A PARTICULAR PURPOSE.  See the  GNU */
  19. /* Library  General  Public  License for  more  details.  You  should  have */
  20. /* received  a copy of the GNU  Library  General Public License  along with */
  21. /* the GNAT library;  see the file  COPYING.LIB.  If not, write to the Free */
  22. /* Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.        */
  23. /*                                                                          */
  24. /****************************************************************************/
  25.  
  26. /* Routines for accessing command line arguments from both the runtime
  27.    library and from the compiler itself. In the former case, gnat_argc
  28.    and gnat_argv are the original argc and argv values as stored by the
  29.    binder generated main program, and these routines are accessed from
  30.    the Ada.Command_Line package. In the compiler case, gnat_argc and
  31.    gnat_argv are the values as modified by toplev, and these routines
  32.    are accessed from the Osint package. */
  33.  
  34. #include <string.h>
  35.  
  36. /* argc and argv of the main program are saved under gnat_argc and gnat_argv */
  37. int gnat_argc = 0;
  38. char **gnat_argv = (char **) 0;
  39.  
  40. /* ???old names kept for bootstrap problem issues (to be remove after 1.84) */
  41. int static_argc;
  42. char **static_argv;
  43.  
  44. int arg_count () {
  45.  
  46.   /* ??? next line to be removed after 1.84 */
  47.   if (gnat_argv == 0) { gnat_argv = static_argv; gnat_argc = static_argc;}
  48.  
  49.   return gnat_argc;
  50. }
  51. char * *gnat_argval () {
  52.  
  53.   /* ??? next line to be removed after 1.84 */
  54.   if (gnat_argv == 0) { gnat_argv = static_argv; gnat_argc = static_argc;}
  55.  
  56.  return  gnat_argv;
  57. }
  58.  
  59. int len_arg (arg_num)
  60.    int arg_num;
  61. {
  62.   /* ??? next line to be removed after 1.84 */
  63.   if (gnat_argv == 0) { gnat_argv = static_argv; gnat_argc = static_argc;}
  64.  
  65.   return strlen(gnat_argv[arg_num]);
  66. }
  67.  
  68. int fill_arg (a, i)
  69.    char * a;
  70.    int i;
  71. {
  72.   /* ??? next line to be removed after 1.84 */
  73.   if (gnat_argv == 0) { gnat_argv = static_argv; gnat_argc = static_argc;}
  74.  
  75.   strncpy (a, gnat_argv[i], strlen(gnat_argv[i]));
  76. }
  77.