Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
NTShell/inc/ntopt.h@0:4d2c4db9c88e, 2015-03-19 (annotated)
- Committer:
- kcy
- Date:
- Thu Mar 19 06:07:58 2015 +0000
- Revision:
- 0:4d2c4db9c88e
First version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kcy | 0:4d2c4db9c88e | 1 | /** |
kcy | 0:4d2c4db9c88e | 2 | * @file ntopt.h |
kcy | 0:4d2c4db9c88e | 3 | * @author Shinichiro Nakamura |
kcy | 0:4d2c4db9c88e | 4 | * @brief NT-Shell用オプション解析モジュールの定義。 |
kcy | 0:4d2c4db9c88e | 5 | */ |
kcy | 0:4d2c4db9c88e | 6 | |
kcy | 0:4d2c4db9c88e | 7 | /* |
kcy | 0:4d2c4db9c88e | 8 | * =============================================================== |
kcy | 0:4d2c4db9c88e | 9 | * Natural Tiny Shell (NT-Shell) |
kcy | 0:4d2c4db9c88e | 10 | * =============================================================== |
kcy | 0:4d2c4db9c88e | 11 | * Copyright (c) 2010-2012 Shinichiro Nakamura |
kcy | 0:4d2c4db9c88e | 12 | * |
kcy | 0:4d2c4db9c88e | 13 | * Permission is hereby granted, free of charge, to any person |
kcy | 0:4d2c4db9c88e | 14 | * obtaining a copy of this software and associated documentation |
kcy | 0:4d2c4db9c88e | 15 | * files (the "Software"), to deal in the Software without |
kcy | 0:4d2c4db9c88e | 16 | * restriction, including without limitation the rights to use, |
kcy | 0:4d2c4db9c88e | 17 | * copy, modify, merge, publish, distribute, sublicense, and/or |
kcy | 0:4d2c4db9c88e | 18 | * sell copies of the Software, and to permit persons to whom the |
kcy | 0:4d2c4db9c88e | 19 | * Software is furnished to do so, subject to the following |
kcy | 0:4d2c4db9c88e | 20 | * conditions: |
kcy | 0:4d2c4db9c88e | 21 | * |
kcy | 0:4d2c4db9c88e | 22 | * The above copyright notice and this permission notice shall be |
kcy | 0:4d2c4db9c88e | 23 | * included in all copies or substantial portions of the Software. |
kcy | 0:4d2c4db9c88e | 24 | * |
kcy | 0:4d2c4db9c88e | 25 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
kcy | 0:4d2c4db9c88e | 26 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
kcy | 0:4d2c4db9c88e | 27 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
kcy | 0:4d2c4db9c88e | 28 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
kcy | 0:4d2c4db9c88e | 29 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
kcy | 0:4d2c4db9c88e | 30 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
kcy | 0:4d2c4db9c88e | 31 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
kcy | 0:4d2c4db9c88e | 32 | * OTHER DEALINGS IN THE SOFTWARE. |
kcy | 0:4d2c4db9c88e | 33 | * =============================================================== |
kcy | 0:4d2c4db9c88e | 34 | */ |
kcy | 0:4d2c4db9c88e | 35 | |
kcy | 0:4d2c4db9c88e | 36 | #ifndef NTOPT_H |
kcy | 0:4d2c4db9c88e | 37 | #define NTOPT_H |
kcy | 0:4d2c4db9c88e | 38 | |
kcy | 0:4d2c4db9c88e | 39 | #include "ntconf.h" |
kcy | 0:4d2c4db9c88e | 40 | |
kcy | 0:4d2c4db9c88e | 41 | /** |
kcy | 0:4d2c4db9c88e | 42 | * @brief パース可能な最大文字列長。 |
kcy | 0:4d2c4db9c88e | 43 | */ |
kcy | 0:4d2c4db9c88e | 44 | #define NTOPT_TEXT_MAXLEN (NTCONF_EDITOR_MAXLEN) |
kcy | 0:4d2c4db9c88e | 45 | |
kcy | 0:4d2c4db9c88e | 46 | /** |
kcy | 0:4d2c4db9c88e | 47 | * @brief パース可能な最大パラメータ数。 |
kcy | 0:4d2c4db9c88e | 48 | */ |
kcy | 0:4d2c4db9c88e | 49 | #define NTOPT_TEXT_MAXARGS (NTCONF_EDITOR_MAXLEN / 2) |
kcy | 0:4d2c4db9c88e | 50 | |
kcy | 0:4d2c4db9c88e | 51 | /** |
kcy | 0:4d2c4db9c88e | 52 | * @brief コールバック関数。 |
kcy | 0:4d2c4db9c88e | 53 | * |
kcy | 0:4d2c4db9c88e | 54 | * @param argc パラメータの数。 |
kcy | 0:4d2c4db9c88e | 55 | * @param argv パラメータ。 |
kcy | 0:4d2c4db9c88e | 56 | * @param extobj 外部オブジェクト。 |
kcy | 0:4d2c4db9c88e | 57 | * |
kcy | 0:4d2c4db9c88e | 58 | * @return 返値。 |
kcy | 0:4d2c4db9c88e | 59 | */ |
kcy | 0:4d2c4db9c88e | 60 | typedef int (*NTOPT_CALLBACK)(int argc, char **argv, void *extobj); |
kcy | 0:4d2c4db9c88e | 61 | |
kcy | 0:4d2c4db9c88e | 62 | #ifdef __cplusplus |
kcy | 0:4d2c4db9c88e | 63 | extern "C" { |
kcy | 0:4d2c4db9c88e | 64 | #endif |
kcy | 0:4d2c4db9c88e | 65 | |
kcy | 0:4d2c4db9c88e | 66 | /** |
kcy | 0:4d2c4db9c88e | 67 | * @brief 与えられた文字列をデリミタで分割する。 |
kcy | 0:4d2c4db9c88e | 68 | * |
kcy | 0:4d2c4db9c88e | 69 | * @param str 文字列。 |
kcy | 0:4d2c4db9c88e | 70 | * @param func コールバック関数。 |
kcy | 0:4d2c4db9c88e | 71 | * @param extobj 拡張オブジェクト。 |
kcy | 0:4d2c4db9c88e | 72 | * |
kcy | 0:4d2c4db9c88e | 73 | * @return コールバック関数が返した値。 |
kcy | 0:4d2c4db9c88e | 74 | */ |
kcy | 0:4d2c4db9c88e | 75 | int ntopt_parse(const char *str, NTOPT_CALLBACK func, void *extobj); |
kcy | 0:4d2c4db9c88e | 76 | |
kcy | 0:4d2c4db9c88e | 77 | #ifdef __cplusplus |
kcy | 0:4d2c4db9c88e | 78 | } |
kcy | 0:4d2c4db9c88e | 79 | #endif |
kcy | 0:4d2c4db9c88e | 80 | |
kcy | 0:4d2c4db9c88e | 81 | #endif |
kcy | 0:4d2c4db9c88e | 82 | |
kcy | 0:4d2c4db9c88e | 83 |