Rust 2018 compat [2/2]: Change all use statements
This commit is contained in:
parent
9976a72b91
commit
085938d185
@ -6,35 +6,35 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
use ::situation::COLOR_KWD;
|
use crate::situation::COLOR_KWD;
|
||||||
use ::situation::COLOR_MAGIC;
|
use crate::situation::COLOR_MAGIC;
|
||||||
use ::situation::COLOR_HERE;
|
use crate::situation::COLOR_HERE;
|
||||||
use ::situation::COLOR_VAR;
|
use crate::situation::COLOR_VAR;
|
||||||
|
|
||||||
use ::microparsers::prefixlen;
|
use crate::microparsers::prefixlen;
|
||||||
use ::microparsers::predlen;
|
use crate::microparsers::predlen;
|
||||||
use ::microparsers::identifierlen;
|
use crate::microparsers::identifierlen;
|
||||||
use ::microparsers::is_whitespace;
|
use crate::microparsers::is_whitespace;
|
||||||
use ::microparsers::is_word;
|
use crate::microparsers::is_word;
|
||||||
|
|
||||||
use ::commonstrcmd::CommonStrCmdResult;
|
use crate::commonstrcmd::CommonStrCmdResult;
|
||||||
use ::commonstrcmd::common_str_cmd;
|
use crate::commonstrcmd::common_str_cmd;
|
||||||
|
|
||||||
use ::sitcase::SitIn;
|
use crate::sitcase::SitIn;
|
||||||
use ::sitcmd::SitNormal;
|
use crate::sitcmd::SitNormal;
|
||||||
use ::sitcmd::SitCmd;
|
use crate::sitcmd::SitCmd;
|
||||||
use ::sitcmd::SitDeclare;
|
use crate::sitcmd::SitDeclare;
|
||||||
use ::sitcomment::SitComment;
|
use crate::sitcomment::SitComment;
|
||||||
use ::sitextent::SitExtent;
|
use crate::sitextent::SitExtent;
|
||||||
use ::sitrvalue::SitRvalue;
|
use crate::sitrvalue::SitRvalue;
|
||||||
use ::sitstrdq::SitStrDq;
|
use crate::sitstrdq::SitStrDq;
|
||||||
use ::sitstrphantom::SitStrPhantom;
|
use crate::sitstrphantom::SitStrPhantom;
|
||||||
use ::sitstrsqesc::SitStrSqEsc;
|
use crate::sitstrsqesc::SitStrSqEsc;
|
||||||
use ::situntilbyte::SitUntilByte;
|
use crate::situntilbyte::SitUntilByte;
|
||||||
use ::sitvec::SitVec;
|
use crate::sitvec::SitVec;
|
||||||
|
|
||||||
pub fn keyword_or_command(
|
pub fn keyword_or_command(
|
||||||
end_trigger :u16,
|
end_trigger :u16,
|
||||||
|
@ -6,24 +6,24 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
use ::situation::COLOR_VAR;
|
use crate::situation::COLOR_VAR;
|
||||||
use ::situation::COLOR_MAGIC;
|
use crate::situation::COLOR_MAGIC;
|
||||||
|
|
||||||
use ::microparsers::predlen;
|
use crate::microparsers::predlen;
|
||||||
use ::microparsers::is_identifierhead;
|
use crate::microparsers::is_identifierhead;
|
||||||
use ::microparsers::is_identifiertail;
|
use crate::microparsers::is_identifiertail;
|
||||||
use ::microparsers::identifierlen;
|
use crate::microparsers::identifierlen;
|
||||||
|
|
||||||
use ::syntaxerror::UnsupportedSyntax;
|
use crate::syntaxerror::UnsupportedSyntax;
|
||||||
|
|
||||||
use ::sitcmd::SitNormal;
|
use crate::sitcmd::SitNormal;
|
||||||
use ::sitextent::SitExtent;
|
use crate::sitextent::SitExtent;
|
||||||
use ::situntilbyte::SitUntilByte;
|
use crate::situntilbyte::SitUntilByte;
|
||||||
use ::sitvarident::SitVarIdent;
|
use crate::sitvarident::SitVarIdent;
|
||||||
use ::sitvec::SitVec;
|
use crate::sitvec::SitVec;
|
||||||
|
|
||||||
pub enum CommonStrCmdResult {
|
pub enum CommonStrCmdResult {
|
||||||
None,
|
None,
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
use ::syntaxerror::UnsupportedSyntax;
|
use crate::syntaxerror::UnsupportedSyntax;
|
||||||
|
|
||||||
fn stderr_write_or_panic(lock: &mut std::io::StderrLock, bytes: &[u8]) {
|
fn stderr_write_or_panic(lock: &mut std::io::StderrLock, bytes: &[u8]) {
|
||||||
if let Err(e) = lock.write_all(bytes) {
|
if let Err(e) = lock.write_all(bytes) {
|
||||||
|
@ -8,17 +8,17 @@
|
|||||||
|
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
||||||
use ::syntaxerror::UnsupportedSyntax;
|
use crate::syntaxerror::UnsupportedSyntax;
|
||||||
|
|
||||||
use ::filestream::InputSource;
|
use crate::filestream::InputSource;
|
||||||
use ::filestream::FileOut;
|
use crate::filestream::FileOut;
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::COLOR_NORMAL;
|
use crate::situation::COLOR_NORMAL;
|
||||||
|
|
||||||
use ::sitcmd::SitNormal;
|
use crate::sitcmd::SitNormal;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
#[derive(Copy)]
|
#[derive(Copy)]
|
||||||
|
@ -10,7 +10,7 @@ use std::env;
|
|||||||
use std::process;
|
use std::process;
|
||||||
|
|
||||||
mod machine;
|
mod machine;
|
||||||
use machine::OutputSelector;
|
use crate::machine::OutputSelector;
|
||||||
|
|
||||||
mod errfmt;
|
mod errfmt;
|
||||||
mod filestream;
|
mod filestream;
|
||||||
|
@ -6,19 +6,19 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
use ::situation::COLOR_NORMAL;
|
use crate::situation::COLOR_NORMAL;
|
||||||
use ::situation::COLOR_KWD;
|
use crate::situation::COLOR_KWD;
|
||||||
|
|
||||||
use ::microparsers::predlen;
|
use crate::microparsers::predlen;
|
||||||
use ::microparsers::is_whitespace;
|
use crate::microparsers::is_whitespace;
|
||||||
use ::microparsers::is_word;
|
use crate::microparsers::is_word;
|
||||||
|
|
||||||
use ::commonargcmd::keyword_or_command;
|
use crate::commonargcmd::keyword_or_command;
|
||||||
use ::commonargcmd::common_no_cmd_quoting_unneeded;
|
use crate::commonargcmd::common_no_cmd_quoting_unneeded;
|
||||||
|
|
||||||
pub struct SitIn {}
|
pub struct SitIn {}
|
||||||
|
|
||||||
@ -130,9 +130,9 @@ impl Situation for SitCaseArm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use ::testhelpers::*;
|
use crate::testhelpers::*;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use ::sitcmd::SitCmd;
|
use crate::sitcmd::SitCmd;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_sit_in() {
|
fn test_sit_in() {
|
||||||
|
@ -6,22 +6,22 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
use ::situation::flush_or_pop;
|
use crate::situation::flush_or_pop;
|
||||||
use ::situation::COLOR_NORMAL;
|
use crate::situation::COLOR_NORMAL;
|
||||||
use ::situation::COLOR_CMD;
|
use crate::situation::COLOR_CMD;
|
||||||
use ::situation::COLOR_MAGIC;
|
use crate::situation::COLOR_MAGIC;
|
||||||
|
|
||||||
use ::microparsers::is_whitespace;
|
use crate::microparsers::is_whitespace;
|
||||||
|
|
||||||
use ::commonargcmd::keyword_or_command;
|
use crate::commonargcmd::keyword_or_command;
|
||||||
use ::commonargcmd::common_arg_cmd;
|
use crate::commonargcmd::common_arg_cmd;
|
||||||
use ::commonargcmd::find_lvalue;
|
use crate::commonargcmd::find_lvalue;
|
||||||
use ::commonargcmd::Tri;
|
use crate::commonargcmd::Tri;
|
||||||
use ::sitrvalue::SitRvalue;
|
use crate::sitrvalue::SitRvalue;
|
||||||
|
|
||||||
pub struct SitNormal {
|
pub struct SitNormal {
|
||||||
pub end_trigger :u16,
|
pub end_trigger :u16,
|
||||||
@ -127,15 +127,15 @@ impl Situation for SitDeclare {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use ::testhelpers::*;
|
use crate::testhelpers::*;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use sitextent::SitExtent;
|
use crate::sitextent::SitExtent;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use sitvec::SitVec;
|
use crate::sitvec::SitVec;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use situation::COLOR_KWD;
|
use crate::situation::COLOR_KWD;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use situation::COLOR_HERE;
|
use crate::situation::COLOR_HERE;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
fn mk_assignment(pre: usize) -> WhatNow {
|
fn mk_assignment(pre: usize) -> WhatNow {
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush_or_pop;
|
use crate::situation::flush_or_pop;
|
||||||
use ::situation::COLOR_CMT;
|
use crate::situation::COLOR_CMT;
|
||||||
|
|
||||||
// Unlike SitUntilByte, does not swallow the end byte, and pops on eof.
|
// Unlike SitUntilByte, does not swallow the end byte, and pops on eof.
|
||||||
pub struct SitComment {}
|
pub struct SitComment {}
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
|
|
||||||
pub struct SitExtent{
|
pub struct SitExtent{
|
||||||
pub len : usize,
|
pub len : usize,
|
||||||
|
@ -6,15 +6,15 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
use ::situation::flush_or_pop;
|
use crate::situation::flush_or_pop;
|
||||||
use ::situation::COLOR_NORMAL;
|
use crate::situation::COLOR_NORMAL;
|
||||||
|
|
||||||
use ::commonargcmd::common_quoting_unneeded;
|
use crate::commonargcmd::common_quoting_unneeded;
|
||||||
use ::commonargcmd::common_no_cmd;
|
use crate::commonargcmd::common_no_cmd;
|
||||||
|
|
||||||
pub struct SitRvalue {
|
pub struct SitRvalue {
|
||||||
pub end_trigger :u16,
|
pub end_trigger :u16,
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
|
|
||||||
use commonstrcmd::CommonStrCmdResult;
|
use crate::commonstrcmd::CommonStrCmdResult;
|
||||||
use commonstrcmd::common_str_cmd;
|
use crate::commonstrcmd::common_str_cmd;
|
||||||
|
|
||||||
pub struct SitStrDq {}
|
pub struct SitStrDq {}
|
||||||
|
|
||||||
@ -36,13 +36,13 @@ impl Situation for SitStrDq {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use ::testhelpers::*;
|
use crate::testhelpers::*;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use sitcmd::SitNormal;
|
use crate::sitcmd::SitNormal;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use sitvec::SitVec;
|
use crate::sitvec::SitVec;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use situation::COLOR_MAGIC;
|
use crate::situation::COLOR_MAGIC;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_sit_strdq() {
|
fn test_sit_strdq() {
|
||||||
|
@ -6,18 +6,18 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
|
|
||||||
use ::commonstrcmd::CommonStrCmdResult;
|
use crate::commonstrcmd::CommonStrCmdResult;
|
||||||
use ::commonstrcmd::common_str_cmd;
|
use crate::commonstrcmd::common_str_cmd;
|
||||||
|
|
||||||
use ::microparsers::predlen;
|
use crate::microparsers::predlen;
|
||||||
use ::microparsers::is_word;
|
use crate::microparsers::is_word;
|
||||||
|
|
||||||
use ::sitstrdq::SitStrDq;
|
use crate::sitstrdq::SitStrDq;
|
||||||
|
|
||||||
pub struct SitStrPhantom {
|
pub struct SitStrPhantom {
|
||||||
pub cmd_end_trigger: u16,
|
pub cmd_end_trigger: u16,
|
||||||
@ -83,13 +83,13 @@ fn dutifully_end_the_string() -> WhatNow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use ::testhelpers::*;
|
use crate::testhelpers::*;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use sitcmd::SitNormal;
|
use crate::sitcmd::SitNormal;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use sitextent::SitExtent;
|
use crate::sitextent::SitExtent;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
use ::situation::COLOR_VAR;
|
use crate::situation::COLOR_VAR;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
fn subject() -> SitStrPhantom {
|
fn subject() -> SitStrPhantom {
|
||||||
|
@ -6,12 +6,12 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
|
|
||||||
use ::sitextent::SitExtent;
|
use crate::sitextent::SitExtent;
|
||||||
|
|
||||||
pub struct SitStrSqEsc {}
|
pub struct SitStrSqEsc {}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::syntaxerror::UnsupportedSyntax;
|
use crate::syntaxerror::UnsupportedSyntax;
|
||||||
|
|
||||||
pub trait Situation {
|
pub trait Situation {
|
||||||
fn whatnow(&mut self, horizon: &[u8], is_horizon_lengthenable: bool) -> WhatNow;
|
fn whatnow(&mut self, horizon: &[u8], is_horizon_lengthenable: bool) -> WhatNow;
|
||||||
|
@ -6,12 +6,12 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
|
|
||||||
use ::microparsers::predlen;
|
use crate::microparsers::predlen;
|
||||||
|
|
||||||
pub struct SitUntilByte {
|
pub struct SitUntilByte {
|
||||||
pub until: u8,
|
pub until: u8,
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::COLOR_VAR;
|
use crate::situation::COLOR_VAR;
|
||||||
|
|
||||||
use ::microparsers::predlen;
|
use crate::microparsers::predlen;
|
||||||
use ::microparsers::is_identifiertail;
|
use crate::microparsers::is_identifiertail;
|
||||||
|
|
||||||
pub struct SitVarIdent {
|
pub struct SitVarIdent {
|
||||||
pub end_insert: Option<&'static [u8]>,
|
pub end_insert: Option<&'static [u8]>,
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::flush;
|
use crate::situation::flush;
|
||||||
|
|
||||||
pub struct SitVec {
|
pub struct SitVec {
|
||||||
pub terminator :Vec<u8>,
|
pub terminator :Vec<u8>,
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
|
|
||||||
use ::situation::WhatNow;
|
use crate::situation::WhatNow;
|
||||||
use ::situation::Situation;
|
use crate::situation::Situation;
|
||||||
use ::situation::Transition;
|
use crate::situation::Transition;
|
||||||
use ::situation::Transition::Flush;
|
use crate::situation::Transition::Flush;
|
||||||
use ::situation::Transition::FlushPopOnEof;
|
use crate::situation::Transition::FlushPopOnEof;
|
||||||
use ::situation::Transition::Replace;
|
use crate::situation::Transition::Replace;
|
||||||
use ::situation::Transition::Push;
|
use crate::situation::Transition::Push;
|
||||||
use ::situation::Transition::Pop;
|
use crate::situation::Transition::Pop;
|
||||||
|
|
||||||
pub fn whatnow_eq(a: &WhatNow, b: &WhatNow) -> bool {
|
pub fn whatnow_eq(a: &WhatNow, b: &WhatNow) -> bool {
|
||||||
if a.pre != b.pre {
|
if a.pre != b.pre {
|
||||||
|
Loading…
Reference in New Issue
Block a user