~mterry/ubuntu/natty/libofx/libofx.new-upstream-benoit-sru

« back to all changes in this revision

Viewing changes to doc/html/fx-0_88_82_2lib_2getopt_8c-source.html

  • Committer: Bazaar Package Importer
  • Author(s): Saïvann Carignan
  • Date: 2008-02-06 17:25:16 UTC
  • mto: (3.1.2 lenny)
  • mto: This revision was merged to the branch mainline in revision 11.
  • Revision ID: james.westby@ubuntu.com-20080206172516-bnzxb29igye8um9h
Tags: upstream-0.9.0
Import upstream version 0.9.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
 
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
 
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
<title>LibOFX: getopt.c Source File</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
<link href="tabs.css" rel="stylesheet" type="text/css">
6
6
</head><body>
7
 
<!-- Generated by Doxygen 1.4.6 -->
 
7
<!-- Generated by Doxygen 1.5.3 -->
8
8
<div class="tabs">
9
9
  <ul>
10
10
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11
11
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
12
12
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
13
 
    <li id="current"><a href="files.html"><span>Files</span></a></li>
14
 
  </ul></div>
15
 
<div class="tabs">
16
 
  <ul>
17
 
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
18
 
    <li><a href="globals.html"><span>Globals</span></a></li>
19
 
  </ul></div>
 
13
    <li class="current"><a href="files.html"><span>Files</span></a></li>
 
14
  </ul>
 
15
</div>
20
16
<h1>getopt.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* Getopt for GNU.</span>
21
17
<a name="l00002"></a>00002 <span class="comment">   NOTE: getopt is now part of the C library, so if you don't know what</span>
22
18
<a name="l00003"></a>00003 <span class="comment">   "Keep this file name-space clean" means, talk to drepper@gnu.org</span>
668
664
<a name="l00649"></a>00649 
669
665
<a name="l00650"></a>00650       <span class="comment">/* Test all long options for either exact match</span>
670
666
<a name="l00651"></a>00651 <span class="comment">         or abbreviated matches.  */</span>
671
 
<a name="l00652"></a>00652       <span class="keywordflow">for</span> (p = longopts, option_index = 0; p-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>; p++, option_index++)
672
 
<a name="l00653"></a>00653         <span class="keywordflow">if</span> (!strncmp (p-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>, nextchar, nameend - nextchar))
 
667
<a name="l00652"></a>00652       <span class="keywordflow">for</span> (p = longopts, option_index = 0; p-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>; p++, option_index++)
 
668
<a name="l00653"></a>00653         <span class="keywordflow">if</span> (!strncmp (p-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>, nextchar, nameend - nextchar))
673
669
<a name="l00654"></a>00654           {
674
 
<a name="l00655"></a>00655             if ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) (nameend - nextchar)
675
 
<a name="l00656"></a>00656                 == (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) strlen (p-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>))
 
670
<a name="l00655"></a>00655             <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) (nameend - nextchar)
 
671
<a name="l00656"></a>00656                 == (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) strlen (p-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>))
676
672
<a name="l00657"></a>00657               {
677
673
<a name="l00658"></a>00658                 <span class="comment">/* Exact match found.  */</span>
678
674
<a name="l00659"></a>00659                 pfound = p;
687
683
<a name="l00668"></a>00668                 indfound = option_index;
688
684
<a name="l00669"></a>00669               }
689
685
<a name="l00670"></a>00670             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (long_only
690
 
<a name="l00671"></a>00671                      || pfound-&gt;<a class="code" href="structoption.html#0f7e57456d9954fb17d182bcfd2ef54c">has_arg</a> != p-&gt;<a class="code" href="structoption.html#0f7e57456d9954fb17d182bcfd2ef54c">has_arg</a>
691
 
<a name="l00672"></a>00672                      || pfound-&gt;<a class="code" href="structoption.html#8f77295b521f0c6c955608190229d4a3">flag</a> != p-&gt;<a class="code" href="structoption.html#8f77295b521f0c6c955608190229d4a3">flag</a>
692
 
<a name="l00673"></a>00673                      || pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a> != p-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>)
 
686
<a name="l00671"></a>00671                      || pfound-&gt;<a class="code" href="structoption.html#90d7ee9a51eea5c002682dbd0af149e4">has_arg</a> != p-&gt;<a class="code" href="structoption.html#90d7ee9a51eea5c002682dbd0af149e4">has_arg</a>
 
