bdmendes / feup-sope-xmod

A clone of the Linux chmod utility.
0 stars 1 forks source link

Parse symbolic mode to octal mode #12

Closed kat-maq closed 3 years ago

kat-maq commented 3 years ago

Mudei a struct XmodCommand porque na realidade não faz sentido estar a guardar a mesma coisa duas vezes, pelo que é melhor guardar só o octal mode.

eunicejamorim commented 3 years ago

Overall, acho que não tenho nada a dizer além do Bruno

bdmendes commented 3 years ago

I think you're still complicating too much. Work on the 9 boolean values (three permissions per user type) before assembling the mode with the existing masks. No need for sums, comparisons or bit shifts.

kat-maq commented 3 years ago

I think you're still complicating too much. Work on the 9 boolean values (three permissions per user type) before assembling the mode with the existing masks. No need for sums, comparisons or bit shifts.

Ok, concordo que ter 1 struct de 9 bools é melhor do que ter 2, mas as operações??? os bit shifts é para passar o mode existente para uma struct, para depois serem apenas adicionadas/removidas as novas permissões. Eu juro que ainda não entendi que esparguete queres que faça e considere explicar que eu não estou para andar aqui a desfazer e fazer a mesma coisa todos os dias

bdmendes commented 3 years ago

I think you're still complicating too much. Work on the 9 boolean values (three permissions per user type) before assembling the mode with the existing masks. No need for sums, comparisons or bit shifts.

Ok, concordo que ter 1 struct de 9 bools é melhor do que ter 2, mas as operações??? os bit shifts é para passar o mode existente para uma struct, para depois serem apenas adicionadas/removidas as novas permissões. Eu juro que ainda não entendi que esparguete queres que faça e considere explicar que eu não estou para andar aqui a desfazer e fazer a mesma coisa todos os dias

  1. Assemble current mode flags (skip when =). The retriever gets the current mode in octal, fill flags with this
  2. Set + flags to 1, - flags to 0
  3. Mode = sum(masks_user flags_user) | sum(masks_group flags_group) | sum(masks_other * flags_other)
bdmendes commented 3 years ago

Everything seems to be working. Please check this out @eukia @eunicejamorim

class1c-j commented 3 years ago

acho que tá muito lindo, fiz as duas utils que pediam nos comentários verifiquem tb se não merdei sim

class1c-j commented 3 years ago

ok afinal é para meter :rocket: bjs