default.tin 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分。
  4. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  5. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  6. */
  7. #nop 本文件是 xtintin 的一部分,实现了一些默认值处理函数。;
  8. ///=== {
  9. ///// 默认值处理函数:
  10. //
  11. // #@ isEmpty <字符串>
  12. // 判断字符串是否为空,为空则返回真。
  13. // };
  14. #func {isEmpty} {
  15. #local value {%0};
  16. #if { "$value" == "" } {
  17. #return 1;
  18. };
  19. #return 0;
  20. };
  21. ///=== {
  22. // #@ default <字符串> <默认值>
  23. // 判断字符串是否为空,为空则返回默认值。
  24. // };
  25. #func {default} {
  26. #local value {%1};
  27. #local default {%2};
  28. #if { @isEmpty{$value} } {
  29. #return {$default};
  30. };
  31. #return {$value};
  32. };
  33. ///=== {
  34. // #@ defaultNum <字符串> <默认值>
  35. // 如果字符串为空,或者格式不像是一个数值(允许负数、小数)、或者等于 0,则返回默认值。
  36. // };
  37. #func {defaultNum} {
  38. #local value {%1};
  39. #local default {%2};
  40. #if { @isEmpty{$value} } {
  41. #return {$default};
  42. };
  43. #if { "$value" != "{-|}%+1..d{|\.\d+}" } {
  44. #return {$default};
  45. };
  46. #if { $value == 0 } {
  47. #return {$default};
  48. };
  49. #return {$value};
  50. };
  51. ///=== {
  52. // #@ isEmptyVar <字符串>
  53. // 判断参数是否为空,或者变量展开失败。如果是则返回真。
  54. // };
  55. #func {isEmptyVar} {
  56. #local value {%0};
  57. #if { "$value" == "" } {
  58. #return 1;
  59. };
  60. #if { "$value" == "$%*" } {
  61. #return 1;
  62. };
  63. #return 0;
  64. };
  65. ///=== {
  66. // #@ defaultVar <字符串> <默认值>
  67. // 判断参数是否为空,或者变量展开失败。如果是则返回默认值。
  68. // };
  69. #func {defaultVar} {
  70. #local value {%1};
  71. #local default {%2};
  72. #if { @isEmptyVar{$value} } {
  73. #return {$default};
  74. };
  75. #return {$value};
  76. };
  77. ///=== {
  78. // #@ defaultNumVar <字符串> <默认值>
  79. // 判断参数是否不像是一个数字,或者变量展开失败。如果是则返回默认值。
  80. //
  81. ///// 由于 TinTin++ 的变量展开有个特点,那就是如果不存在变量 foo,则 \$foo 展开的
  82. ///// 结果并不是空字符串,而是字符串 "\$foo",会导致误以为不是空串。
  83. ///// 以上三个函数将该情形也视同为空字符串并做相应处理。
  84. // };
  85. #func {defaultNumVar} {
  86. #local value {%1};
  87. #local default {%2};
  88. #if { @isEmptyVar{$value} } {
  89. #return {$default};
  90. };
  91. #if { "$value" != "{-|}%+1..d{|\.\d+}" } {
  92. #return {$default};
  93. };
  94. #if { $value == 0 } {
  95. #return {$default};
  96. };
  97. #return {$value};
  98. };