687
<a name="l00672"></a>00672                      || pfound-&gt;<a class="code" href="structoption.html#b366eea5fe7be25c1928328ba715e353">flag</a> != p-&gt;<a class="code" href="structoption.html#b366eea5fe7be25c1928328ba715e353">flag</a>
 
688
<a name="l00673"></a>00673                      || pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a> != p-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>)
693
689
<a name="l00674"></a>00674               <span class="comment">/* Second or later nonexact match found.  */</span>
694
690
<a name="l00675"></a>00675               ambig = 1;
695
691
<a name="l00676"></a>00676           }
713
709
<a name="l00694"></a>00694             {
714
710
<a name="l00695"></a>00695               <span class="comment">/* Don't test has_arg with &gt;, because some C compilers don't</span>
715
711
<a name="l00696"></a>00696 <span class="comment">                 allow it to be used on enums.  */</span>
716
 
<a name="l00697"></a>00697               <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#0f7e57456d9954fb17d182bcfd2ef54c">has_arg</a>)
 
712
<a name="l00697"></a>00697               <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#90d7ee9a51eea5c002682dbd0af149e4">has_arg</a>)
717
713
<a name="l00698"></a>00698                 optarg = nameend + 1;
718
714
<a name="l00699"></a>00699               <span class="keywordflow">else</span>
719
715
<a name="l00700"></a>00700                 {
723
719
<a name="l00704"></a>00704                         <span class="comment">/* --option */</span>
724
720
<a name="l00705"></a>00705                         fprintf (stderr,
725
721
<a name="l00706"></a>00706                                  _(<span class="stringliteral">"%s: option `--%s' doesn't allow an argument\n"</span>),
726
 
<a name="l00707"></a>00707                                  argv[0], pfound-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>);
 
722
<a name="l00707"></a>00707                                  argv[0], pfound-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>);
727
723
<a name="l00708"></a>00708                       <span class="keywordflow">else</span>
728
724
<a name="l00709"></a>00709                         <span class="comment">/* +option or -option */</span>
729
725
<a name="l00710"></a>00710                         fprintf (stderr,
730
726
<a name="l00711"></a>00711                                  _(<span class="stringliteral">"%s: option `%c%s' doesn't allow an argument\n"</span>),
731
 
<a name="l00712"></a>00712                                  argv[0], argv[optind - 1][0], pfound-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>);
 
727
<a name="l00712"></a>00712                                  argv[0], argv[optind - 1][0], pfound-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>);
732
728
<a name="l00713"></a>00713                     }
733
729
<a name="l00714"></a>00714 
734
730
<a name="l00715"></a>00715                   nextchar += strlen (nextchar);
735
731
<a name="l00716"></a>00716 
736
 
<a name="l00717"></a>00717                   optopt = pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>;
 
732
<a name="l00717"></a>00717                   optopt = pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>;
737
733
<a name="l00718"></a>00718                   <span class="keywordflow">return</span> <span class="charliteral">'?'</span>;
738
734
<a name="l00719"></a>00719                 }
739
735
<a name="l00720"></a>00720             }
740
 
<a name="l00721"></a>00721           <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#0f7e57456d9954fb17d182bcfd2ef54c">has_arg</a> == 1)
 
736
<a name="l00721"></a>00721           <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#90d7ee9a51eea5c002682dbd0af149e4">has_arg</a> == 1)
741
737
<a name="l00722"></a>00722             {
742
738
<a name="l00723"></a>00723               <span class="keywordflow">if</span> (optind &lt; argc)
743
739
<a name="l00724"></a>00724                 optarg = argv[optind++];
748
744
<a name="l00729"></a>00729                            _(<span class="stringliteral">"%s: option `%s' requires an argument\n"</span>),
749
745
<a name="l00730"></a>00730                            argv[0], argv[optind - 1]);
750
746
<a name="l00731"></a>00731                   nextchar += strlen (nextchar);
751
 
<a name="l00732"></a>00732                   optopt = pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>;
 
747
<a name="l00732"></a>00732                   optopt = pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>;
752
748
<a name="l00733"></a>00733                   <span class="keywordflow">return</span> optstring[0] == <span class="charliteral">':'</span> ? <span class="charliteral">':'</span> : <span class="charliteral">'?'</span>;
753
749
<a name="l00734"></a>00734                 }
754
750
<a name="l00735"></a>00735             }
755
751
<a name="l00736"></a>00736           nextchar += strlen (nextchar);
756
752
<a name="l00737"></a>00737           <span class="keywordflow">if</span> (longind != NULL)
757
753
<a name="l00738"></a>00738             *longind = option_index;
758
 
<a name="l00739"></a>00739           <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#8f77295b521f0c6c955608190229d4a3">flag</a>)
 
754
<a name="l00739"></a>00739           <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#b366eea5fe7be25c1928328ba715e353">flag</a>)
759
755
<a name="l00740"></a>00740             {
760
 
<a name="l00741"></a>00741               *(pfound-&gt;<a class="code" href="structoption.html#8f77295b521f0c6c955608190229d4a3">flag</a>) = pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>;
 
756
<a name="l00741"></a>00741               *(pfound-&gt;<a class="code" href="structoption.html#b366eea5fe7be25c1928328ba715e353">flag</a>) = pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>;
761
757
<a name="l00742"></a>00742               <span class="keywordflow">return</span> 0;
762
758
<a name="l00743"></a>00743             }
763
 
<a name="l00744"></a>00744           <span class="keywordflow">return</span> pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>;
 
759
<a name="l00744"></a>00744           <span class="keywordflow">return</span> pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>;
764
760
<a name="l00745"></a>00745         }
765
761
<a name="l00746"></a>00746 
766
762
<a name="l00747"></a>00747       <span class="comment">/* Can't find it as a long option.  If this is not getopt_long_only,</span>
860
856
<a name="l00841"></a>00841 
861
857
<a name="l00842"></a>00842         <span class="comment">/* Test all long options for either exact match</span>
862
858
<a name="l00843"></a>00843 <span class="comment">           or abbreviated matches.  */</span>
863
 
<a name="l00844"></a>00844         <span class="keywordflow">for</span> (p = longopts, option_index = 0; p-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>; p++, option_index++)
864
 
<a name="l00845"></a>00845           <span class="keywordflow">if</span> (!strncmp (p-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>, nextchar, nameend - nextchar))
 
859
<a name="l00844"></a>00844         <span class="keywordflow">for</span> (p = longopts, option_index = 0; p-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>; p++, option_index++)
 
860
<a name="l00845"></a>00845           <span class="keywordflow">if</span> (!strncmp (p-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>, nextchar, nameend - nextchar))
865
861
<a name="l00846"></a>00846             {
866
 
<a name="l00847"></a>00847               if ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) (nameend - nextchar) == strlen (p-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>))
 
