I uploaded updated plugins to ftp://lucky.syr.edu/4plugins. 4UTILS and SYSUTILS have definitely changed (some details below) and CONUTILS may have changed (though I couldn't remember what changed). Some of the changes are ... 4UTILS: Added @SUM and @AVG, both requiring spaces as separators and setting the new variable _N. Added @EXECW ... a wrapper for "START /WAIT" that returns %? Added @FACT[N] and @STIRLING[N] ... factorial and Stirling's approx Moved @PSET to SYSUTILS SYSUTILS: Added @PSET (was in 4UTILS) @PSET manipulates the environment of another process; may be of some use with _PPID (parent process) Replaced _MOUSE with _MOUSEX and _MOUSEY (mouse pointer position) Added @PID[<case-insensitive module name substring>] ... returns PID of first matching process ... could change it to wildcard or regex, I suppose. Added @CWD[<pid>] ... current working directory of process <pid> ... probably not much use for it in TCC, but maybe there are some TCMD tricks one could do with it ... will not work (on processes you don't own maybe more) without sufficient privileges Changed @PROCTIME to allow module_name_substrings (first match) as well as PIDs ... internally just like @PROCTIME[%@PID[string]...] I removed the consideration of the environment variable SE_DEBUG_NAME. All functions that read/write the memory space of other processes (@PSET, @PID, @PROCTIME) now automatically (try to) enable (and later disable) the SeDebugName privilege.
Vince, It looks as though @SUM processes only the first two arguments. See below. -- Jay TCMD9>echo %@sum[1 2 3] 3 TCMD9>echo %@sum[30 20 10] 50 TCMD9>echo %@sum[1 2 3 4 5] 3 TCMD9>uhelp @sum @SUM[n1 n2 ...] = sum of n1, n2, ...
On Tue, 24 Jun 2008 22:34:24 -0500, you wrote: Hmmm! It looks differently here. Have you got a UDF called @SUM? v:\> echo %@sum[2 3 4] 9 v:\> echo %@sum[1 2 3] 6 v:\> echo %@sum[30 20 10] 60 v:\> echo %@sum[1 2 3 4 5] 15
> Have you got a UDF called @SUM? Bingo! Now I have to decide what to do. My function supports the syntax @sum[arg1,arg2] which yours does not. On the other hand, my function works only with exactly two arguments. The question is, will dropping mine break some of my BTM files. The answer is, probably not. When I use functions in batch files, I usually define them there just to be sure (possibly copying the definition from my global definition file). -- Jay
On Tue, 24 Jun 2008 22:52:57 -0500, you wrote: I don't recall why mine doesn't. Don't some folk use the comma as the decimal separator?
> I don't recall why mine doesn't. Don't some folk use > the comma as the decimal separator? Good point. I am conditioned by programming languages and mathematics to always put commas between arguments, but I see that a space is just as good. I should probably adopt that practice for all JPSoft programming. -- Jay
Jay Sage wrote: || I don't recall why mine doesn't. Don't some folk use || the comma as the decimal separator? | | Good point. I am conditioned by programming languages and mathematics | to always put commas between arguments, but I see that a space is | just as good. I should probably adopt that practice for all JPSoft | programming. In mathematics, one would normally use a comma followed by space, which in the cultures which use a "decimal comma" distinguishes a number with decimal fractional part from a sequence of two function arguments. I.e. f(1,75) is a function of a single parameter with value 175/100, while f(1, 75) is a function of two integer parameters 1 and 75. Unfortunately some functions in JPsoft which expect a 2nd or later string parameter this results in problems, because leading space(s) may be part of the string parameter. I can see no solution to this issue due to the 25-year old basic syntax of the language. -- Steve
On Wed, 25 Jun 2008 09:10:55 -0500, you wrote: It would be nice if a plugin could determine the numeric separators in use. Though the help says You can display the value of all SETDOS SETDOS doesn't display the numeric separators. Are there any ideas on how a plugin can determine the numeric separators? Will %@numeric[1,2,3] be 0 if the comma is the decimal separator?
vefatica wrote: It's a Windows setting - see GetLocaleInfo. If the user is overriding the Windows setting with a local TCC setting (unlikely) you can retrieve the value with @OPTION[DecimalChar]. Rex Conn JP Software
Doesn't this do the job? GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, cpDecimalSep, iBufferSize); -- 2008 Fridays: 4/4, 6/6, 8/8, 10/10, 12/12 and 5/9, 9/5, 7/11, 11/7. Next year they're Saturday. Measure wealth by the things you have for which you would not take money.
On Wed, 25 Jun 2008 11:17:14 -0500, you wrote: So, theoretically, I might have to do two tests. I've got this right now (not thoroughly tested): BOOL CommaIsDecimal ( VOID ) { WCHAR szTest[32] = L"%@numeric[1,2,3]"; ExpandVariables(szTest, 1); return ( szTest[0] == L'0' ); } INT WINAPI f_SUM ( WCHAR *psz ) { static WCHAR *seps = CommaIsDecimal() ? L" " : L" ,";
vefatica wrote: Theoretically. Though "DecimalChar" is really a holdover from 4DOS; I don't know of any reason for somebody to be overriding their Windows settings, as it would make TCMD / TCC incompatible with everything else on their system. Rex Conn JP Software
In typeset mathematics, there may be a little bit of space after a comma, but there certainly isn't a whole space. (I just tried it with TeX.)
David Marcus wrote: | ---Quote (Originally by Steve Fábián)--- | In mathematics, one would normally use a comma followed by space | ---End Quote--- | In typeset mathematics, there may be a little bit of space after a | comma, but there certainly isn't a whole space. (I just tried it with | TeX.) Was TeX set to use the comma as the decimal separator in your test? Was the source text before introducing typesetting controls "f(1,2)" without spaces, or "f(1, 2)" with a space after the comma? -- Steve
No, I was using the default (U.S.) settings. TeX and LaTeX don't have a simple way of setting the comma as the decimal separator. See http://www.tug.org/pracjourn/2007-1/asknelly/ It appears TeX is adding some space after the comma in math, but I'm not sure exactly how much. TeX handles the spacing automatically. You get the same result whether you include a space after the comma or not.
> In mathematics, one would normally use a comma > followed by space Not in the United States (as far as I know, at least). According to what I learned, f(1,75) was a function with two arguments. We would never write f(1, 75). And it was years and years before I ever learned that some people use a comma as a decimal 'point'. And when doing mathematics, we would never write the number 1234 as 1,234. That is, we used only a decimal separator and never a thousands separator. The latter was only for text. -- Jay
Jay Sage wrote: || In mathematics, one would normally use a comma || followed by space | | Not in the United States (as far as I know, at least). According to | what | I learned, f(1,75) was a function with two arguments. We would never | write f(1, 75). And it was years and years before I ever learned that | some people use a comma as a decimal 'point'. | | And when doing mathematics, we would never write the number 1234 as | 1,234. That is, we used only a decimal separator and never a thousands | separator. The latter was only for text. ... and in the US hand-written numeral 1 and capital I are also identical. It had fouled me up before I learned the nomenclature for semiconductors. Regardless, we did not discuss "written" material, we referred to typeset material. Both European and US publications I just examined are typeset so that a comma separating elements in a list, whether it be a series, or the argument list of a function, is much closer to the element if follows thant to the element it preceeds, just as in ordinary English text (and text in all languages using Latin-based or Greek-based languages, including Cyrillic). I also observed that arithmetic operators are typeset with extra spacing on both sides. BTW, I didn't know until my junior year in college that some people use "decimal point". In most of Europe the decimal separator is the comma, and JPsoft products are used in Europe, hence they must accomodate it. -- Steve
I believe Jay was referring to typeset when he said "written". He was contrasting math with non-math ("text"). If a number occurs in math, we don't use commas to separate thousands. There is very little extra space after a comma in math. Here is some output from LaTeX: http://www.davidmarcus.com/comma.pdf The first line is math, the second is text in an italic font with one space after the comma.
Steve Fabian wrote: > in the US hand-written numeral 1 and capital I are > also identical. Not to mention the confusion between the numeral 1 and the lowercase letter 'L'. I work at MIT Lincoln Laboratory where the domain is ll.mit.edu (that's LL.MIT.EDU). Some people seeing the lowercase version would think it was 11.mit.edu (that's numerals one, one). Fortunately, the folks at MIT were smart and set up the subdomain 11.MIT.EDU to point to LL.MIT.EDU. It's also not to mention the confusion in the U.S. between the numerals '1' and '7'. > Both European and US publications I just examined are > typeset so that a comma separating elements in a > list, whether it be a series, or the argument list of > a function, is much closer to the element if follows > thant to the element it preceeds I'm sure you're right, but I never noticed -- and I suspect that I'm not alone. > I didn't know until my junior year in college that > some people use "decimal point". It may have been even later than college for me to be aware that the way I learned was not the way it was done everywhere in the world. When I lived in Japan, I learned that they don't think in blocks of 10^3 (thousands, millions, etc.) but in blocks of 10^4 (man). I hope it was clear that I was not arguing for the U.S. system or against the other, or suggesting that JPSoft products should not support both (all?) systems. I was mainly trying to point out how provincial we are here in the U.S. Of course, it would have been good if we had all adopted the same system of writing numbers, just as we did with units of measure . -- Jay
David Marcus wrote: | There is very little extra space after a comma in math. Here is some | output from LaTeX: | | http://www.davidmarcus.com/comma.pdf | | The first line is math, the second is text in an italic font with one | space after the comma. Notice, however, the spacing around the comma is almost symmetric in the math, and there is also space surrounding the parentheses, intended to make each element more distinguishable. No such spacing in the text version. Only the text version is supported in command processors. -- Steve