[-] barubary@infosec.exchange 0 points 3 days ago

There's a lot of distorted facts here, but the weirdest one to me is "instead of regrouping their efforts (which, I might add, they did, and they got their day in parliament)". The first half just contradicts itself ("instead of doing X, which they did, ..."???) and the second half ("they got their day in parliament") is verifiably, obviously false: The EU petition is still ongoing and collecting signatures. The deadline is July 31.

[-] barubary@infosec.exchange 9 points 2 weeks ago

@devilish666 C++ (non-stupid):

#include <stdio.h>
int main() {
puts("Hello, world!");
}

[-] barubary@infosec.exchange 16 points 2 weeks ago

C) It's an obvious joke.

[-] barubary@infosec.exchange 18 points 1 month ago

Because let x: y is syntactically unambiguous, but you need to know that y names a type in order to correctly parse y x. (Or at least that's the case in C where a(b) may be a variable declaration or a function call depending on what typedefs are in scope.)

[-] barubary@infosec.exchange 16 points 1 month ago* (last edited 1 month ago)

POV: You open vim for the first time.

[-] barubary@infosec.exchange 16 points 3 months ago

The same is true of std::endl. std::endl is simply defined as << '\n' << std::flush; nothing more, nothing less. In all cases where endl gives you a "properly translated" newline, so does \n.

[-] barubary@infosec.exchange 33 points 3 months ago

std::endl provides zero portability benefits. C++ does have a portable newline abstraction, but it is called \n, not endl.

[-] barubary@infosec.exchange 11 points 4 months ago

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
[-] barubary@infosec.exchange 9 points 5 months ago

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

[-] barubary@infosec.exchange 71 points 5 months ago

Strictly speaking, it should be

Unsafe block syntax in C++

{  ...}
[-] barubary@infosec.exchange 15 points 2 years ago

@hstde @Spore Even better, the alphabetical index of function names was generated in English first and then translated, meaning the documentation looks like a scrambled mess in any other language because it is alphabetized according to what the English equivalent would be. #excel

view more: next ›

barubary

joined 2 years ago