862
<a name="l00847"></a>00847               <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) (nameend - nextchar) == strlen (p-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>))
867
863
<a name="l00848"></a>00848                 {
868
864
<a name="l00849"></a>00849                   <span class="comment">/* Exact match found.  */</span>
869
865
<a name="l00850"></a>00850                   pfound = p;
897
893
<a name="l00878"></a>00878               {
898
894
<a name="l00879"></a>00879                 <span class="comment">/* Don't test has_arg with &gt;, because some C compilers don't</span>
899
895
<a name="l00880"></a>00880 <span class="comment">                   allow it to be used on enums.  */</span>
900
 
<a name="l00881"></a>00881                 <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#0f7e57456d9954fb17d182bcfd2ef54c">has_arg</a>)
 
896
<a name="l00881"></a>00881                 <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#90d7ee9a51eea5c002682dbd0af149e4">has_arg</a>)
901
897
<a name="l00882"></a>00882                   optarg = nameend + 1;
902
898
<a name="l00883"></a>00883                 <span class="keywordflow">else</span>
903
899
<a name="l00884"></a>00884                   {
904
900
<a name="l00885"></a>00885                     <span class="keywordflow">if</span> (print_errors)
905
901
<a name="l00886"></a>00886                       fprintf (stderr, _(<span class="stringliteral">"\</span>
906
902
<a name="l00887"></a>00887 <span class="stringliteral">%s: option `-W %s' doesn't allow an argument\n"</span>),
907
 
<a name="l00888"></a>00888                                argv[0], pfound-&gt;<a class="code" href="structoption.html#5c8f7c2972b277e010f9800cc9bc5fb0">name</a>);
 
903
<a name="l00888"></a>00888                                argv[0], pfound-&gt;<a class="code" href="structoption.html#92c850a23c7828c1dba453bf8d15e1f0">name</a>);
908
904
<a name="l00889"></a>00889 
909
905
<a name="l00890"></a>00890                     nextchar += strlen (nextchar);
910
906
<a name="l00891"></a>00891                     <span class="keywordflow">return</span> <span class="charliteral">'?'</span>;
911
907
<a name="l00892"></a>00892                   }
912
908
<a name="l00893"></a>00893               }
913
 
<a name="l00894"></a>00894             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#0f7e57456d9954fb17d182bcfd2ef54c">has_arg</a> == 1)
 
909
<a name="l00894"></a>00894             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#90d7ee9a51eea5c002682dbd0af149e4">has_arg</a> == 1)
914
910
<a name="l00895"></a>00895               {
915
911
<a name="l00896"></a>00896                 <span class="keywordflow">if</span> (optind &lt; argc)
916
912
<a name="l00897"></a>00897                   optarg = argv[optind++];
927
923
<a name="l00908"></a>00908             nextchar += strlen (nextchar);
928
924
<a name="l00909"></a>00909             <span class="keywordflow">if</span> (longind != NULL)
929
925
<a name="l00910"></a>00910               *longind = option_index;
930
 
<a name="l00911"></a>00911             <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#8f77295b521f0c6c955608190229d4a3">flag</a>)
 
926
<a name="l00911"></a>00911             <span class="keywordflow">if</span> (pfound-&gt;<a class="code" href="structoption.html#b366eea5fe7be25c1928328ba715e353">flag</a>)
931
927
<a name="l00912"></a>00912               {
932
 
<a name="l00913"></a>00913                 *(pfound-&gt;<a class="code" href="structoption.html#8f77295b521f0c6c955608190229d4a3">flag</a>) = pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>;
 
928
<a name="l00913"></a>00913                 *(pfound-&gt;<a class="code" href="structoption.html#b366eea5fe7be25c1928328ba715e353">flag</a>) = pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>;
933
929
<a name="l00914"></a>00914                 <span class="keywordflow">return</span> 0;
934
930
<a name="l00915"></a>00915               }
935
 
<a name="l00916"></a>00916             <span class="keywordflow">return</span> pfound-&gt;<a class="code" href="structoption.html#87e05ca729a19b01fcef8db8320f1930">val</a>;
 
931
<a name="l00916"></a>00916             <span class="keywordflow">return</span> pfound-&gt;<a class="code" href="structoption.html#13bd155ec3b405d29c41ab8d0793be11">val</a>;
936
932
<a name="l00917"></a>00917           }
937
933
<a name="l00918"></a>00918           nextchar = NULL;
938
934
<a name="l00919"></a>00919           <span class="keywordflow">return</span> <span class="charliteral">'W'</span>;   <span class="comment">/* Let the application handle it.   */</span>
1007
1003
<a name="l00988"></a>00988 <span class="comment">   the above definition of `getopt'.  */</span>
1008
1004
<a name="l00989"></a>00989 
1009
1005
<a name="l00990"></a>00990 <span class="keywordtype">int</span>
1010
 
<a name="l00991"></a>00991 <a class="code" href="ofx2qif_8c.html#28052c36c3b61c6c0eaa18f5d226118f">main</a> (argc, argv)
 
1006
<a name="l00991"></a>00991 <a class="code" href="ofx2qif_8c.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (argc, argv)
1011
1007
<a name="l00992"></a>00992      int argc;
1012
1008
<a name="l00993"></a>00993      <span class="keywordtype">char</span> **argv;
1013
1009
<a name="l00994"></a>00994 {
1072
1068
<a name="l01053"></a>01053 }
1073
1069
<a name="l01054"></a>01054 
1074
1070
<a name="l01055"></a>01055 <span class="preprocessor">#endif </span><span class="comment">/* TEST */</span>
1075
 
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Aug 25 13:25:22 2006 for LibOFX by&nbsp;
 
1071
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Mon Nov 19 20:27:58 2007 for LibOFX by&nbsp;
1076
1072
<a href="http://www.doxygen.org/index.html">
1077
 
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
 
1073
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
1078
1074
</body>
1079
1075
</html>