Changeset 3309 for libcaca/trunk


Ignore:
Timestamp:
Nov 7, 2008, 8:13:57 AM (11 years ago)
Author:
bsittler
Message:

handle argument-parsing exceptions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca-php/examples/img2txt.php

    r3308 r3309  
    268268                );
    269269
    270         while($opt_and_arg = mygetopt("W:H:f:d:g:b:c:hvx:y:", array_keys($long_options)))
    271         {
    272                 $opt = $opt_and_arg[0];
    273                 $arg = $opt_and_arg[1];
    274                 if((substr($opt, 0, 2) == '--')
    275                         &&
    276                         array_key_exists(substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : ''), $long_options))
     270        try {
     271                while($opt_and_arg = mygetopt("W:H:f:d:g:b:c:hvx:y:", array_keys($long_options)))
    277272                {
    278                         $opt = '-' . $long_options[substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : '')];
     273                        $opt = $opt_and_arg[0];
     274                        $arg = $opt_and_arg[1];
     275                        if((substr($opt, 0, 2) == '--')
     276                                &&
     277                                array_key_exists(substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : ''), $long_options))
     278                        {
     279                                $opt = '-' . $long_options[substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : '')];
     280                        }
     281                        switch($opt)
     282                        {
     283                        case '-W': /* --width */
     284                                $cols = intval($arg);
     285                                break;
     286                        case '-H': /* --height */
     287                                $lines = intval($arg);
     288                                break;
     289                        case '-x': /* --width */
     290                                $font_width = intval($arg);
     291                                break;
     292                        case '-y': /* --height */
     293                                $font_height = intval($arg);
     294                                break;
     295                        case '-f': /* --format */
     296                                $format = $arg;
     297                                break;
     298                        case '-d': /* --dither */
     299                                $dither = $arg;
     300                                break;
     301                        case '-g': /* --gamma */
     302                                $gamma = floatval($arg);
     303                                break;
     304                        case '-b': /* --brightness */
     305                                $brightness = floatval($arg);
     306                                break;
     307                        case '-c': /* --contrast */
     308                                $contrast = floatval($arg);
     309                                break;
     310                        case '-h': /* --help */
     311                                usage($argc, $argv);
     312                                return 0;
     313                        case '-v': /* --version */
     314                                version();
     315                                return 0;
     316                        default:
     317                                return 1;
     318                        }
    279319                }
    280                 switch($opt)
    281                 {
    282                 case '-W': /* --width */
    283                         $cols = intval($arg);
    284                         break;
    285                 case '-H': /* --height */
    286                         $lines = intval($arg);
    287                         break;
    288                 case '-x': /* --width */
    289                         $font_width = intval($arg);
    290                         break;
    291                 case '-y': /* --height */
    292                         $font_height = intval($arg);
    293                         break;
    294                 case '-f': /* --format */
    295                         $format = $arg;
    296                         break;
    297                 case '-d': /* --dither */
    298                         $dither = $arg;
    299                         break;
    300                 case '-g': /* --gamma */
    301                         $gamma = floatval($arg);
    302                         break;
    303                 case '-b': /* --brightness */
    304                         $brightness = floatval($arg);
    305                         break;
    306                 case '-c': /* --contrast */
    307                         $contrast = floatval($arg);
    308                         break;
    309                 case '-h': /* --help */
    310                         usage($argc, $argv);
    311                         return 0;
    312                 case '-v': /* --version */
    313                         version();
    314                         return 0;
    315                 default:
    316                         return 1;
    317                 }
     320        }
     321        catch (MygetoptException $e)
     322        {
     323                fprintf(STDERR, "%s", $argv[0] . ": " . $e->getMessage() . "\n");
     324                usage($argc, $argv);
     325                return 2;
    318326        }
    319327
Note: See TracChangeset for help on using the changeset viewer.