barubary

joined 2 years ago
[–] [email protected] 0 points 2 weeks ago (1 children)

My CGI script is a SaaS.

[–] [email protected] 0 points 2 weeks ago (1 children)
for (int i = INT_MIN; ; i++) {    ...    if (i == INT_MAX) break;}
[–] [email protected] 4 points 4 weeks ago

@Tangentism @Ephera Did you mean:

echo "${var:-empty}${var:+no it aint}"

?

[–] [email protected] 11 points 4 weeks ago (2 children)

Arguably, I never fully learned Bash syntax, but it also is just a stupid if-statement. There shouldn’t be that much complexity in it.

There isn't. The syntax is

if COMMANDthenCOMMAND(s)...elseCOMMAND(s)...fi

I believe, if you write the then onto the next line, then you don’t need the semicolon.

Yes, but that's true of all commands.

foo; bar; baz

is the same as

foobarbaz

All the ] and -z stuff has nothing to do with if. In your example, the command you're running is literally called [. You're passing it three arguments: -z, "$var", and ]. The ] argument is technically pointless but included for aesthetic reasons to match the opening ] (if you wanted to, you could also write test -z "$var" because [ is just another name for the test command).

Since you can logically negate the exit status of every command (technically, every pipeline) by prefixing a !, you could also write this as:

if ! test "$var"; then ...

The default mode of test (if given one argument) is to check whether it is non-empty.

Now, if you don't want to deal with the vagaries of the test command and do a "native" string check, that would be:

case "$var" in  "") echo "empty";;  *) echo "not empty";;esac
[–] [email protected] 0 points 1 month ago (1 children)

Isn't this COBOL or 4GL or something?

[–] [email protected] 2 points 1 month ago

@racketlauncher831 As far as the C compiler is concerned, there is literally no difference between those two notations. If you declare a function parameter as an array (of T), the C compiler automatically strips the size information (if any) and changes the type to pointer (to T).

(And if we're talking humans, then char *args[] does not mean "follow this address to find a list of characters" because that's the syntax for "array of pointers", not "pointer to array".)

[–] [email protected] 6 points 1 month ago (4 children)

@affiliate Hey, you didn't even mention that char *args[] actually means char **args in a parameter list.

[–] [email protected] 9 points 1 month ago (2 children)

@stebo02 @Bogus5553 Neither of them require a return value, but void main isn't legal C++.

[–] [email protected] 67 points 1 month ago

Strictly speaking, it should be

Unsafe block syntax in C++

{  ...}
[–] [email protected] 4 points 2 months ago

... Perl, Haskell, Lisp, ...

view more: next ›