VirtualBox

Changeset 43738 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Oct 25, 2012 1:09:26 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
81640
Message:

Fe/VBoxBallonCtrl: More argv handling.

Location:
trunk/src/VBox/Frontends/VBoxBalloonCtrl
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxBalloonCtrl/VBoxModAPIMonitor.cpp

    r43734 r43738  
    389389}
    390390
    391 static DECLCALLBACK(int) VBoxModAPIMonitorOption(int argc, char *argv[])
     391static DECLCALLBACK(int) VBoxModAPIMonitorOption(int argc, char *argv[], int *piConsumed)
    392392{
    393393    if (!argc) /* Take a shortcut. */
    394394        return -1;
    395395
    396     AssertPtrReturn(argv, VERR_INVALID_PARAMETER);
     396    AssertPtrReturn(argv, VERR_INVALID_POINTER);
     397    AssertPtrReturn(piConsumed, VERR_INVALID_POINTER);
    397398
    398399    RTGETOPTSTATE GetState;
     
    441442                break;
    442443        }
    443     }
     444
     445        /* At the moment we only process one option at a time. */
     446        break;
     447    }
     448
     449    *piConsumed += GetState.iNext - 1;
    444450
    445451    return rc;
  • trunk/src/VBox/Frontends/VBoxBalloonCtrl/VBoxModBallooning.cpp

    r43728 r43738  
    346346}
    347347
    348 static DECLCALLBACK(int) VBoxModBallooningOption(int argc, char *argv[])
     348static DECLCALLBACK(int) VBoxModBallooningOption(int argc, char *argv[], int *piConsumed)
    349349{
    350350    if (!argc) /* Take a shortcut. */
    351351        return -1;
    352352
    353     AssertPtrReturn(argv, VERR_INVALID_PARAMETER);
     353    AssertPtrReturn(argv, VERR_INVALID_POINTER);
     354    AssertPtrReturn(piConsumed, VERR_INVALID_POINTER);
    354355
    355356    RTGETOPTSTATE GetState;
     
    400401                break;
    401402        }
    402     }
     403
     404        /* At the moment we only process one option at a time. */
     405        break;
     406    }
     407
     408    *piConsumed += GetState.iNext - 1;
    403409
    404410    return rc;
  • trunk/src/VBox/Frontends/VBoxBalloonCtrl/VBoxWatchdog.cpp

    r42211 r43738  
    10361036                    for (unsigned j = 0; !fFound && j < RT_ELEMENTS(g_aModules); j++)
    10371037                    {
    1038                         rc = g_aModules[j].pDesc->pfnOption(1 /* Current value only. */,
    1039                                                             &argv[GetState.iNext - 1]);
     1038                        int iArgCnt = argc - GetState.iNext + 1;
     1039                        int iArgIndex = GetState.iNext - 1;
     1040                        int iConsumed = 0;
     1041                        rc = g_aModules[j].pDesc->pfnOption(iArgCnt,
     1042                                                            &argv[iArgIndex],
     1043                                                            &iConsumed);
    10401044                        fFound = rc == 0;
    10411045                        if (fFound)
     1046                        {
     1047                            GetState.iNext += iConsumed;
    10421048                            break;
     1049                        }
    10431050                        if (rc != -1)
    10441051                            return rc;
  • trunk/src/VBox/Frontends/VBoxBalloonCtrl/VBoxWatchdogInternal.h

    r43734 r43738  
    144144     * @param   argc        Argument count.
    145145     * @param   argv        Arguments.
    146      */
    147     DECLCALLBACKMEMBER(int, pfnOption)(int argc, char *argv[]);
     146     * @param   piConsumed  How many parameters this callback consumed from the
     147     *                      remaining arguments passed in.
     148     */
     149    DECLCALLBACKMEMBER(int, pfnOption)(int argc, char *argv[], int *piConsumed);
    148150
    149151    /**
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette