arg.c 1022 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* $Id$ */
  2. /*
  3. * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
  4. *
  5. * This product is part of the Amsterdam Compiler Kit.
  6. *
  7. * Permission to use, sell, duplicate or disclose this software must be
  8. * obtained in writing. Requests for such permissions may be sent to
  9. *
  10. * Dr. Andrew S. Tanenbaum
  11. * Wiskundig Seminarium
  12. * Vrije Universiteit
  13. * Postbox 7161
  14. * 1007 MC Amsterdam
  15. * The Netherlands
  16. *
  17. */
  18. /* Author: J.W. Stevenson */
  19. /* function argc:integer; extern; */
  20. /* function argv(i:integer):string; extern; */
  21. /* procedure argshift; extern; */
  22. /* function environ(i:integer):string; extern; */
  23. extern int _pargc;
  24. extern char **_pargv;
  25. extern char **_penvp;
  26. int argc() {
  27. return(_pargc);
  28. }
  29. char *argv(i) {
  30. if (i >= _pargc)
  31. return(0);
  32. return(_pargv[i]);
  33. }
  34. argshift() {
  35. if (_pargc > 1) {
  36. --_pargc;
  37. _pargv++;
  38. }
  39. }
  40. char *environ(i) {
  41. char **p; char *q;
  42. if (p = _penvp)
  43. while (q = *p++)
  44. if (i-- < 0)
  45. return(q);
  46. return(0);
  47. }